What language and graphics API should I use to build a 3D game engine from scratch?

August 3, 2026 5 answers
Asked by MellowCactus47
I want to build a 3D game and the engine it runs on from scratch, mainly as a challenging personal project. I have made an engine before, but it performed poorly because I relied too heavily on ray-traced rendering, so this time I want to try a different rendering approach. I am not looking to be talked out of making my own engine; I mainly need a recommendation for the programming language and graphics API. The project would probably target Linux rather than Windows, and I may share the finished game with friends if it gets that far.

Answers

NorthstarPine31
If you want a more modern and difficult route, try Zig with Vulkan, or Odin with a library such as raylib. Odin is designed with this kind of low-level graphics programming in mind, and raylib can provide useful math, model-loading, and windowing support without forcing you to use a full engine.
Reply to this answer
QuietOrbit58
You could also use WebGPU with WebAssembly and TypeScript for input and browser-side code. That would let you send friends a URL instead of asking them to install a native build, though it adds another layer of complexity and may not be the best fit if native Linux performance is your priority.

MellowCactus47: I do not know much about that stack yet, but the idea of sharing it through a URL is interesting enough that I may investigate it.

Reply to this answer
CopperMoth82
C++ with OpenGL is probably the most practical choice. C++ gives you plenty of control and performance, while OpenGL has a large amount of documentation and supporting libraries. For a solo project, many of the usual complaints about C++ are manageable.
Reply to this answer
VioletNook6
C or C++ would both work well. The more important thing is choosing a compiled language that already has bindings for a graphics API such as OpenGL or Vulkan. C is a reasonable option if you prefer simplicity, while C++ offers more language features.
Reply to this answer
GraniteFox204
One warning from experience: writing the engine can easily consume the entire project. It is very easy to end up with beautifully organized rendering, asset, and math systems without ever making the actual game. Defining a small playable prototype early can help keep the engine work focused on features the game actually needs.

MellowCactus47: That is exactly the failure mode I am trying to avoid. The engine is for the game, so I will need to keep the first version limited enough that I still reach a playable result.

Reply to this answer

Add your answer

Answers are reviewed before publication.

Related Discussions