In the 10 months since SimCity’s release, a formula has been developed for effective protest against its always-online requirement. First, complainants point to the mod released shortly after the game itself that had the game working offline in truncated form. Then, they point to former Maxis VP Lucy Bradshaw’s assertion that an offline mode wouldn’t be possible “without a significant amount of engineering work”. Somewhere between those two points, they find evidence of malevolent intent.
The thing is, says Maxis lead engineer Simon Fox, “she’s right”. It’s taken a dedicated team six and a half months of rewriting “core parts of the game” to make single player SimCity make sense.
Fox and his team began work on an offline mode for SimCity in August – “as soon as practical after launch”. In an elucidative blog post, he explains that the game was originally designed so that “every action had an effect on other cities in your region”. As a consequence, its entire architecture was built around communication between the player’s PC and EA’s servers.
“So yes, while someone was able to remove the ‘time check’ shortly after launch, they were unable to perform key actions like communicating with other cities that they had created locally, or with the rest of their region(s), or even saving the current state of their cities,” said Fox.
“I wish it were as simple as flipping a switch and telling the game to communicate with a dummy client rather than our server, but it’s more than that. Entire calculations had to be rewritten in order to make the game function correctly.”
SimCity’s total reliance on its servers to keep its cogs going meant that Fox and team had to rewrite “the entire system”, translating the simulation from Java to C++. They’ve had to write code from scratch to produce region data locally.
“The algorithms governing trading between cities needed to be retuned in order to make the behavior between cities more responsive for this type of play,” explained Fox. “This in itself required major optimizations in order to run the simulation locally.
“We have an obligation to make the game fun and functional on all specs of machines. We wouldn’t want someone who was enjoying the Multiplayer game to find the Single Player game crippled due to poor optimization.”
Most parts of the game that once pinged the servers for help now do the same client-side. But some elements needed to be stripped out entirely – including code for trading, social features, leaderboards, achievements and the global market.
“All without crippling the Multiplayer game,” notes Fox.
But now the work is done. Maxis are in the final stages of testing, and will push out the single player mode in SimCity’s upcoming update 10. Whisper it – but have they corrected a critical mistake too late?