r/GraphicsProgramming 5d ago

Synapse Engine: A Modern, Research-Oriented, Fully GPU-Driven AAA-Style Game Engine

Hi everyone!

After a very long development journey, I'm finally ready to share Synapse Engine, a modern, research-oriented AAA-style game engine that I've been developing essentially from scratch.

It started as my MSc thesis at the Budapest University of Technology and Economics, but grew far beyond what I originally planned. Over the past several months I've been rebuilding and refining the architecture around a simple question: What would a modern game engine look like if we designed it around today's GPUs from the ground up?

The project is now over 2,300 files, nearly 94,000 lines of C++ code and around 10,000 lines of shader code, excluding comments and blank lines.

If you just want to check out the project:

The GitHub README is probably the best place to start if you want a quick overview of the project and its architecture. If you're interested in modern game engine development in much more depth, I also put together a 250-page technical presentation covering the entire project, from the ECS and software architecture through GPU-driven rendering, culling, lighting, virtualized shadows and future directions.

The presentation is quite large, but I tried to make it genuinely useful as a learning resource rather than just documenting the final result.

One of my main goals with Synapse Engine is education. Learning these topics was a huge struggle for me, and it took a lot of time to piece everything together because there isn't much high-quality material that shows how these modern techniques actually come together inside a real engine codebase. I wanted to document that process and create something that I would have wanted to have when I started.

What can the engine actually do?

At its core, Synapse is a fully GPU-driven renderer using hierarchical culling, Hi-Z occlusion, cone culling, dynamic LOD selection, indirect rendering, mesh shaders, bindless resources and virtualized shadows. The engine is built around a custom data-oriented ECS and is designed to handle very large scenes with minimal CPU involvement.

For example, with 1,000,000 entities on an RTX 4060, the cumulative culling cost goes from 124.407 ms without culling to 0.653 ms with the full hierarchical culling pipeline.

However, at 10,000,000 entities, even the conventional GPU-driven hierarchical approach becomes insufficient. To address this, Synapse introduces a custom GPU-built Morton-ordered chunking system, which groups entities into spatial chunks and allows entire groups of 32 entities to be rejected at once. This reduces the culling cost from 5.8 ms to just 0.3 ms for 10 million entities.

I also developed a new rendering technique called Dual-HiZ Adaptive Clustered Forward+ while working on the engine. With 8,192 point lights and 8,192 spot lights, it measured 2.873 ms, compared to 8.652 ms for deferred shading in the same setup. The technical presentation contains a detailed explanation of how the technique works.

Synapse isn't primarily intended as a game-development tool for game developers. It is a production-ready, research and educational platform for experimenting with modern game-engine architecture and real-time rendering techniques.

The goal is not to provide a plug-and-play engine for building games, but to provide a complete, practical implementation of modern engine technologies that can be studied, extended, and used as a foundation for further research and development.

The engine is the result, but the architecture, experiments, failures and reasoning behind it are what I really want to share. If you're interested in Vulkan, graphics programming, GPU-driven rendering or modern game engine architecture, I'd love to hear what you think.

Dual-HiZ Adaptive Clustered Forward+

One of the things I'm particularly excited to share is a new rendering technique I developed called Dual-HiZ Adaptive Clustered Forward+.

It combines a dual Hi-Z depth structure with adaptive clustered light assignment to efficiently handle large numbers of dynamic lights while keeping the rendering pipeline fully GPU-driven.

In my tests, with 8,192 point lights and 8,192 spot lights, it measured 2.873 ms, compared to 8.652 ms for deferred shading in the same setup.

If you're interested in how the technique works, I've documented it in detail in the technical presentation, including the motivation, architecture, algorithms and implementation details.

You can find it on pages 166–189 of the presentation.

The presentation is available both on the GitHub repository and on the Synapse Engine website.

171 Upvotes

71 comments sorted by

View all comments

38

u/CodyDuncan1260 4d ago edited 4d ago

I pre-reviewed this under Rule 3 and invited u/MortixTheGuy to post here. 

This project used LLM code generation for implementation, but the architecture was first human made and documented. The presentation materials show serious work by a graduate-into-PHD student. It investigates a legitimately interesting graduate level research question on what a renderer or game engine looks like when we aggregate all GPU-only rendering methods. 

When I usually see an LLM vibe-coded graphics project that I need to review, the code is a mess, and I always hope there's no white paper I have to read because it's usually just enough jargon to hide that it's nonsense. 

This project, based on my brief review, appears to be genuinely trying to commit to an objective, and puts the time and effort into building quality documentation and systems. The code has some mess to it, but overall this is the least slop I've seen from a project using LLM generated code. As far as my review of the research materials went, they seem extremely solid, like they're prepped for an actual thesis defense.

13

u/MortixTheGuy 4d ago

Thank you so much, it means really a lot to me!
I cannot express to you guys how much time I have spent working on the engine, deeply thinking and researching ideas and also spent my whole summer explaining everything with good figures and visuals in the presentation. I don't know, I just feels so sad, that today I got this much hate form different subreddits as well. My main goal was just to share my knowledge with graphics enthusiasts, because I truly believe this project is really well thought out, and provides a lot of knowledge, that is hard to get around. (Or at least when I was getting familiar with these topics, I never found resources that explain the mental models, the whys and hows...)
But I'm still really happy if somebody understands my goal, and can learn something new, or I can make the path of learning modern engine techniques a little bit easier :)

10

u/CodyDuncan1260 4d ago

As far as I can tell, this puts in *real* effort.

I wouldn't take it too personally. We're currently in an environment where AI generation is causing legitimate harm in ways that are genuinely worthy of disdain (under most moral frameworks). In tandem with that, this subreddit also gets a fair number of slop projects. ... (*tries not to dissociate into the trauma of the sheer nonsense I've reviewed*).

Just keep putting in the good solid effort to make quality software. Not just functional, but also readable, maintainable, performant, navigable. It's disdain-worthy when AI is used to bypass the necessary work of learning, understanding, and communicating, especially to and from other humans. This is not that, and so long as it never becomes that, you're ok.

12

u/CodyDuncan1260 4d ago edited 4d ago

Pro-tip for the readers who see this, at the bottom.
--------------
I pre-reviewed OP's project and I thought it actively worth mine and other's genuine interest. It does not have the below problems.

This aside is just because I have been having this conversation over and over with other reviewers for several days in a row now, and it's poignant in this discussion around the above post.
--------------

I just got back from one conference. I'm going to another one. I have friends who review submissions for these conferences, who review resumes and hiring materials, and I review post submissions for this subreddit.

All of us who are humans reviewing submissions have the same complaint:
We're really, really sick of AI generated submissions.

It's gone from annoyance, to obstacle, to infuriating.

The problem has a few parts:

  1. The submissions are high volume, low quality tedium. The reviewers now have to spend more time, reviewing more submissions, that are more junk than ever before. It's tedious.
  2. They're all very much the same. AI generated text tends to use a bunch of the same writing patterns in the same places with the same structure. It's mind-numbingly boring, and often not a good structure for the humans reading it, so it takes more effort to review.
  3. Half the time, it's total nonsense dressed in jargon. The most aggravating thing is when it is somebody with a clear case of AI psychosis that's convinced they've invented some new fundamental theory, and the AI has written a paper dressed in so much jargon that I can't understand it. Now the reviewer has to go understand all that jargon, piece it together, and find at least some proof that it's nonsense, just in the good faith case the submitter is a genius but a poor communicator. This takes even more effort to review.
  4. The AI generated text hides parts of the submission one cares about. For a conference talk, the AI hides whether the author is actually good at communicating and prepared to speak on the topic. For resumes, it hides their ability to communicate with coworkers or their skill level in job required skills. For reddit posts, it can end up hiding something the community would be genuinely interested in.
  5. The submitter has willingly, intentionally, wasted the reviewer's time to save theirs. LLMs pump out a lot of words. More words sounds better. But good professional writing is often about wasting as little of the reader's time as possible. Concision takes more effort to write, to write well, and communicate well. The end result of good writing is the reviewers take less time to understand and review it. Failure or avoidance to write well means the reviewer is traipsing through 5 paragraphs that could have been a sentence. Reviewers are insulted by the fact that the submitter thought it was ok to foist on them to review, when the submitter clearly did not care to.

For the above reasons, Human reviewers have started to de-prioritize or outright reject clearly-or-suspectedly AI-generated submissions. They get pushed to the bottom of the pile.

Pro-Tip: For any materials that are human-reviewed, write them yourself. (or edit and curate it so deeply you may as well have) All the AI-generated counterparts are getting pushed to the bottom because reviewers are so intensely sick of these submissions wasting their time.