Cataldo "Aldo" Fanelli · Senior Gameplay EngineerThe most difficult technical hurdle is probably what we talked about earlier: the predictive model, and having it work with backend services whose model is very simplified. They don't know anything about zones at the moment, so they don't know that you could be in a certain zone that rotates because it's orbiting. So the game server has to do the math and the calculations, hopefully in an optimal way that consumes as little CPU as possible, and send this prediction of the trajectory to the backend services in a simplified but not too approximate way. So I do believe this was the biggest challenge we tackled in this implementation.
Mark Abent · Lead Gameplay ProgrammerThere's also the interdiction device itself. For this functionality to work with player interdiction, we had to have the backend be aware of all the interdiction devices that are active at a time. We didn't have the nice new API I was referring to earlier, where we could hook into that with the new services. So we still have the old, or I wouldn't call it old, but our current service that determines whether or not you're going to get interdicted. I think it was the probability volume service. And so we had to work with Tony to figure out how we could give the backend information about these interdiction spheres, along with those segmented interdiction points, to determine whether we actually have been interdicted. Aldo was mentioning those rotating zones: when the interdiction device is on, we have to relay to the backend that we have this bubble and it's at this location, but that location is in world space. So you have to worry about the frequency of these updates, because if you're orbiting and you're going this way and the dot's right here, it will rotate around, and maybe you don't get interdicted, but the backend says that you are. So then we have to take the information that we gave to the backend and go: okay, when we gave them the information, we were over here; when we got the information back, because there are delays sending and receiving, we're now here. Are we actually going to interdict, or is the interdiction point at a new location? So we use the backend service to give us a hint, and then on the game side we look at that and go: that's right, but we're actually going to be here; or, we're not going to get interdicted, but it looks like we are, so let's send another one to see if that hits the backend, because maybe it's on or off. So the problem is not just the device itself, but how to send where the interdiction is and where we're jumping to, and have everyone agree that we actually did do an interdiction.
Kirk Tome · Lead Systems DesignerI think the general issue we had to overcome was that we're dealing with quantum travel. Quantum travel is very fast, and with that speed come big distances. So being able to ensure that we're actually going to hit the mark and be accurate with the collision of the quantum snare volumes and these quantum travel paths, and ensuring that it will work every time, was the biggest hurdle we had to overcome.
Mark Abent · Lead Gameplay ProgrammerAsynchronous communication.
Cataldo "Aldo" Fanelli · Senior Gameplay EngineerAsynchronous communication.
Mark Abent · Lead Gameplay ProgrammerAnd we have acceleration getting higher and higher as we move along. One second into your jump, you could be a few thousand kilometers along, which is a lot. But a second later, you could be a few million, just because of our acceleration ramp. So a little small error can add up to a lot of error.