I have a plan.. I really DO
aberba
karabutaworld at gmail.com
Thu Jul 5 21:53:09 UTC 2018
On Wednesday, 4 July 2018 at 19:29:55 UTC, Ecstatic Coder wrote:
> On Wednesday, 4 July 2018 at 18:05:15 UTC, wjoe wrote:
>> On Wednesday, 4 July 2018 at 08:50:57 UTC, Ecstatic Coder
>> wrote:
>>> But indeed, being able use D in a GC-free environment (like
>>> C++ and Rust do) would be something many people may NEED, for
>>> instance to be able to EASILY use D for soft-realtime
>>> applications like games.
>>
>> This has to be the no. 1 excuse.
>>
>>
>>
>>
>> Games have been made with GC'd languages, 3D games, even. And
>> successfully, too.
>> Minecraft, a very successful one, comes to mind, which is or
>> at least was made in Java.
>> Plenty of games are made in C#, too.
+1
>
>>
>> Slow code is slow and allocating memory in a tight loop is a
>> huge performance killer - regardless of language.
+1
>>
>> Nothing forces anyone to use the GC, memory can be managed
>> manually via malloc/free and you get to do it with scope
>> statements/nested functions which makes it nicer than in C.
>> You could also implement shared/weak ptr stuff in D - warts
>> and all.
That's what Timur said.
>> If you need a GC free standard library, I believe there is an
>> ongoing effort -or several- at code.dlang.org and probably
>> other places.
>>
>> You said do this and that, GC, etc. to motivate C++ folks to
>> come to D. I say it's an excuse not to use D and no matter the
>> effort of advertising, a GC free phobos, etc. on part of the
>> D-Lang Foundation and contributors would make these folks
>> switch. They would simply find a different excuse.
>>
>
> You say that garbage collection is not a real problem for game
> development.
>
> Maybe, but that's not my experience. For instance, have you
> read Unity's own official recommandations on how to overcome
> this problem ?
>
> And obviously, Tibur, a highly skilled D game engine developer,
> is not a big fan of D's non incremental garbage collector, from
> the number of @nogc he has put in his Dlib container code.
He has written no-GC libs for sure but he said in a blog post
about his projects that he has no problem with GC. As long as you
do not use it in critical areas.
> Modern D is a very attractive choice as a language for game
> development. Even the garbage collector is not a problem,
> because you can use object pools, custom allocators, or simply
> malloc and free. The key point is to know when the GC is
> invoked and try to avoid those cases in performance critical
> code. Personally, I prefer using malloc so that I can free the
> memory when I want, since delete has been deprecated and
> destroy just releases all the references to an object instance
> without actually deleting it. Using manual memory management
> imposes some restrictions on the code–for example, you can’t
> use closures or D’s built-in containers–but that, again, is not
> a big problem. A large effort is currently underway to lessen
> GC usage in dlib, so that you can use it to write fully
> unmanaged applications with ease. It has GC-free containers,
> file I/O streams, image decoders, and so on.
https://dlang.org/blog/2016/09/16/project-highlight-timur-gafarov/
Remember he's into real-time stuff.
> As an indie game developer with a strong bias toward graphics
> engines and rendering tech, I always try to keep track of
> modern compiled languages effective enough for writing
> real-time stuff. The most obvious choice in this field is C++,
> and I actually used it for several years until I found D in
> 2010. I immediately fell in love with the language’s clean,
> beautiful syntax, its powerful template system, the numerous
> built-in features absent in C++, and the rich and easy to use
> standard library.
>
> Maybe you disagree with us because you are a professional game
> developer who has already released a successful commercial game
> in D without caring for the garbage collection. If it's the
> case, then nice, I'd be happy to have it wrong on this :)
Read the blog post, you're wrong.
>
> Of course it's perfectly your right to develop your games
> without caring for all these performance "details". But other
> people do.
GC in not a performance bottle neck if you truly know what you're
doing.
>
> So, as I said, those who use C++ or Rust because D's GC is a
> problem for them, won't probably use D in its current state.
If D had X people. Not customers.
More information about the Digitalmars-d-announce
mailing list