Remember how easy it seemed for Microsoft to flip the switch and make Xbox One no longer require internet connection? Apparently, Maxis didn't have that same switch for SimCity, which is currently undergoing a transformation from online-only to offline supported. Over on the SimCity blog, lead designer Simon Fox explained exactly what went into creating an offline mode and why it took so long for Maxis to deliver on the requested feature.
"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," Fox said. "Entire calculations had to be rewritten in order to make the game function correctly." In total, Fox figures Maxis spent over six months working on the offline mode. "Even things that seem trivial, like the way that cities are saved and loaded, had to be completely reworked in order to make this feature function correctly."
Here's his full explanation:
SimCity was written to rely on the servers. The game routinely pings the servers for critical pieces of data (region status, workers, trading etc.) and it relies on that information to keep the simulation moving. This meant rewriting the entire system, which previously existed in Java, and putting it into C++. We’ve had to knock out the internet pipe stuff. There’s lots of code that hits the servers looking for information. We’ve had to write a lot of code to produce that data locally, specifically for region information.
Our game routes pieces of data from one city to another as data flows through the regions. All of that code exists on the server, and now we’ve brought all of that down into the client. The client processes the region box, which is what all of the cities pushes their data into. We’ve brought that down into the client as well.
And now, all of the regional simulation needs to be done 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. 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.
And it’s not just adding, we had to remove parts of the game for it to function properly as well. This means removing lots of code integral to Multiplayer include code and UI supporting Trading, Social Features, Global Market, Leaderboards and Achievements. And, all without crippling the Multiplayer game.
SimCity offline play is currently in Alpha and is in the "final stages of testing" before being released as part of Update 10. The big question, however, is if SimCity's offline mode is arriving too late.