Re: Visual D 1.1.0 released

2021-03-09 Thread Rainer Schuetze via Digitalmars-d-announce



On 06/03/2021 12:55, Imperatorn wrote:
> On Saturday, 6 March 2021 at 06:59:28 UTC, Rainer Schuetze wrote:
>>
>>
>> On 05/03/2021 12:26, Imperatorn wrote:
>>> On Friday, 5 March 2021 at 10:57:05 UTC, Kagamin wrote:
 On Thursday, 4 March 2021 at 13:42:47 UTC, Imperatorn wrote:
> https://filebin.net/19gupoeedfdjx5tx
>
> One GIF is the behaviour in C# I would like to have in D as well
> with static if, and the other is displaying typeid on hover.

 The second is a debug session. Visual Studio doesn't show type
 information in debug session for C# either, only variable name and
 value.
>>>
>>> True, but could it?
>>
>> Visual D already does that with the help of the semantic highlighting:
>> if an identifier is classified as a type or compile time value, it
>> suppresses the debugger data tool tip and presents the usual one.
> 
> Oh, I see. What about dub integration. How much effort would it be to
> have something similar to what code-d has in vsc? Guesstimation?

I'm not much of a dub user. Last time I checked, using it as a package
manager was fine, but not as a build tool. Dependency checks were
incomplete and rather slow. The visuald project generation is pretty
dated and doesn't support multiple configurations which kind of breaks
the usual VS workflow.

I think for better integration dub project generation needs to be
improved (and extended to vcxproj files), or Visual D has to do it
itself from "dub describe" (if that's possible). The latter would also
allow seamless updates of the project in the background.

Then, integration of package management can be considered.


Re: Bubel ECS - Entity-Component-System architecture implementation

2021-03-09 Thread Mergul via Digitalmars-d-announce

On Tuesday, 9 March 2021 at 21:01:07 UTC, Meta wrote:

On Tuesday, 9 March 2021 at 16:36:31 UTC, ryuukk_ wrote:
That's impressive, and shows the D capabilities, the future is 
WASM!!! glad to see D ready for it!


Yes, I forgot to mention this, but WASM support out of the box 
is awesome!


I have to note that for clarification. D can be compiled to WASM 
only using betterC switch (as nor Phobos or Druntime can be 
compiled to WASM). For demo I also used SDL2 which also supports 
Emscripten target. From my side to support WASM I had to remove 
D's TLS from code (in demo I used pthread_key as replacement), 
implement atomic operations using Emscripten API, write stdc 
bindings and my little std library (allocators). While targeting 
WASM core.stdc.* modules can't be used as they have no WASM 
implementation.



That's impressive, and shows the D capabilities, the future is 
WASM!!! glad to see D ready for it!



Thanks for an excellent release!



Nice package! I'm glad you publish it


Many thanks for your kind words.


I'm working on a similar project, thanks for sharing, it'll be 
very helpful for me!


Fell free to ask any questions if you want. Demo code isn't 
documented (except some demos files) and looks messy in places.


Re: Bubel ECS - Entity-Component-System architecture implementation

2021-03-09 Thread Meta via Digitalmars-d-announce

On Tuesday, 9 March 2021 at 15:21:26 UTC, Mergul wrote:

On Tuesday, 9 March 2021 at 14:29:37 UTC, Meta wrote:
Awesome! In the demo, I noticed that if there are >3000 
entities spawned, there will be periodic dips in the FPS. 
Could this be Javascript's GC kicking in?


What browser are you using? I've tested couple of browsers. In 
general JavaScript shouldn't be a problem, from what I know 
WASM only growth its memory. Library itself almost never call 
malloc (so memory is always allocated). On firefox I had 
problem with FPS most of a time and I'm not sure what cause 
this problem (I found several bug reports which could be 
related to that). Besides Firefox every web browser I tested 
was based on chromium engine. I didn't see any periodic dips, 
even with <200k entities.
Maybe there is some problem related to WebGL or JS Workers. 
When JS side detects that WASM threads are enabled in browser 
it loads multithreaded version of WASM code and spawn workers. 
But overall multithreaded execution is always more stable for 
me.


This is in Chrome 88.0.4324.192 on my 2015 Macbook Pro.


Re: Bubel ECS - Entity-Component-System architecture implementation

2021-03-09 Thread Meta via Digitalmars-d-announce

On Tuesday, 9 March 2021 at 16:36:31 UTC, ryuukk_ wrote:
That's impressive, and shows the D capabilities, the future is 
WASM!!! glad to see D ready for it!


Yes, I forgot to mention this, but WASM support out of the box is 
awesome!





Re: Bubel ECS - Entity-Component-System architecture implementation

2021-03-09 Thread Guillaume Piolat via Digitalmars-d-announce

On Monday, 8 March 2021 at 19:45:58 UTC, Mergul wrote:
Hello everyone, I'm glad to announce release of my Bubel ECS 
library.


Bubel ECS is Entity-Component-System architectural pattern 
implementation in D language.
Library aims to delivery fast and flexible architecture for 
developing games. It's @nogc and betterC compatible. WASM is 
supported through Emscripten. Library has no external 
dependencies and was tested on Linux, Windows, Android and WASM.
Project was developed in data oriented designed fashion and 
supports multithreading with automatic job generation. For more 
information go to Gitlab repository page.




Thanks for an excellent release!


Re: Bubel ECS - Entity-Component-System architecture implementation

2021-03-09 Thread ryuukk_ via Digitalmars-d-announce
That's impressive, and shows the D capabilities, the future is 
WASM!!! glad to see D ready for it!


I'm working on a similar project, thanks for sharing, it'll be 
very helpful for me!


Re: Bubel ECS - Entity-Component-System architecture implementation

2021-03-09 Thread Mergul via Digitalmars-d-announce

On Tuesday, 9 March 2021 at 14:29:37 UTC, Meta wrote:
Awesome! In the demo, I noticed that if there are >3000 
entities spawned, there will be periodic dips in the FPS. Could 
this be Javascript's GC kicking in?


What browser are you using? I've tested couple of browsers. In 
general JavaScript shouldn't be a problem, from what I know WASM 
only growth its memory. Library itself almost never call malloc 
(so memory is always allocated). On firefox I had problem with 
FPS most of a time and I'm not sure what cause this problem (I 
found several bug reports which could be related to that). 
Besides Firefox every web browser I tested was based on chromium 
engine. I didn't see any periodic dips, even with <200k entities.
Maybe there is some problem related to WebGL or JS Workers. When 
JS side detects that WASM threads are enabled in browser it loads 
multithreaded version of WASM code and spawn workers. But overall 
multithreaded execution is always more stable for me.


Another thing is that application has to work in the "unblocking" 
way. It means that main thread has to release control to web 
browser every frame and browser sometime takes more CPU time.


And last thing, I'm not specialist in web technologies so it 
could be something else what I'm not aware of :)


Re: Bubel ECS - Entity-Component-System architecture implementation

2021-03-09 Thread Meta via Digitalmars-d-announce

On Monday, 8 March 2021 at 19:45:58 UTC, Mergul wrote:
Hello everyone, I'm glad to announce release of my Bubel ECS 
library.


Bubel ECS is Entity-Component-System architectural pattern 
implementation in D language.
Library aims to delivery fast and flexible architecture for 
developing games. It's @nogc and betterC compatible. WASM is 
supported through Emscripten. Library has no external 
dependencies and was tested on Linux, Windows, Android and WASM.
Project was developed in data oriented designed fashion and 
supports multithreading with automatic job generation. For more 
information go to Gitlab repository page.


Its beta version but core is fully functional and finished. I 
have planned some bigger features like Worlds support, better 
events handling or even C-API which can lead to some changes in 
API.


If you want try Bubel ECS I prepared demo which works in 
browers through WASM (Emscripten) and even supports 
multithreading (on Chromium based browsers, Firefox had some 
performance issues even on single threaded version when last 
tested)
Demo is still WIP and it can be hard to understad how it works 
(how to use its features). There is possibility to 
enable/disable almost all systems in runtime and changing 
components and data for all entities. All components and 
systems are exact representation of what they are in code.


I'm using Gitlab CI for automated testing (betterC testing 
included)


Note: Library support multithreading but has no code for actual 
parallel execution, it only generates jobs and dependencies. In 
demos I'm using mmutils.thread_pool (my brother's library) .I 
will add simple integration code for it in near future for 
people who wants multithreading working out-of-the-box.


Dub: https://code.dlang.org/packages/bubel_ecs
Gitlab: https://gitlab.com/Mergul/bubel-ecs
Documentation: https://mergul.gitlab.io/bubel-ecs/ecs.html
Wiki: https://gitlab.com/Mergul/bubel-ecs/-/wikis/home (WIP 
I've started making tutorial there)

Online demo: https://mergul.gitlab.io/bubel-ecs/ecs_demo.html


Awesome! In the demo, I noticed that if there are >3000 entities 
spawned, there will be periodic dips in the FPS. Could this be 
Javascript's GC kicking in?