|Maxis spent "over 6 and a half months" rewriting SimCity for offline|
|Posted: 15.01.2014 12:37 by Simon Priest||Comments: 2|
Lead engineer Simon Fox at Maxis for SimCity's offline mode has posted a blog explaining why the initial remarks made by Lucy Bradshaw that such a feat 'wouldn't be possible' were somewhat true.
At the time it was made to sound like SimCity could never go offline, but it was clarified as 'not possible without significant engineering work'. SimCity was "written to rely on the servers."
Update 10 is currently in development and testing at Maxis which will let Mayors switch their cities from online to local, and it'll see a flood of mods tweaking how cities work.
In , Fox explains why it has taken so long to achieve an offline mode despite users having altered a few things themselves to prove the game actually does run without servers. The big sore point was that Maxis heavily insinuated that their servers did a lot of heavy lifting when it came to the simulation - this was proven false.
"The original creative vision for SimCity was to make a game where every action had an effect on other cities in your region. As such, we engineered the game to meet this vision, setting up the player’s PC (client) to communicate all of its information to the servers. That means that our entire architecture was written to support this, from the way that the simulation works to the way that you communicate across a region of cities," Simon Fox.
"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." Of course the irony being that even when online the cities weren't communicating properly at all which meant the whole 'multi city play' vision turned into a frustrating nightmare that persists today.
"My team did, however, see a path forward towards Offline, one that would maintain the integrity of the simulation. Lucy once said that Offline wouldn’t be possible “without a significant amount of engineering work”, and she’s right. By the time we’re finished we will have spent over 6 ½ months working to write and rewrite core parts of the game to get this to work. 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," continued the engineering lead.
"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 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."
Does this mean Mayors can actually see their city trades complete correctly and enjoy more up-to-date exchanges of workers, students etc.? It would also be nice if we could fix the problems ourselves of having Great Works bug out and either not show for certain cities or actually be the wrong one entirely.
"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."
Insert various 'multiplayer was optimised?!' comments here, at your pleasure.
They've been working on this offline feature since August and are now in the "final stages of testing before we release it as part of Update 10 in the future." This achieves one of the biggest desires by the SimCity community and it’s likely that we'll need to look to modders to deliver the other: bigger cities.
Check out the full by Simon Fox.