At Bungie, we built games based on the Halo engine for ten years. However, by 2008 it was beginning to show its age and there were many core systems that were ill-suited to a modern game development environment. For our new game, Destiny, we sought to develop an engine that would last us just as long as the Halo engine had. This talk will cover the six-year development arc of the Destiny engine, from inception to ship. We will cover various lessons learned during the course of Destiny engine development, including techniques for large-scale engine refactoring, educating a team of engineers about intentions behind system architecture, how to test assumptions early, and topics in applied system architecture such as data lifetime management, object system design and source code layering. Each lesson will be illustrated by development history and system designs drawn from the Destiny engine.