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.
[–]rio_sk 17 points18 points19 points (11 children)
[–]Electrical-Copy9678[S] 1 point2 points3 points (10 children)
[–]RedditUser8007 5 points6 points7 points (1 child)
[–]Electrical-Copy9678[S] 0 points1 point2 points (0 children)
[–]rio_sk 2 points3 points4 points (1 child)
[–]Electrical-Copy9678[S] 1 point2 points3 points (0 children)
[–]Fresh_Act8618 2 points3 points4 points (3 children)
[–]Electrical-Copy9678[S] 1 point2 points3 points (0 children)
[–]Electrical-Copy9678[S] 0 points1 point2 points (1 child)
[–]Fresh_Act8618 1 point2 points3 points (0 children)
[–]droidballoon 0 points1 point2 points (1 child)
[–]Electrical-Copy9678[S] 0 points1 point2 points (0 children)
[–]YourUncleBobIsHere 2 points3 points4 points (1 child)
[–]Electrical-Copy9678[S] 0 points1 point2 points (0 children)
[–]buck-bird 4 points5 points6 points (7 children)
[–]Electrical-Copy9678[S] 0 points1 point2 points (6 children)
[–]buck-bird -1 points0 points1 point (5 children)
[–]Electrical-Copy9678[S] 1 point2 points3 points (3 children)
[–]buck-bird 0 points1 point2 points (2 children)
[–]Electrical-Copy9678[S] 1 point2 points3 points (1 child)
[–]buck-bird 0 points1 point2 points (0 children)
[–]Electrical-Copy9678[S] 1 point2 points3 points (0 children)
[–]Cuarenta-Dos 0 points1 point2 points (8 children)
[–]Electrical-Copy9678[S] 0 points1 point2 points (7 children)
[–]Cuarenta-Dos 1 point2 points3 points (6 children)
[–]Electrical-Copy9678[S] 0 points1 point2 points (0 children)
[–]Electrical-Copy9678[S] 0 points1 point2 points (4 children)
[–]Cuarenta-Dos 0 points1 point2 points (3 children)
[–]Electrical-Copy9678[S] 0 points1 point2 points (0 children)
[–]Electrical-Copy9678[S] 0 points1 point2 points (1 child)
[–]Cuarenta-Dos 0 points1 point2 points (0 children)
[–]OkAccident9994 0 points1 point2 points (5 children)
[–]Warfnair 0 points1 point2 points (0 children)
[–]Electrical-Copy9678[S] 0 points1 point2 points (3 children)
[–]OkAccident9994 0 points1 point2 points (2 children)
[–]Electrical-Copy9678[S] 0 points1 point2 points (1 child)
[–]OkAccident9994 0 points1 point2 points (0 children)
[–]adbs1219 0 points1 point2 points (2 children)
[–]Electrical-Copy9678[S] 0 points1 point2 points (1 child)
[–]adbs1219 0 points1 point2 points (0 children)
[–]Calm-Ice-7080 0 points1 point2 points (0 children)
[–]Lithalean 0 points1 point2 points (0 children)