I have a plan.. I really DO
Ecstatic Coder
ecstatic.coder at gmail.com
Fri Jul 6 18:07:05 UTC 2018
On Friday, 6 July 2018 at 17:43:29 UTC, JN wrote:
> On Friday, 6 July 2018 at 17:26:26 UTC, wjoe wrote:
>> On Friday, 6 July 2018 at 15:53:56 UTC, Ecstatic Coder wrote:
>>> With D, ANY forgotten allocation during the game loop (and I
>>> really mean even JUST ONE hidden allocation somewhere in the
>>> whole game or engine), may cause the game to regularly freeze
>>> at the wrong time, because of an unwanted GC. Hence the
>>> phobia.
>>
>> You make it sound like a C++ game codes, debugs, profiles and
>> optimizes itself.
>> And like there are no gotchas with C++.
>>
>>> Anyway, I know I'm on a D forum here, so "those who don't
>>> want to understand won't, and those who want will", to
>>> paraphrase a former poster here.
>>
>> Well, it appears that you don't.
>>
>> And since you point out the D forum folks, I know game
>> developers are a very special lot, too, with ther mantra like
>> repetition of GC is the devil, acting like it's 1985 and the
>> need to count clock cycles and top-of-the-food-chain
>> I-never-make-mistakes arrogance like nobody else knows how to
>> write fast code, yet most games of those clever guys are bug
>> ridden pieces of poor quality even years after release,
>> including top AAA titles *cough* TES. Despite - or more likely
>> because - being made in C++.
>>
>> Maybe performance aware game developers would do well to also
>> adopt the idea of code quality and D offers a lot in that
>> regard. Plus C++ish performance on top of that.
>
> Yeah. There are plenty of games done in GC languages. C++ folks
> want to use C++. The ones that wanted to switched, switched
> already. Even if nogc gets more mature, they will find another
> excuse. Probably something like "yeah but now I don't know
> which parts of the language and library I can use and it's
> awkward to put nogc everywhere".
>
> I do some free time game development work in various languages,
> even GC ones and the existence of GC was never a big issue for
> me. Sure, I am not a super mighty C++ programmer, so I don't
> know much, but for me it's more important as a gamedev to have
> features such as operator overloading, value types/be able to
> cast Vector3f[] to float[] without copying (something C/C++/D
> can do, for example Java can't do, C# can partially do that
> with LayoutKind.Sequential), accessibility of C bindings for
> popular libraries like SDL, SFML, ODE.
>
> nogc, betterC, interfacing to C++, at most they get a "hmm,
> that's interesting", but I haven't really seen them bring
> people to D. And I'll take a fun and convenient language over
> performant one any day.
As I said, I wanted to explain the roots of the GC phobia for
some C++ developers.
If you don't agree when I said that one allocation during a C++
game loop is no problem, which one allocation during a GC
language game loop MAY eventually become a problem, that's fine
by me.
But as many people here told me to "disable the GC" to completely
avoid this potential risk of game freeze, I guess that all those
D experts are also wrong in giving me this advice.
More information about the Digitalmars-d-announce
mailing list