Networking Changes – 2.2.03

Senior Programme Howard Chalkey posted on the official forum regarding some changes to the networking coming in the 2.2.03 patch that Frontier are currently working on. You can read them here or below:

“We’re constantly trying to improve the underlying systems code in the game, as well as the gameplay, but sometimes it can be difficult to diagnose and fix problems when you can’t reproduce them in-house. In order to help understand the causes of instancing and connection problems, we have been working recently with the Fuel Rats, to collect network logs of any rescue attempts that didn’t go as smoothly as they should.

“Some of the issues we have seen from these reports have already been fixed in the live game, with hot-fixes to the servers. If you’re already in a wing with another player, and you’re trying to meet up, then you should be assigned to the same server when jumping into the system (even is one player is un USA and the other is in Europe.)

“We have a number of fixes to the networking code which we’re testing in this new beta, but in order to explain the changes I’ll first need to explain about ‘Turn’. When we’re trying to set up a connection between two player machines, it’s sometimes the case that due to the way the routers or firewalls are configured, it’s not possible to establish a direct connection. In this case, we follow an internet standard called TURN (rfc5766) to relay the packets from one player to the Turn server, then back to the other player.

Bug no 1: Prematurely Skipping to Turn

“Because of the timeouts and retries, it normally takes around 15 seconds to decide that a direct connection isn’t working, so we should switch to using Turn. Now we know that we’re never going to be able to set up a direct link between certain types of routers, and we’re exchanging info on the router type along with the connection addresses, so in those cases where we know we’re not going to succeed with a direct link, there’s an optimisation to go straight to Turn: however this wasn’t taking into account those cases where one of the players had set up manual port forwarding on his router (in which case a direct connection should be possible.)

“In the latest beta, if you have configured manual port forwarding, this info is also passed to the other player, so we don’t skip straight to Turn when a direct connection should be possible.

Bug no 2: Incorrect Letter Fragmentation

“The networking code exchanges packets from one machine to another; each packet contains one or more letters, but a packet cannot be more than 1500 bytes (maybe less, depending on the MTU.) One of the network logs from the FuelRats showed an error where a large letter (over 4k bytes) had been broken into smaller letters for transmission, but then one of those fragment letters was still too big to fit into the packet. This bug would eventually result is a p2p disconnection.

“What was happening was at the time the letter was being broken into fragments, it was using the theoretical maximum packet size for the connection; however when it came to put the second or subsequent fragments into a packet, the buffer size for the packet was actually smaller than expected (because it was communicating over Turn!) This bug is also fixed in the current beta.

“Bug no 3: Initialisation Race Condition

“One of the things we need to do at startup is to identify the type of router: this can sometimes take several seconds. In some cases, we were connecting to the server before this process was complete, and passing incomplete connection details to the server (in particular, this left out the Turn details) – these incomplete connection details would then be passed on to other players, and if a direct connection proved to be impossible, it would not then be able to fall back to using Turn. We have a fix for this in the pipeline for beta3.

Bug no 4: Handling Port Forwarding

“As mentioned above, some players set up a manual port forwarding rule on their router, so that (for example) any packets coming in on the router’s external port 5100 should be mapped to their PC’s local port 5100. They would then set port=”5100” in their appconfig.xml. However this port forwarding usually only applies for incoming packets: when the PC sends a packet out, the router may select a direct random external port to transmit from. This means that when our server receives the packet, it thinks that random port number is the one to reply to (which works, because the router can see it’s a reply), and it also uses it when telling other players about how to connect to the machine (which typically will not work).

“Back in summer 2015, we added another appconfig setting, eg. routerport=”5100” which means the game will tell the server that manual port forwarding is in use, and the server should reply to that port 5100. However this new setting was not adequately communicated to the players, and relatively few have set this option.

“In beta3, the game will assume that if you have set port=”5100” in your appconfig.xml, this means that you have set up port forwarding in your router, and the routerport option should no longer be necessary (unless you’re using a different port number, I can’t see why you would want to do that, but I’m not going to prohibit it)

“For most players using a domestic broadband router, manual port forwarding should not be necessary – if the router supports UPNP the game can tell the router what ports to use. In the current beta, only around 1.5% of the connections are from players with manual port forwarding.

“I’d like to thanks the Fuel rats (especially Cmdr Absolver, Cmdr Termite Altair and Cmdr Curbinbabies) for their help in investigating these problems, along with Cmdr Jan Solo for his log files with evidence of the race condition bug. We will continue to look into bug reports: if you think there’s a networking issue, please submit a support ticket, and supply network logs if possible, but I hope this fixes will make a noticeable improvement to network stability.”

Q&A – ‘Missions’ Live Stream

The current situation is that missions are an on going development and have had a couple of overhauls since their inception. The team are currently working on the current 2.2.03 Beta with some reward passes (to get the right pay outs) as well as some fixing certain outstanding issues. The following is a best attempt to transcribe most questions brought up in the live stream.

Q. When will players be able to share winged missions and how will it be rewarded?

A Shareable wing missions are something they want to do, but are not in the immediate roadmap and will not be  in 2.3. A lot of considerations have to be taken into account in about how they will work which in turn raises a lot of questions in multiplayer – which are much more difficult to solve.

Q. What’s the reason for the low number of missions given by a faction?

A. Currently in live version it’s mostly a technical problem. They share an allocation with normal missions. So if there were 40 missions total, they will be shared unequally between passenger missions and normal missions. In the current Beta, they’ve fixed a bug and introduced another bug, which lowers missions numbers but this has been fixed and there should be around 20 missions generated.

Q. Will engineers ever give you missions for rewards you need?

A. For now, no – they will not be able to give you missions because they are not factions. Maybe in the future it will be possible, but 4 engineers do have factions (Quent – Sirius) Those factions who are attached to engineers, could give missions on their behalf.

Q. Have you considered ED community to provide missions outlines?

A. Missions seem very simple, but they are actually more complicated. So giving them to community via a GUI would be a lot of work. They only have so much time and it’s difficult.

Q. Any plans for same system missions rather than having to jump to another?

A. This is currently possible as there is a 0 and 500 light year limit for their generation. However this means that missions are often not generated in the same system. A variant could be made but it would be complicated and would have to work for all variations.

Q. Every missions offers ++ mission increase, not + or +++.

A. This is a known issue. Currently being fixed by designers on internal builds and will be going out in near future.

Q. Missions filters?

A Missions are not generated per player. They are created for everyone who goes to that system for the next 15-60 minutes of time. It could be possible in the future where in theory you could have a filter, but it requires GUI work and it’s not currently a high priority.

Q. I dont seem to be making any enemies, only friends and allies from missions?

A. Failing a mission leads to making enemies. A mission reward pass is currently underway and a recent pass was made to make sure that in an assassination mission killing a pirate lord will give the pirate faction a negative effect.

Q. Passengers missions requiring luxury cabins are hard to come across. Any chance they could be made more common?

A. Yes, they can be and the feedback will be looked at. Problem is that making them too popular will generate too many and will then be given to players who are unable to take them if they have no cabin. This can be frustrating for the player.

Q. Do you feel removing rank locks from missions removed the feeling of progression from the game?

A. No, dont feel it did. Removed some brick walls in terms of missions offered.

Q. For multi stop passenger missions can we be paid for each leg?

A. A big difference with VIP passengers is thatg they get disgruntled if they dont make the complete trip. This is an important part of carrying them and as per real life ‘you’d probably do anything President Obama asked of you if he was in your taxi.’ This make them different to regular missions.

Q. Procedurally chain missions were removed, will they return?

A. These were courier missions. Feedback made them feel that they didnt realise they were providing the kind of experience they wanted. But it was partly a test bed to find out how missions could progress into different areas of the game.

Q. What is limiting factor in introducing new mission types?

A. If you take the example of generating a mission aftger scanning an object – A design would have to be made, be looked at, signed off. Then they’d have to create mission progression elements and then variable generators, then look at creating a new template. Then there’s the side panel, inbox messages, what happens when you abandon the mission – plus there’s testing and GUI time, plus whether they think it actually adds to the game and how it affects other teams schedules and fits into the overall schedule.

Q. Can be accept missions we dont have cargo space for?

A. The main reaspn they dont allow this is because the missions needs to know you can complete it and it doesnt look at every other ship you own in the game before generating the mission. More complicated missions with more variables lead to more edge cases which would create more errors and abandoned missions. These were actually removed some time ago, for just this reason.

Q. Elite only missions?

A. Adam under impressions that there were some in the game and it looks like it’s a bug that will be looked at.

Q. More missions after encountering NPC’s through the inbox?

A. These dont appear hugely often but more of these would generate a higher server load. However, a greater chance of getting these missions is to stay in one place for 15 minutes or longer. At this point a server request is made to generate one. Maybe in the future more will be generated depending on what you scoop – a black box for instance. These only ever happen in populated systems.

Q. Military missions?

A. Aware of desire for something along these lines and they dont have anything to announce soon, but it is being looked at as a possibility.

Q. Is it possible to have more variation for the ‘opposition to a mission’ in terms of the ships sent after you?

A Yes, technically possible but requires a lot of balancing. They could generate wing to come after you, or change the type of ship coming after you but no ETA and guarantees. The logic has to get more complicated based on rank and again more time is required to get it done.

Q. Will missions be added for 2.3 or 2.4?

A. Nothing to announce in terms of passenger missions for 2.3.

Q. Any chance of increasing variety of ways missions brances can change if items are scanned or salvaged?

A. This is always being looked at in terms of the missiosn template system. For example, Nav Beacon scanning.

Q. Missions to pick up crew once your ship is lost.

A. Possible, but a question that goes beyond the teams remit and into multicrew.

Q. Will there be missions that require top tier loadouts?

A That’s the challenge and it’s very difficult. A simple delivery mission has at least 6 variables which creates a lot of possibilities in terms of what can and can’t be generated for a player.

Q. For material missions rewards can you consider increasing their drop rates in missions?

A. This could be done and they will take on board the feedback, but those materials cost money in the form credits you’d get from the missions, which would then generate lower credit rewards.

Q. Can the timelimit for Colonia missions be increased?

A. This was a bug and missions will now only be generated in Colonia.

Q. On the fly missions are fun but rare.

A. Getting in space missions in the future could be coming in the future, but is likely to be a way off.

Q. More missions to give better reputation and influence?

A Yes, they will be looked at once the current credit pass has been looked at. Balancing passes take a long time due to the scale.

Q. Will Jaques station get missions soon?

A. Yes, it will be coming soon, but it needs testing first.

Q. Example of missions generation:

A. Two missions, go from one station, one to a close station one to Hutton Orbital creates a lot of differences due to the scale of the game.

Finally, Passenger missions additional destinations will be made optional for the player.