Options for Cross-Platform 3D Game Development

Chris Katko ckatko at gmail.com
Thu Jul 6 06:54:27 UTC 2023


On Wednesday, 5 July 2023 at 22:27:46 UTC, Andrew wrote:
> So, I've gotten the itch to have a go at game development in D, 
> after doing a bit of it in Java last year. I've previously used 
> LWJGL, which is a java wrapper for OpenGL, OpenAL, GLFW, and 
> some other useful libs.
>
> The problem is, apparently OpenGL is deprecated for apple 
> devices, so I don't really want to use that unless there are no 
> decent alternatives.
>
> So far, the most promising I've seen is 
> [bindbc-bgfx](https://code.dlang.org/packages/bindbc-bgfx), but 
> it's been a pain to set up due to having to build the bgfx 
> codebase, which requires a specific version of glibc that my 
> distro (Linux Mint) doesn't offer yet.
>
> Are there any other recommendations for cross-platform 
> rendering libraries? Of course I could use a pre-made game 
> engine like Unity or Godot, but for me, most of the fun is in 
> making the engine.

Are you trying to make a PC game, or a mobile game? Because in 
99% of cases I would pick a different toolchain for mobile than 
PC. OpenGL being depreciated on a single, walled-garden platform, 
does not rule it out for the entire rest of installed systems.

Only if I absolutely needed, cross-platform out-of-the-box with 
mobiles and PC, would I pick a package like, Xamarin. Which now 
forces me to use C#, and the size bloat of including a mono 
framework with all my apps. I would not pick Xamarin just because 
I wanted to keep my options open, I would d pick it because I 
have a planned application that needed to be 1:1 synced across 
iPhone, Android (and possibly PC).

There's also other options. Such as using a OpenGL -> Metal 
conversion layer, like MetalAngle:

https://github.com/kakashidinho/metalangle

https://chromium.googlesource.com/angle/angle

So be sure exactly what you want as the best tools for the job 
will depend greatly on the requirements of the project.



More information about the Digitalmars-d-learn mailing list