After doing the WebAssembly port, I thought: This D Runtime must be very flexible, so, I thought to myself that maybe this could be a time to try again a very old hobby I had: Doing homebrew games for PS Vita.
So, hands to work, I started dealing with PS Vita again, but now, instead of using LWDR, I used the custom runtime I helped on in Adam's repository. After bunch of testing D features inside this platform, (many memory related bugs specially as how in that platform it works a little different), I kept trying to make it work and thankfully to a plenty of helpful people from PS Vita homebrew (including a forum user's colleague), I was able to bring my game engine to breath into PS Vita:
Currently, using OpenGL ES 2.0 and OpenAL for its front features and on its backs, Gamut, Arsd:ttf and Audioformats. Incredible D libraries. This game engine is being made with almost 100% D code and I wish to keep doing like that, it is a lot easier to maintain.
Special acknowledgements to Guillaume which was really helpful into helping me avoid some of my problems into his libraries (specifically try/catch).
After the PS Vita port, I can say again: The D runtime is not hard to port, it is an exhaustive process and currently, I'm pretty sure I must be version locked (which I'm going to look that after finishing the next incoming port). The D runtime could get hooks for memory allocation, a version of throw
which actually only causes assert(false)
(which is what I'm using right now). Even better, Adam wrote a great post about the main problem we find when needing to get a custom runtime: Sometimes partial support is all we need to get things done: http://dpldocs.info/this-week-in-d/Blog.Posted_2023_02_20.html
So, here's a pic of my game running on PS Vita and promise some day I'll work into doing a video instead (I need to make it a little more polished over all the platforms I support)
#dlang #hipremeengine