[GDC2015] Postmortem - Building a AAA MMO for mobile devices

89
Postmortem: Building a AAA MMO for Mobile Devices Vitaliy Borodovsky

Transcript of [GDC2015] Postmortem - Building a AAA MMO for mobile devices

1. Postmortem: Building a AAA MMO for Mobile Devices Vitaliy Borodovsky 2. World of Tanks 1,000,000 players right now 100+ million registrations 3. World of Tanks 1,000,000 players right now 100+ million registrations 4. World of Tanks 1,000,000 players right now 100+ million registrations World of Tanks Blitz 100,000 players right now 20+ million registrations 5. Nobody knows the secret ? 6. Nobody knows the secret And I dont know either ? ? 7. Project Beginning 8. Project Beginning Small Team 9. Project Beginning Small Team No Management Processes No Technical Processes 10. Project Beginning Small Team No Management Processes No Technical Processes No 3D Engine 11. Pre-production How can we create a fun game? 12. Pre-production 200+ Play TestsHow can we create a fun game? 13. Pre-production 200+ Play TestsHow can we create a fun game? How can we quickly prototype? 14. Pre-production 200+ Play Tests 500+ Tweaking Options How can we create a fun game? How can we quickly prototype? 15. Pre-production 200+ Play Tests 500+ Tweaking Options 20+ Control Schemes How can we create a fun game? How can we quickly prototype? 16. Pre-production 200+ Play Tests 500+ Tweaking Options 20+ Control Schemes How can we create a fun game? How can we quickly prototype? Static Dynamic Joystick 17. Pre-production 200+ Play Tests 500+ Tweaking Options 20+ Control Schemes How can we create a fun game? How can we quickly prototype? Static Dynamic Joystick AnalogDigital 18. Pre-production 200+ Play Tests 500+ Tweaking Options 20+ Control Schemes How can we create a fun game? How can we quickly prototype? 19. Pre-production 200+ Play Tests 500+ Tweaking Options 20+ Control Schemes Lots of corridor tests How can we create a fun game? How can we quickly prototype? 20. Pre-production 200+ Play Tests 500+ Tweaking Options 20+ Control Schemes Lots of corridor tests 5 Focus Tests How can we create a fun game? How can we quickly prototype? 21. Play your game! Play your game! 22. Challenges 23. Challenges Unstable trunk 24. Challenges Unstable trunk Failed builds 25. Challenges Unstable trunk Failed builds Repeated bugs 26. Challenges Unstable trunk Failed builds Repeated bugs Unpredictable results 27. Management 28. Management How to increase predictability? 29. Management Scrum How to increase predictability? 30. Management Scrum How to increase predictability? How to add exibility? 31. Management Scrum Kanban How to increase predictability? How to add exibility? With Scrum Mix-ins 32. Management Scrum Kanban How to increase predictability? How to add exibility? With Scrum Mix-ins 33. Management Scrum Kanban How to increase predictability? How to add exibility? With Scrum Mix-ins 34. Technical Processes 35. Technical Processes How to keep the trunk stable? Build machine Branching stable releases trunk feature branches hot xes 36. Technical Processes Code review How to keep the trunk stable? How to improve code quality? Build machine Branching 1 to 1 Column on Kanban stable releases trunk feature branches hot xes 37. Technical Processes Code review How to keep the trunk stable? How to improve code quality? Build machine Branching 1 to 1 How to get higher quality? Many to 1 Column on Kanban stable releases trunk feature branches hot xes 38. Engine & Client sync Live on trunk Unstable game after commits to engine trunk 39. Engine & Client sync Live on trunk Unstable game after commits to engine trunk 40. Engine & Client sync Live on trunk Unstable game after commits to engine trunk 41. Engine & Client sync Live on trunk Version based releases Unstable game after commits to engine trunk 42. Engine & Client sync Live on trunk Version based releases Unstable game after commits to engine trunk Game dont want to update the engine Longer migration 43. Improved branching scheme No commits to trunk Engine & Client sync Live on trunk Version based releases Unstable game after commits to engine trunk Game dont want to update the engine Longer migration game trunk game stable engine stable engine trunk release tag 44. Personalise your processes! Personalize your processes! 45. More technical challenges Performance Hard to add new features Architecture was not scalable Not enough objects on the maps Slow content creation Engine 46. Performance Engine Architecture Scalability 47. Performance Engine Architecture Code Driven => Data Driven OOP Model => ECS Model Scalability 48. Base Node Switch Node LOD Node Render Node Code+Data 49. Data LOD System Render System Switch System Entities with LOD Component Entities with Render Component Entities with Switch Component Code 50. Engine Architecture 51. Engine Architecture Iterative Approach New architecture Project Transfer 2 months 1.5 months 1 month Optimization More Iterations New features Release 52. Tools First version of toolchain Based on own UI framework 53. Tools First version of toolchain Based on own UI framework 54. Tools First version of toolchain Based on own UI framework 55. Tools First version of toolchain Transfer to new UI framework Based on own UI framework Second iteration of toolchain New UI framework for PC/Mac 56. Tools First version of toolchain Transfer to new UI framework Embedded old tools to new framework 2 months Based on own UI framework Second iteration of toolchain New UI framework for PC/Mac Old Editor Embedded 57. Tools First version of toolchain Transfer to new UI framework Embedded old tools to new framework Transfer of old functionality 2 months 4 months Based on own UI framework Second iteration of toolchain New UI framework for PC/Mac Old Editor New features 58. Tools First version of toolchain Transfer to new UI framework Embedded old tools to new framework Transfer of old functionality 2 months 4 months Next Iterations New features on new framework Based on own UI framework Second iteration of toolchain New UI framework for PC/Mac 59. Dont be afraid to overhaul everything! Dont be afraid to overhaul everything! 60. Tools Tools delivery 61. Tools Tools delivery Launcher tool 62. Eliminate time wasters! Eliminate time wasters! 63. How do we overcome challenges? 64. How do we overcome challenges? Challenge Retrospective Idea / Solution Implementation Adaptation 65. Personalize your processes Right technical decisions matter! Dont be afraid to overhaul everything! Eliminate time wasters Constantly improve everything 66. Play your game every day! Personalize your processes Right technical decisions matter! Dont be afraid to overhaul everything! Eliminate time wasters Constantly improve everything 67. Links: Engine & Tools Source Code: https://github.com/dava/dava.framework Kanban & Scrum Making The Most Of Both http://www.agileinnovation.eu/wordpress/wp- content/uploads/2010/09/ KanbanAndScrum_MakingTheMostOfBoth.pdf Artemis Framework http://gamadu.com/artemis/ 68. Thanks to the team Andrew Karpiuk Stepan Drozd Dmitry Bobrovnichiy Alexey Alexeev Alexey Prosin Ivan Petrochenko Viktor Kleschenko Anna Kovalenok Volha Mamul Artem Sinitsky Special Thanks and everyone else who helped Blitz happen Alexey Goncharevich 69. Questions? [email protected] Email: Thank you!