Gamasutra is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Gamasutra: The Art & Business of Making Gamesspacer
Forza Motorsport 3 And Predictable Development
View All     RSS
September 21, 2020
arrowPress Releases
September 21, 2020
Games Press
View All     RSS







If you enjoy reading this site, you might also want to check out these UBM Tech sites:


 

Forza Motorsport 3 And Predictable Development


October 26, 2010 Article Start Previous Page 3 of 4 Next
 

Always In Memory

How many times have you found yourself in the final stages of shipping your game only to have to harvest large amounts of memory from your code or your content -- and often from both?

Having already shipped Forza Motorsport 2 on the Xbox 360, we had a game that was running within the memory limits of our platform. As we started the implementation of our next version, we made a conscious decision to always keep our game within memory constraints throughout production. That meant that memory work would have to accompany any feature that required additional memory to implement.

Taking the usual approach of implementing the features is actually hiding memory reclamation work that must be completed prior to shipping the game.

Without accounting for that work, you stand a good chance of nullifying all the quality you achieved through earlier iteration by forcing late content and code changes to gain the required memory.

This is probably common sense, but having well-defined memory, CPU, GPU, IO and media budgets is a key to enabling iteration. With a slight increase in effort during the project planning phase, resource budget requirements can be estimated while features are being prioritized for incorporation into the final product.

By forcing the discipline of estimating the costs of resources along with the features you actually enable iteration through the scoping of features prior to even beginning the implementation phase. Additionally, early iteration is enabled and more valuable when artists and designers are iterating on content within defined and stable memory budgets.

Always a Stable Build

Like regressions and build breaks, a lack of build stability can be a great hindrance to iteration and predictable project planning. Unlike our pillar of always having a playable build, our pillar for always having a stable build focuses on the ability for the game to cycle in and out of race continuously for many hours.

Unfortunately, there are many threats to the stability of your game: malformed content, partial feature implementation, bugs in content build tools or bugs in your build process are among the top culprits.

When developing Forza Motorsport 3, we made early use of our "automated test monkeys" along with an MGS automated crash handling system to identify and eliminate sources of instability during our development process.

By having a regular review of the call stacks and game logs whenever a crash occurred on a bank of automated test machines, we were able to resolve instabilities that were introduced into the game usually within 48 hours. Additionally, by dedicating a significant number of development kits to running these automated tests, we were able to use the frequency of crashes to ensure that we were resolving the issues that most frequently caused game instability.

This allowed us to keep a multi-hour mean-time-to-failure throughout production and also allowed us to achieve our shipping mean-time-to-failure goals months before our ship date.

Additionally, with this investment in our automated test infrastructure we were able to gather valuable data as to our typical causes of instability and take preventative steps to eliminate the introduction of these instabilities. Significant contributors to instability are the introduction of partial or incompatible content, incompatibilities between tools and in-game code and features that are implemented without consideration for content production realities.

As we progressed in production of Forza Motorsport 3, we introduced scrubbers for pre-checkin and pre-build validation of content, content escrow locations along with automated content validation and promotion, and finally versioning support for all game-serialized data. These three investments significantly increased the daily stability of our game and thus improved the ability of all our teams to iterate on their content or features, and ultimately greatly increased the predictability of our schedule.


Article Start Previous Page 3 of 4 Next

Related Jobs

Visual Concepts
Visual Concepts — Agoura Hills, California, United States
[09.18.20]

Camera Designer
Remedy Entertainment
Remedy Entertainment — Espoo, Finland
[09.18.20]

Development Director
Remedy Entertainment
Remedy Entertainment — Espoo, Finland
[09.18.20]

Senior Development Manager (Xdev Team)
New Moon Production
New Moon Production — Hamburg, Germany
[09.16.20]

Product Manager (all genders)





Loading Comments

loader image