The 2024 Wheel Reinvention Jam just concluded. See the results.

DLang Handmade Hero port

Hi everyone,

I managed to finish first 25 days of Handmade Hero (writing the platform layer) in DLang. For now it is a pretty straightforward port with only a few dlang specific features around the code but I am thinking to go through it and try to make it more D like, so to say. My plan is to continue porting this up to some point where I feel I learned enough to start making some other game or game engine in D.

Now if I understood Casey, I am ok with putting the part I did so far on my public github account but I shouldn't put the game parts that come after this as public. Is that right?

Also how could I get a dhandmade private repo on Handmade Hero github organization so I can push all further work there?
As part of this, have you implemented hot reloading via a DLL? If so, I'd love to hear how you accomplished it. I've implemented it myself on a project of mine, but I had to make some significant changes to druntime to get it to work. I also have to work under some limitations due to the way D handles things (for example, no using classes unless I am very cautious, since the typeinfo won't match after a hot reload. Additionally, I completed disabled finalizers, as they were causing crashes). I'd be curious to know if there was a better solution than the hacks I ended up with.

I'm also curious how you did the single contiguous block of memory. Obviously D's garbage collector won't let you do this, so I'm assuming you'd have to roll your own allocator and make some changes to druntime to intercept calls to the GC and use your own allocator instead?

In any case, as a fellow D game developer, this is awesome stuff!