Reviving YAGE
Benjamin Thaut
code at benjamin-thaut.de
Wed Feb 5 13:37:22 PST 2014
Am 05.02.2014 22:21, schrieb Ryan Voots:
>
> At the moment I don't think it really does deal with GC pause times and
> it's one of the things that will need to be dealt with. I believe it's
> possible (I am still learning much of D) to tell it to not do any GC
> during critical paths which should help keeping it from mangling things
> mid-frame. There also appears to be some threading support already in
> the engine to do rendering on a seperate thread which should help out at
> keeping frame rates up if the GC can be kept to a minimum there.
>
> In any case I'm not currently aiming for getting the engine capable of
> 300fps with very low latency as it isn't necessary for what I'm after
> though once it's working I certainly won't turn down someone who wants
> to get it that far.
>
> What I'm hoping to get out of this is more a basic framework for
> relative ease for making games more like say the engine Unity provides
> or some of the other things out there.
If you didn't deal with GC pause times, you will have quite some fun
with it. I wrote a small game engine in D, and I ended up running the
garbage collector every frame to get stable framerates. Not doing it
resultet in 3-10 second pauses during gameplay because of GC collection.
http://www.youtube.com/watch?v=mR2EQy3RRyM
Because the GC used up to 8 milliseconds every frame (which is 50% for a
60 FPS game), I finally removed the GC from druntime and I'm using a GC
free version of D since then. This however comes with maintaining a
custom version of druntime and phobos (stripped down to about 10% of the
modules) and writing my own standard library.
You can read more about the GC issues here:
http://3d.benjamin-thaut.de/?p=20
Kind Regards
Benjamin Thaut
More information about the Digitalmars-d
mailing list