DevoxxFR 2024 Reproducible Builds with Apache Maven
Game Development 2 Dot 0
1. Game Development 2.0:
Moving from boxed product
to a service-based model
Justin Quimby
Justin@QuimbyHeavyIndustries.com 1
2. Need assistance in building a service?
• You are looking at a copy of the slides I used in
my 2009 GDC presentation
• Please contact me if you have any questions
or I could be of assistance to you and your
organization
• Justin@QuimbyHeavyIndustries.com
Justin@QuimbyHeavyIndustries.com 2
3. Obligatory Background Slide
• Asheron’s Call
• Asheron’s Call 2
• Lord of the Rings Online
• Dungeons and Dragons Online
• Spore
Justin@QuimbyHeavyIndustries.com 3
18. Differing Mindsets
Boxed Products Services
• Do whatever it takes to ship • Design for continuous
revenue
• Obsess over launch date
• Practice sustainable
competition and marketing
development
• Throw bodies at problems
• Invest in automation and
• Build and plan for one
tools
release
• Listen to customers
• Rest when the game is done
• Evolve the product
continuously
Justin@QuimbyHeavyIndustries.com 18
41. Hunting Culture Warning Signs
• Team feels they are done when the product goes gold
• Corporate focus on shipping rather than shipping then
supporting the product
• Formal review and compensation process does not place
value on a service-oriented mindset
• Service support is not seen as sexy
• No clear path for service-based career growth
• No financial incentives for building a sustainable service
• Superstars go on to new projects
• Mediocre employees get dumped on the live team
Justin@QuimbyHeavyIndustries.com 42
42. Hunting Culture Fixes
• Build a culture focused on post-ship
• Build career paths around supporting a service
– Titles
– Financial rewards
• Make planning sexy
– Reward proactive problem solvers
– Track promises and results
Justin@QuimbyHeavyIndustries.com 43
43. Plan like a Farmer
Justin@QuimbyHeavyIndustries.com 44
44. Plan like a Farmer
Preproduction
1
4
2
Gameplay and Core
Technology
3 Gameplay testing and
iteration
Patch and Release testing
Final Approval and Ship
4
Process
10
Slop time
Justin@QuimbyHeavyIndustries.com 45
52. Planning for Schedule Crunch is
Planning to Fail your Service
Justin@QuimbyHeavyIndustries.com 53
53. Death Marching is not necessary
• D&D Online shipped with only 6
weeks of crunch in a 2.5 year
development cycle
Justin@QuimbyHeavyIndustries.com 54
54. You build your own path
Justin@QuimbyHeavyIndustries.com 55
55. Plan well for launch
• A smooth service
launch needs
every aspect of
the launch to be
rehearsed
• Intentionally fail
internally before
you fail externally
Justin@QuimbyHeavyIndustries.com 56
56. Plan well for launch
• Escalation pipelines
• On-call personnel procedures
• Community management tools
• Telemetry and other mechanisms
to measure customer usage
• Patch process and tools
Justin@QuimbyHeavyIndustries.com 57
61. Patch Process
• Who decides what goes in a patch?
• How long does QA need to review the patch?
• Does QA need to formally approve the patch?
• What happens if QA rejects a build?
• What backward compatibility testing is done?
• Who makes the call on publishing a patch?
• How does the development team work ahead on the
next patch while QA is testing?
• What is the branching process?
Justin@QuimbyHeavyIndustries.com 62
62. Branch Process
• Keep it as simple as possible
• Ensure all departments follow it
• Pre-launch and post-launch branches follow the same
process
• Trust but Verify
– Require developers to write and run unit tests
– Use automated testing
– Run a “shaminator”
• Never set branch deadlines on Monday or Friday
Justin@QuimbyHeavyIndustries.com 63
65. Build Process
• Make an automated build system
• Have a clear owner who kicks off
the official build
• Have a simple build numbering
system
• Use one build system
Justin@QuimbyHeavyIndustries.com 66
67. Deployment
• How does the handoff of the build to
Network Operations work?
• How much time do they need?
• What last-minute sanity checking is done
prior to letting the public in?
• Who can make the call for an abort of the
deployment?
• How can operations roll-back to a previous
version?
Justin@QuimbyHeavyIndustries.com 68
69. Player Communication
• How do the players know about
upcoming downtime?
• What information is provided to
them during downtime?
• How are new changes
communicated to them?
Justin@QuimbyHeavyIndustries.com 70
76. Community Management
• Never promise something you cannot deliver
• Always respect the intelligence of your players
• As much as possible, explain why potentially
contentious changes are being made
• The crowd will expose every flaw in your logic
• At some point, you will be wrong!
Justin@QuimbyHeavyIndustries.com 77
78. Customer Service is everyone’s job
Executive
Team
Project Production
Management Team
Development Service
Team Team
Art QA
Engineering Net Ops
Customer
Design
Service
Justin@QuimbyHeavyIndustries.com 79
86. Spore
Gameplay Editor
Engineers Team
Core
Animation
Engine
Engineers
Team
Pollination Artists, An
& Web imators &
Team Audio
Justin@QuimbyHeavyIndustries.com 87
118. Need assistance in building a service?
• You are looking at a copy of the slides I used in
my 2009 GDC presentation
• Please contact me if you have any questions
or I could be of assistance to you and your
organization
• Justin@QuimbyHeavyIndustries.com
Justin@QuimbyHeavyIndustries.com 119