In today’s blog update we’re going to talk a bit about multiplayer. It’s proven to be a very popular topic in our community, which is not surprising given that pretty much nothing beats giving your peers a proper beating in an old-fashioned, no holds barred derby match. We love that, and so do you! Needless to say, we’re going to pay a lot of attention to the multiplayer component of the game to make sure it’s something that everyone can get in and enjoy.
After our Upgrading upgraded blog post, there has been a lot of lively discussion on the forums on whether upgrades should be allowed in multiplayer. There are a lot of good arguments for and against upgrades in multiplayer, but the problem can be solved simply by giving the host the option to configure this. Everybody wins, right? That’s also in line with our goal of making hosted multiplayer events as customizable as possible.
The options between “No Upgrades” and “Whatever Goes” are not set in stone yet – some of the more obvious ideas mentioned are power cap and price cap, and they would both probably work fine. Single player career’s car classification system could also form a basis for this, but we’re also still testing on what works there.
During the summer and fall, we’ve been implementing a new lobby system. You’ll have a lobby browser and filters for finding the game you like, or you can of course create your own. Lobby and in-game (and loading screen too, cool!) text chat is already implemented, and a possibility of implementing a voice chat is being investigated. Don’t worry, if voice does get included, there will be an option to toggle it so you don’t have to fear hearing who did what with your mother last night. But then again, I’m just speculating since our community knows how to behave, doesn’t it?
Our core networking is based on peer-to-peer (P2P) architecture, which means every player connects to each other. This does incur its challenges since a lot of connections are needed, but we have a system in place where a third player can act as a relay if a direct connection cannot be established between two players.
During play, the game engines on each player’s computers are then run in sync, although there is of course some prediction and interpolation going on in regards to where the player is going, what is happening next and so on. This is done to make the movement fluid during the times when information is not available due to network latency. If some player starts going out of sync with the rest (e.g. due to horrendous lag or cheating), an internal voting mechanism between the computers handles disconnecting the offender.
One advantage that the P2P architecture has is that apart from the lobby server which announces the available games, there’s no need for dedicated servers. Note that this doesn’t rule out kicking for example, and one of the computers is still going to act as a host. However, since the host is mostly just a title given to someone and doesn’t involve much extra processing under the hood, it’s rather easy to seamlessly migrate to a new one if the original host gets disconnected for a reason or another.
Since the current server browser and lobby screens are currently full of programmer art, you’ll get this multiplayer flower (see the resemblance?) instead:
To save you the trouble, you can count 12 cars in that picture. We know some of you are hoping for more, and we’re definitely going to see what can be done. Sadly we can’t promise anything definite because there are many factors to be considered, and it’s not simply a matter of increasing a number somewhere in the code.
So, what next? At this point our top priorities regarding multiplayer are polishing the core in-race functionality as well as the lobby system. As such, we haven’t yet thought too much about different game modes, but they’ve not been forgotten. There have been a lot of wonderful suggestions in the forums, and we’ll take a closer look at all the ideas when we have the basics in place. Please do keep the suggestions coming in; your input is very important to us so that we can develop a game you want. And if later on something turns out to not work as well as we imagined, at least you get to say I told you!
Furthermore, we don’t yet know where the lobby server is going to be in the end. Steam would be an attractive option as it’s a robust, tried and tested system. But then again, that would obviously mean having Steam mandatory.
Tapio Vierros, programmer