Indie Team Breaks Down Shipping Multiplayer Game With Godot 4.6 Using C#
Learn what worked and what didn't for Quad Head in Pratfall, where you team up with friends to explore a dangerous cave and find your lost dog.
Let's be honest, multiplayer games are still among the hardest to make. Even though modern tools and frameworks take away a lot of the hard work, the process is still complex and demanding. Game engines also differ in their multiplayer strengths, so you'll want to research your choice.
Pratfall is a newly released co-op game from Quad Head, a small four-person team. It marks their first shipped title made with Godot after previously working on games in larger teams using Unreal and Unity. The game was created over just six months, and the developers have shared insights into the technical side of production, which could be a useful reference for other Godot users looking to learn from a real-world project.
Pratfall
Pratfall
The tech stack for the project was centered around Godot 4.6.1 with C#, with Steam integration handled through Facepunch.Steamworks. During development, multiplayer was handled using a custom solution built directly with Epic Online Services inside the editor, and the final release switched to SteamNetworkingSockets. The team also implemented a custom proximity chat system for in-game voice communication.
On the gameplay side, Quad Head used a component-based architecture written in C#, with heavy use of source generation to reduce boilerplate code and keep performance efficient. Physics was handled by Jolt from the very beginning, which worked well overall, though the team noted there is still room for improvement. Procedural generation was entirely custom and included a node-based noise graph system that allowed for faster iteration.
Pratfall
Pratfall
For debugging and profiling, they relied heavily on a debug UI built with ImGui and also made a custom C# profiler to track execution time and memory allocations, inspired by Unreal Insights and the Unity Profiler. The analytics pipeline was also fully custom to have complete control over the data without relying on external services.
The build system followed a scriptable approach similar to the Unreal Build Tool, using JSON for configuration and C# for scripting. Quad Head emphasized a strong preference for open-source tools and software wherever possible.
The developers noted that C# combined with Godot turned out to be a strong fit, and they also found source generators to be highly valuable. Investing early in internal tools paid off as well, even though it took time to build. Their procedural pipeline also scaled effectively, and finally, having full ownership of the analytics provided clear benefits during playtesting and balancing.
Pratfall
Pratfall
Things weren't completely smooth, obviously. Editor stability was a recurring pain point, and crashes happened often enough during heavy iteration. Quad Head also ran into some edge cases with C# integration: there were quirks and bugs around data loss with uncompiled changes and garbage collection. In some situations, GC behavior caused issues that were difficult to track down and required workarounds.
Another unexpected problem came from Windows' Smart App Control, which blocked the game for some users, leading to a poor first-time experience. The team had to pay for code signing to reduce warnings and prevent the system from flagging the build.
"Overall, we're really happy we chose Godot for this project, especially as a small team with a strong programming focus. Feels like Unity was 10 years ago. The flexibility and ability to build custom systems on top of it were a big plus for us. Having full access to the engine code is always a plus. And of course, we don't have to worry about random pricing changes that could put us out of business."
You can grab a copy of Pratfall here and check out the original Reddit thread for more details on Quad Head's custom tools, experience with Jolt, and other aspects of production, or even ask the developers your own questions there.
Godot 4.7's first beta snapshot has just arrived, and it's also been revealed that HDR output is finally making its way into the engine:
Don't forget to subscribe to our Newsletter and join our 80 Level Talent platform, follow us on Twitter, LinkedIn, Telegram, and Instagram, where we share breakdowns, the latest news, awesome artworks, and more.
Are you a fan of what we do here at 80 Level? Then make sure to set us as a Preferred Source on Google to see more of our content in your feed.
Subscribe to 80 Level Newsletters
Latest news, hand-picked articles, and updates