Originally posted by: simmaster07
I like the idea of a multiplayer SimCity. However, there may be some issues with the current implementation that could be otherwise prevented with an implementation I've been working on for a little while now.
No file locking. If two or more people are playing the same city at the same time, their saves will overwrite each other's.
Total destruction. Just because someone is told not to do something doesn't mean they won't do it. Trolls would love to overwrite every tile available with a blank tile or, better yet, corrupt it.
Corruption of savegames. What would happen if a game was corrupted during/after a save? That entire city will be gone and implayable.
No logs. Or at least, I don't believe Dropbox offers them.
Synchronization?
A better implementation would involve the use of a SimCity-loadable DLL, a tracking process, and a database server for logging and session tracking. Basically, here's how the sequence of a game would go:
Have a UserDir for the game files with the DLL in it.
The DLL launches the tracking process.
The tracking process logs into the database server with a username and password the user is given.
The tracking process asks the server if they are banned. If not:
The tracking process asks the server if there are any open slots. If there are:
Download any added plugins and remove excessive plugins the user added to their userdir.
The open slots are listed and the user selects a slot to take.
The game will load. The user can save any city at any time, though their session will only last 15 minutes (unless nobody else is waiting) and the program will only send changes made to their assigned city.
Two minutes left. Alert the user if someone's waiting.
15 minutes expire/player leaves. Did the population grow?
No. Discard all changes and alert the user.
Yes. Send all changes to the server.
Is someone waiting?
No. Continue on.
Yes. Kill the process, regardless if they saved or not.
I just need some C++ to unpack and parse the packed savegames, which I could ask wouanagaine for in the form of some Python and convert it myself. But anyways, this is an excellent idea nevertheless, and the current implementation seems to be doing fine. I hope I don't sound like a smartass quote>
nice man, hope u can finish it up, is there an ETA for this?