This week starts the official development of the multiplayer systems. I have actually been spending a great deal of time researching different networking setups to determine what would be best for handling the gameplay we have now vs. the full gameplay that we are planning for. That research has lead me to this decision.
All the multiplayer will be handled by player run dedicated servers. Single player games will be run as a 1 player multiplayer games with a dedicated server instance running in the background. This allows all the code to be much more compact and not have to support 2 branches. With this option, it also opens the door for drop-in co-op as well, since single player is already setup to handle other players.
For right now, you will be able to just host games (which will just spawn an instance of the server on your local machine) and play with a group of people. This will act similar to a standard Host->Client system. Once I have the persistence in the world working, you will need to have the server running all the time, just like a normal dedicated server.
I am really going to work as hard as I can to allow the maximum number of players to be able to play at once, and not have to have massive servers. Right now I don’t have any hard numbers on what that will be though.
As always, leave a comment or stop by the forums to tell me what you think of the direction I am heading.