Monday's announcement that EA's revamped SimCity would soon be playable offline was a long time coming, arriving nearly ten months after the game was first released (and three months after the company said it was "exploring the possibility" of an offline mode). EA and Maxis have long claimed that moving SimCity offline would take a "significant amount of engineering work," and now we're finding out just how much, thanks to an engineer who's been working on the offline conversion since August.

Writing on the official SimCity blog, lead single-player engineer Simon Fox notes that adding an offline mode to SimCity isn't as simple as just flipping a switch and adding a local dummy server. The original game relies on frequent server pings for regional status information that is crucial to "keep the simulation moving." While Fox acknowledges that hackers managed to route around that server check months ago, doing so also disabled key functions like communication between cities created locally and even game saving and loading.

Writing around this server integration meant porting the entire system from Java to C++, Fox said, and moving a lot of code that lived on servers to work entirely on local clients instead. "Entire calculations had to be rewritten in order to make the game function correctly," Fox said. "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."

Doing all this without crippling the online version of the game will take six-and-a-half months of coding work when all is said and done, according to Fox, which would place the release of the offline mode in "Update 10" somewhere around March or April by our math. Kind of makes you wonder how much pain and aggravation could have been avoided if EA designed the game for offline play from the get-go.