This is How Maxis Is Taking SimCity Offline
The ever-notable SimCity caused quite a ruckus last year by carrying a persistent online requirement, with the connection not even working for a while after it launched. These days it is functional, and will soon be moreso as an offline mode will finally be implemented with Update 10 whenever that drops.
A team at Maxis has been working on this update since August, and as Lucy Brradshaw suggested way back when it’s more complicated than simply modifying a line of text in an .ini file. Lead engineer Simon Fox explained what’s up in a blog post today, and here are the parts that are most relevant to the topic:
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.
So that’s that. Other changes of note, however, include modding an offline game, though that comes with painful caveats.