SE-Radio Episode 339: Jafar Soltani on Continuous Delivery for Multiplayer Games.mp3

Topics covered
Popular Clips
Episode Highlights
Trunk-Based Dev
Trunk-based development is a strategy where all developers work on a single shared branch, often referred to as the main or trunk, to avoid complex merges and support continuous integration. explains that this approach minimizes painful merge conflicts and provides faster feedback by integrating changes frequently, sometimes even daily 1. He contrasts this with feature branch development, where separate branches can lead to long feedback loops and difficult merges, especially with binary assets 2. shares a past experience where integrating changes from multiple branches took days, highlighting the efficiency of trunk-based development 3.
The longer it takes and the bigger the change is, the more painful it is to merge that back.
---
This strategy ensures that the main branch remains releasable, stopping all changes if a problem arises until it's resolved.
Feature Toggles
Feature toggles are crucial in game development, allowing new features to be tested and enabled or disabled without requiring new builds. describes two types of toggles: compile-time, which removes code before shipping, and dynamic, which allows features to be toggled on or off at runtime 4. This flexibility helps manage features still in progress, ensuring they don't disrupt the player experience. emphasizes the importance of small, frequent changes to reduce risk and simplify troubleshooting 5.
By choosing to switch off certain code paths through feature toggles, we prevent players from seeing it.
---
This approach supports continuous integration by allowing developers to work on the same branch without releasing incomplete features.
Prototyping
Prototyping in game development involves testing concepts and features without impacting production code. explains that a separate prototype team uses a different engine, like Unity, to experiment quickly and answer questions about the game 6. This separation ensures that prototype code doesn't accidentally enter production, allowing for rapid iteration and learning. notes that as the team matures, they increasingly prototype within the main engine, Unreal, while maintaining clear boundaries between prototype and production code 7.
We could be almost like fast and loose on the prototype code base.
---
This strategy helps avoid the risks of releasing untested features to millions of players.
Related Episodes


SE Radio 585: Adam Frank on Continuous Delivery vs Continuous Deployment
Answers 383 questions

Episode 221: Jez Humble on Continuous Delivery
Answers 383 questions

Episode 133: Continuous Integration with Chris Read
Answers 383 questions

Episode 211: Continuous Delivery on Windows with Rachel Laycock and Max Lincoln
Answers 383 questions

Episode 498: James Socol on Continuous Integration and Continuous Delivery (CICD)
Answers 383 questions

SE-Radio Episode 247: Andrew Phillips on DevOps
Answers 383 questions

SE-Radio Episode 338: Brent Laster on the Jenkins 2 Build Server
Answers 383 questions

SE-Radio Episode 313: Conor Delanbanque on Hiring and Retaining DevOps
Answers 383 questions

SE-Radio Episode 283: Alexander Tarlinder on Developer Testing
Answers 383 questions
SE-Radio Episode 332: John Doran on Fixing a Broken Development Process
Answers 383 questions

SE-Radio Episode 288: DevSecOps
Answers 383 questions

SE Radio 571: Jeroen Mulder on Multi-Cloud Governance
Answers 383 questions
SE Radio 633: Itamar Friedman on Automated Testing with Generative AI
Answers 383 questions

SE-Radio Episode 256: Jay Fields on Working Effectively with Unit Tests
Answers 383 questions

SE Radio 637: Steve Smith on Software Quality
Answers 383 questions














