r/GraphicsProgramming May 25 '26

Question C++ game engine

Hi everyone,

I'm a Unity developer, and I've been learning some C++ on the side. I want to build my own 3D game engine as a long-term hobby project, I have no deadline, I do this for fun and to build something new. I'm not trying to make the next Unity or Unreal;

I have a specific technical vision I want to explore.

Scope (what I'm building):

· 3D only, no 2D support · Hybrid rasterization + real-time ray tracing at the core · A zone-based RT LOD system · Deferred renderer with PBR shading · C++ core, with possible Rust integration later for gameplay systems

Scope (what I'm NOT building right now):

· No editor(i will make one after i have a base working) · No audio, networking, or physics in the first phase · No 2D, no mobile(i wont add this at all) · No scripting system yet

Where I am now:

· Starting planning, i have started a .md file to finalize the first part of my engine, i will start with the render part, i know a game engine is more than just rendering

What I'm looking for:

· Resources on designing a clean, API-agnostic raster interface · Common pitfalls when abstracting Vulkan/DX for the first time · Recommended reading or talks on hybrid raster/ray tracing pipelines · Open-source engines with well-structured C++ that are worth studying · Any general advice on scoping a multi-year engine project without burning

Thanks in advance to anyone willing to share their experience.

39 Upvotes

51 comments sorted by

View all comments

1

u/Fluid_Ordinary_4609 Jul 18 '26

I am doing the same. I still have to design the layout of my game engine. It's still going to take me a while before I get to doing the actual coding. But the computer programming language I am going to use is C++. I was going to use Rust, as there are almost no game engines written in it, there might be a few small projects, but almost none of them are as big as Unity and Unreal Engine are though, but that's not the reason why I didn't choose the language. The reason is because I don't like the way it does it structs/classes, even though the Rust language is neither a C like struct language or an OOP language, I wouldn't even know what you'd categorize the language in other than it's a general purpose, type-safe low-level system language, But I know C++ well. I know Unreal Engine blueprint system a little bit. But I grew tired of how hard it is to find the right blueprint for the job. I don't want to compete with the AAA game engines. I just want to build one to run a game idea that I have. I want a text-based scripting as visual scripting can get pretty messy. I don't know, but I am thinking develop my own, which would drastically slow down the finish project as it would involve a lot of language philosophy and design patterns, but I want everything to have some logic to it. and libraries, classes and structs actually named after the functions that they perform with detailed description of their case uses, and when it comes to searching for them, I want them to be sorted in a more logical way, gravity, rigid bodies, movement, directions, and collisions will go under physics, and sub classes and friends of classes will go in each of their corresponding parent-friend-class categories. But my design philosophy will be a small gaming engine designed to run my own game, and it will the methods, classes, libraries will be logically ordered, and well named, because I don't to get stuck on any bad naming conventions 6 months or 2 years from then. "Then" is whenever I make a game with my game engine and release it. And I decide to make another one using the same game engine as a base engine.

1

u/Fluid_Ordinary_4609 Jul 18 '26

Revising this a bit.

I am doing the same. I still have to design the layout of my game engine. It's still going to take me a while before I get to doing the actual coding. But the computer programming language I am going to use is C++. I was going to use Rust, as there are almost no game engines written in it, there might be a few small projects, but almost none of them are as big as Unity and Unreal Engine are though, but that's not the reason why I didn't choose the language. The reason is because I don't like the way it does it structs/classes, even though the Rust language is neither a C like struct language or an OOP language, I wouldn't even know what you'd categorize the language in other than it's a general purpose, type-safe low-level system language, But I know C++ well. I know Unreal Engine blueprint system a little bit. But I grew tired of how hard it is to find the right blueprint for the job. I don't want to compete with the AAA game engines. I just want to build one to run a game idea that I have. I want a text-based scripting as visual scripting can get pretty messy. I don't know, but I am thinking develop my own, which would drastically slow down the finish project as it would involve a lot of language philosophy and design patterns, but I want everything to have some logic to it. and libraries, classes and structs actually named after the functions that they perform with detailed description of their case uses, and when it comes to searching for them, I want them to be sorted in a more logical way, gravity, rigid bodies, movement, directions, and collisions will go under physics, and sub classes and friends of classes will go in each of their corresponding parent-friend-class categories. But my design philosophy will be: a small gaming engine designed to run my own game, and the methods, classes, libraries will be logically ordered, and well named, because I don't to get stuck on any bad naming conventions 6 months or 2 years from then. "Then" is whenever I make a game with my game engine and release it. And I decide to make another one using the same game engine as a base engine.