Reviving YAGE
Martin Cejp
minexew at gmail.com
Wed Feb 5 14:39:21 PST 2014
On Wednesday, 5 February 2014 at 21:37:22 UTC, Benjamin Thaut
wrote:
> 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
Those numbers are pretty scary. How many objects are you
allocating and trashing each frame?
More information about the Digitalmars-d
mailing list