
Hey there! LeftofNever, Robocraft's Community Manager here with the latest Dev Jam and a pretty darn important Dev Jam it is too as it's all about the long-awaited reconnect feature that's been 'soon™' for such a long time. We wanted to use this Dev Jam to give you an insight into how reconnect is going to work, what we're doing to reduce disconnections and also why it's taken so long to implement.
Why players disconnect
First off, why do players disconnect from Robocraft? It's all about the data… As you know, Robocraft is an online multiplayer battle brawler with Robots made from blocks and parts. Robocraft sends a lot of data back and forth between our servers and you whenever you play. The Robots you build are stored on our servers and delivered to you (the clients) when you play games, get Robots from the CRF (Community Robot Factory), or edit them. Each block is data, every colour is data, where each block is placed and what cube is next to it is data and how much damage each block and part has taken is data. There's also other data being sent back and forth such as all the social side (chat, avatars) and most importantly in battle where your position, your teammates position, your enemies position and all the cube data contained on all the robots needs to be sent back and forth continually to ensure a great end-user experience. This data needs to remain in-sync with the servers and all the game clients in the battle and when a game client can't send/receive data to ensure a smooth game, then a disconnection can happen.

Disconnections don't happen to everyone; some players never disconnect, some only occasionally, and some almost all the time. A player who never disconnects can still be affected by a disconnect as it can mean a battle being lost. Robocraft needs a constant internet connection to play; if you've got spotty wifi or you're playing using your mobile phone's 4G signal for example, then you may experience disconnections. Your location in the world or distance from our servers can also contribute to disconnections as data needs to travel back and forth at high speeds between everyone in battle. Also, we need to ensure our netcode (a blanket term used to describe networking in online games) is water-tight and working as well as it can be.
Reconnecting players
So, what are we doing about getting players back into battle if they disconnect? We promised some time ago that we'd add a reconnect button into the game and that's what we're doing. If a player gets disconnected in battle, they'll be given the option to reconnect or leave the battle.

Leaving the battle or failing to select an option before the battle ends will result in an early leaver penalty. If you attempt to reconnect to a battle that has ended, you will see a different pop-up. If you fail to rejoin a battle before it has ended then you will not receive any rewards associated with the battle.

One of the most asked questions regarding reconnect is "Why has it taken so long? Surely you can just add a button?" Unfortunately it isn't as simple as adding a button and writing a bit of code that added players back into their last game. Reconnect has required an almost complete rewrite of the existing networking/battle code and you need the right type of coder for the job. They're a bit like chefs in a way; you wouldn't put a pastry chef in charge of the meat course. Add to that unforeseen issues and bugs along the way and development time gets longer and longer. But the end is in sight; reconnect is nearly here.
Reducing player disconnects
Putting reconnect into Robocraft isn't the end of the story; we're also working on making improvements to the game's netcode to reduce the number of disconnects players experience. Ed on the
Robocraft Royale team and Alex on the
Robocraft Infinity team have been investigating and testing some new network code for their games and if the test results are positive, we'll be adding it to Robocraft. Our goal is to implement the new network code prior to adding reconnect.
When is reconnect coming?
Soon™ ;) … very soon. We're in the final testing phase and once all the bugs associated with reconnect have been squished and the new network code applied (if the initial tests are positive), we'll get reconnect out to you.
Thanks for reading! As usual, we welcome your feedback.
[ 2018-02-08 11:50:55 CET ] [ Original post ]