So what exactly is coming with extended C++ support?
Ethan via Digitalmars-d
digitalmars-d at puremagic.com
Tue Sep 30 14:19:41 PDT 2014
On Tuesday, 30 September 2014 at 08:48:19 UTC, Szymon Gatner
wrote:
> Considered how many games (and I don't mean indie anymore, but
> for example Blizzard's Heartstone) are now created in Unity
> which uses not only GC but runs in Mono I am very skeptical of
> anybody claiming GC is a no-go for games. - Especially- that
> native executable is being built in case of D.
>
> I realize AAA's have have their reasons against GC i but in
> that case one should probably just get UE4 license anyway.
Hello. AAA developer (Remedy) here using D. Custom tech, with a
custom binding solution written originally by Manu and continued
by myself.
A GC itself is not a bad thing. The implementation, however, is.
With a codebase like ours (mostly C++, some D), there's a few
things we need. Deterministic garbage collection is a big one -
when our C++ object is being destroyed, we need the D object to
be destroyed at the same time in most cases. This can be handled
by calling GC.collect() often, but that's where the next thing
comes in - the time the GC needs. If the time isn't being
scheduled at object destruction, then it all gets lumped together
in the GC collect. It automatically moves the time cost to a
place where we may not want it.
ARC garbage collection would certainly be beneficial there. I
looked in to adding support at a language level and at a library
level for it, but the time it would have taken for me to learn
both of those well enough to not muck it up is not feasible.
Writing a garbage collector that we have greater control over
will also take up too much time. The simpler solution is to
enforce coding standards that avoid triggering the GC.
It's something I will look at again in the future, to be sure.
And also to be sure, nothing is being done in Unity to the scale
we do stuff in our engine (at least, nothing in Unity that also
doesn't use a ton of native code to bypass Unity's limitations).
More information about the Digitalmars-d
mailing list