Developing Multiplayer Games in Godot
Episode
46 min
Read time
2 min
Topics
Leadership, Design & UX, Software Development
AI-Generated Summary
Key Takeaways
- ✓Physics determinism constraint: Non-deterministic physics in Godot forces a host-authoritative model where one machine simulates all physics objects and broadcasts results to every client. In Domekeeper, carried resources are physics objects, meaning with 8 players each carrying 4 resources, the host must continuously transmit data for 32 objects simultaneously, creating a hard practical player cap.
- ✓Bandwidth optimization via bit-packing: Naive resource synchronization sends full data structures per frame. Domekeeper's team reduced each resource packet to two 64-bit integers by encoding position, rotation, and carrier identity at the individual bit level — using 6-bit integers where full integers are unnecessary. This compression made 8-player sessions viable without requiring dedicated server infrastructure.
- ✓Client-trust model for indie multiplayer: Implementing server-authoritative anti-cheat requires dedicated servers, ballooning costs for premium indie games. Domekeeper deliberately trusts client-reported hit detection, accepting occasional inconsistency. This decision only works because the game uses friends-only lobbies with no public matchmaking, eliminating the adversarial player dynamic that makes server authority necessary.
- ✓Monster synchronization via seeded RNG: Rather than syncing monster positions every frame, Domekeeper sends a unique ID with each monster spawn, which seeds an identical random number generator on every client. Monster behavior becomes locally deterministic from spawn, requiring only event-based correction packets when clients drift out of sync, dramatically reducing per-frame bandwidth requirements for combat phases.
- ✓Network state manager per client: Godot's high-level networking requires scene tree objects to exist on all clients before RPCs can target them, surfacing race conditions that naive packet broadcasting hides. Domekeeper implements a per-client network state tracker so systems only transmit packets to clients in the correct loading or spawning state, preventing the ordering bugs that multiplayer introduces into single-player code.
What It Covers
Renee Haberman (Bip n Bits) and Chris Raidenor (KAR Games) detail the technical and design challenges of retrofitting online multiplayer into Domekeeper, a Godot-built roguelike tower defense game, covering network architecture decisions, bandwidth optimization, physics synchronization, and the economics of peer-to-peer versus dedicated server infrastructure.
Key Questions Answered
- •Physics determinism constraint: Non-deterministic physics in Godot forces a host-authoritative model where one machine simulates all physics objects and broadcasts results to every client. In Domekeeper, carried resources are physics objects, meaning with 8 players each carrying 4 resources, the host must continuously transmit data for 32 objects simultaneously, creating a hard practical player cap.
- •Bandwidth optimization via bit-packing: Naive resource synchronization sends full data structures per frame. Domekeeper's team reduced each resource packet to two 64-bit integers by encoding position, rotation, and carrier identity at the individual bit level — using 6-bit integers where full integers are unnecessary. This compression made 8-player sessions viable without requiring dedicated server infrastructure.
- •Client-trust model for indie multiplayer: Implementing server-authoritative anti-cheat requires dedicated servers, ballooning costs for premium indie games. Domekeeper deliberately trusts client-reported hit detection, accepting occasional inconsistency. This decision only works because the game uses friends-only lobbies with no public matchmaking, eliminating the adversarial player dynamic that makes server authority necessary.
- •Monster synchronization via seeded RNG: Rather than syncing monster positions every frame, Domekeeper sends a unique ID with each monster spawn, which seeds an identical random number generator on every client. Monster behavior becomes locally deterministic from spawn, requiring only event-based correction packets when clients drift out of sync, dramatically reducing per-frame bandwidth requirements for combat phases.
- •Network state manager per client: Godot's high-level networking requires scene tree objects to exist on all clients before RPCs can target them, surfacing race conditions that naive packet broadcasting hides. Domekeeper implements a per-client network state tracker so systems only transmit packets to clients in the correct loading or spawning state, preventing the ordering bugs that multiplayer introduces into single-player code.
Notable Moment
Renee explains that mixing local split-screen co-op with online multiplayer — allowing two couch players to share one connection while playing alongside separate online players — was likely a decision he would never repeat, as it multiplied the possible game states and introduced a disproportionate volume of edge-case bugs throughout development.
You just read a 3-minute summary of a 43-minute episode.
Get Software Engineering Daily summarized like this every Monday — plus up to 2 more podcasts, free.
Pick Your Podcasts — FreeKeep Reading
More from Software Engineering Daily
SED News: Apple’s AI Problem, The Real Business Model of AI, and Token Cost Reckoning
Jun 9 · 48 min
My First Million
How to manufacture a billionaire childhood
May 13
More from Software Engineering Daily
Web Native Game Development
Jun 4 · 54 min
The School of Greatness
How to Build a Million-Dollar Portfolio Starting From Nothing | Graham Stephan
May 8
Books, tools, and gear mentioned in this episode
SignalCast may earn commission on purchases via these links. As an Amazon Associate, SignalCast earns from qualifying purchases.
Tools
“Domekeeper, a Godot-built roguelike tower defense game”
company
“Renee Haberman (Bip n Bits) and Chris Raidenor (KAR Games) detail the technical and design challenges”
“Chris Raidenor (KAR Games) detail the technical and design challenges of retrofitting online multiplayer into Domekeeper”
More from Software Engineering Daily
We summarize every new episode. Want them in your inbox?
SED News: Apple’s AI Problem, The Real Business Model of AI, and Token Cost Reckoning
Web Native Game Development
The Hardware Bottleneck AI Can’t Fix
Autonomous Drone Delivery at Scale
The European Startup Scene
Similar Episodes
Related episodes from other podcasts
My First Million
May 13
How to manufacture a billionaire childhood
The School of Greatness
May 8
How to Build a Million-Dollar Portfolio Starting From Nothing | Graham Stephan
This Week in Startups
Apr 15
This 22-Year-Old Built TikTok for Mobile Games, and It’s Growing Fast | E2276
Latent Space
Apr 15
Notion’s Token Town: 5 Rebuilds, 100+ Tools, MCP vs CLIs and the Software Factory Future — Simon Last & Sarah Sachs of Notion
Accidental Tech Podcast
Mar 26
684: It’s Not What Young People Do
Explore Related Topics
This podcast is featured in Best Cybersecurity Podcasts (2026) — ranked and reviewed with AI summaries.
Read this week's Software Engineering Podcast Insights — cross-podcast analysis updated weekly.
You're clearly into Software Engineering Daily.
Every Monday, we deliver AI summaries of the latest episodes from Software Engineering Daily and 192+ other podcasts. Free for up to 3 shows.
Start My Monday DigestNo credit card · Unsubscribe anytime