Back to search

How do you [John Pritchett] see IFCS as currently implemented in-game and where do you want it to go in the future?

TL;DRIFCS became unstable because optimizations moved it out of sync with the physics tick, so Pritchett split it into control logic and per-step physics, which works well, though ESP still needs fixing and PTU combat is bad.

John PritchettPhysics Programmer

Okay, well, if you've flown the ships in 3.0, you know that IFCS basically has been drunk for a while. It's really unstable. A lot of the changes in the engine, optimizations and things, hit it pretty hard, and it just wasn't something we could do a quick fix on. So it wasn't until after 3.0 that I could really take the time and dig in and fix these things right.

So the main thing I had to do... One of the optimizations we did was moving a lot of things off the main thread, or in my case, the physics thread. It was a big blocker on the physics thread to do all the processing for IFCS. So we moved basically the entire IFCS off the physics thread into a lazy batch update, which depending on load will get called more or less frequently. And unfortunately that puts IFCS out of sync with the physics simulation. The physics tick could run two or three times before IFCS gets an update. And you just can't have a stable simulation that way.

So basically my solution to that is I had to go in and separate IFCS into two parts. One is the control system logic, which is really where all the load is. And the other is strictly the physics simulation part, where the control logic says this is what I want the ship to do, based on player input and all these things. And it can update that state as quickly as we can get it. But then the actual physics processing, generating the accelerations and everything, that's working every physics step in order to achieve whatever the requested goal is from IFCS. And so that can remain as smooth and stable as possible. So yeah, I've done that at this point, and that's working very well. I'm still working on trying to get ESP to work properly with the new system. That's why in the PTU right now, combat is terrible. So hopefully I'll get that cleaned up here pretty quickly.

Calling All Devs›Everything Flight Control and More·
Published on this date.7 May 2018