pcars is still 1 year away from the release but maybe this helps a bit.
for more informations you can look at the multiplayer thread on wmd
this post is from Stepan Vondrak (sms staff)
Multiplayer progress update
Hi guys,
I would just like to make a quick post about Multiplayer progress. I am starting a new thread for this because this has been asked many times in several different threads, as well as in PMs.
To answer the most common question - when will we release the first MP-enabled build?
We still have no specific estimate for this, so for now you will have to live with "as soon as it's ready".
Now for more specific information. As you have probably noticed from the daily code changes thread (if you follow it), I have been working on the Dedicated Server since MP work has been started. The first usable server version is nearly complete and ready for testing. So far the DS supports these features:
- Clients can connect to the server. DS authenticates each connecting client with MS (our Master Server, where authentication/stats/leaderboards are handled), so only users logged into the game can connect to DS.
- Connected users can browse running game sessions, create new sessions, join and leave existing sessions.
- DS registers itself to MS on startup and then sends basic information about number of connected users and running sessions to MS. This information can be downloaded by the game, allowing it to display all running DS and how busy they are.
- Sessions members with admin privileges can change session attributes (game mode, track, ...), advance game session state (start race, end race) and kick other session members.
- Each game session has a separate rebroadcaster instance that resends all game packets received by DS to other members of the session (either all or selected subset).
- The server informs session members about connection details of all other members, allowing direct peer-to-peer connection. We have not implemented any complicated NAT punching yet, so only players on the same LAN, with public address, users who manually port-forward the game's ports on their router and users behind least restrictive NATs will be able to connect to each other. This will improve over time.
- The server also collects various statistics and has a simple web-based interface to view the statistics and control the server. This is how the status screen looks on my recently launched local testing DS:
Of course there is still a lot of work to do on the server ; for example there are no user whitelists or blacklists, no support for matchmaking, user ranking, leagues, social nonsense and other features. But what we have now is good enough for good old-fashioned multiplayer racing - find a nice game, join it and play.
Now what's my plan for the near future:
I will still spend one or two days working on the web interface, adding the ability to view detailed stats of individual sessions and all users connected to DS, sorted by various criteria (id, connect time, session they are in). Later this will connect to interface that will allow server admins to ban users, kill sessions, send messages to all members of a session, schedule server shutdown, and so on.
Then I will start working on the game-side of things. As you probably noticed, we have not done much work in that regard yet. We already have a pretty solid multiplayer gameplay core code from our previous racing games, with vehicle predictions and all that fun stuff. What needs to be done is connecting the game to DS and implementing game-side for all the features it supports so far. I will start with implementing the low-level TCP-based protocol the game will use to communicate with DS. Implementing individual commands the server supports and connecting them to the user interface will follow afterwards. When all this is done we will have DS browser in the game: select DS first, connect to the DS, display all running lobbies and races, create new games or connect to lobbies, etc.
Then we will have to finish the low-lavel game protocol, send game packets through the rebroadcaster while trying to establish peer-to-peer mesh for optional direct communication. And once that's done, we will have the first MP-enabled build! Hopefully more coders will be finally able to join me on these tasks, speeding up the process significantly
Hoped this answered some of your questions. Feel free to ask more in this thread. But be aware that we are not yet ready to discuss any details about more advanced features such as rankings, leagues, special multiplayer game modes, social features and so on. The focus is on being able to join a multiplayer quick race and have some fun first, the rest will be added on top of it afterwards.