Shared October 9, 2017
Building Better Worlds: Developing a Procedural City Tool for Alien: Covenant
Presentation Slides, PDFs, Source Code and other presenter materials are available at: https://github.com/CppCon/CppCon2017
When MPC was asked to create a massive CG city for the film Alien: Covenant, they looked to leverage procedural generation as a means for iterating on the overall shape and structure of the city, in place of a prohibitively large team of environment artists. After evaluating all the practical third party options, it was ultimately decided that the best option was to build a custom tool to procedurally assist artists' city-building skills. This allowed for rapid iteration on the overall look of the city by striking a balance between manual and procedural techniques.
The core algorithms were written in C++ for speed. The user interface was written in Python to accommodate quick feature changes, and a dash of Fabric Engine's KL helped with model import and rendering. This multi-language approach allowed the consistent application of the "best tool for the job" rule, which is a common pattern at MPC, allowing flexible teams with experts in a variety of skillsets.
This talk will detail the history and development of MPC's city building tool, "Machi". Alan Bucior, Lead Developer of Machi, reviews the algorithms for city layout and building placement, discusses how to implement algorithms in an artist-driven manner, and shares various insights gleaned through the development process and discussion with stakeholders.
Alan Bucior: Lead Software Developer, MPC Film
Alan Bucior is a lead software developer at MPC, with over 20 years of experience developing software in the entertainment industry.
Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
CppCon 2017: Carl Cook “When a Microsecond Is an Eternity: High Performance Trading Systems in C++”
20 Years of Product Management in 25 Minutes by Dave Wascha
CppCon 2018: Matt Godbolt “The Bits Between the Bits: How We Get to main()”
7 principles for building better cities | Peter Calthorpe
Tesla Solid State Battery? Tesla Battery Investor Day Preparation
CppCon 2017: Allan Deutsch “Esoteric Data Structures and Where to Find Them”
Physics Professor watches "the goop lab" - Sixty Symbols
CppCon 2017: Fedor Pikus “C++ atomics, from basic to advanced. What do they really do?”
Procedural Programming: It's Back? It Never Went Away
Building Footprint Recognition for Procedural Generation
How To Think Like A Programmer
CppCon 2017: Nicolas Guillemot “Design Patterns for Low-Level Real-Time Rendering”
CppCon 2016: Marshall Clow “STL Algorithms - why you should use them, and how to write your own"
CppCon 2017: Guy Somberg “Game Audio Programming in C++”
CppCon 2017: Louis Brandy “Curiously Recurring C++ Bugs at Facebook”
Introduction to Microservices, Docker, and Kubernetes