Managing Engine Updates in C/C++ Games Development
By - Chris Chedgey
Originally posted on the Structure101 Blog.
Games are generally developed on an engine library that is developed by a separate team, on a different lifecycle. Upgrading to a newer version of the engine during game development can be a pressure point – there may be improvements that the game team want to make use of, but what will be the impact and effort for the upgrade, and when should this be tackled relative to the game release schedule?
Game developers are making use of a new Structure101 dependency database to manage engine usage and updates in a more informed and predictable way. I thought it would be interesting to outline the kinds of information they’re getting from the database so far, and how that information is helping them with engine upgrades…
Having this kind of information at their fingertips has taken some of the work (and most of the guesswork) out of engine updates for our games development customers.
The Structure101 C/C++ parser
The key to providing complete and accurate answers to the above questions is accurate data about the dependencies that span the game and engine code. The dependency database is published from a high-fidelity C/C++ parser which:
This parser has been developed in-house to catch the most detailed dependencies that span pre-compiler, compiler, and linker phases.
Recommended by LinkedIn
TL;DR
Queryable, high-fidelity dependency data for successive builds of games and engine is helping games teams do more informed, predictable and timely engine updates.
Chris Chedgey is a co-founder of Structure101, and has 30 years experience in commercial software development, notably on large military and aerospace projects in Canada, including 5 years on the International Space Station (ISS).
He is a strong advocate for the importance of good software structure, and has spoken at many user groups and conferences including JFall, WICSA, Oredev, JavaOne, Houston Techfest, JAX, Javaland, 33rd Degree, JFocus, JAX Finance and Devoxx.