We are putting together a project and are planning to use Mover as a replacement to the Character Movement Component.
I see that the Mover plugin has NetworkPrediction as a dependency in the plugin.
Since we are creating a single player game, is there a way, or will there be a way, to remove the need from NetworkPrediction or anything else network related?
Right now in our test map there are 2 actors that are created
GameNetworkManager, and NetworkPredictionReplicatedManager
Trying to see if it’s possible to remove this so we can eek out every little bit of performance.
There isn’t an easy-to-use option for fully stripping Network Prediction out, but it’s straightforward to opt out of using it:
Each MoverComponent specifies a ‘BackendClass’ property. The default in our MoverExamples pawns is the Network Prediction one.
For single-player games, you can switch them to the “Standalone” one and they should behave the same, but it uses regular world tick functions instead of relying on anything from Network Prediction.
At this point, Network Prediction will not be in use or affecting performance. There may be a subsystem object sticking around that creates the NetworkPredictionReplicatedManager, but it won’t be doing anything.
To remove the Network Prediction plugin altogether, you’d need to modify the .uplugin and .Build.cs files that declare the plugin & module dependencies. There are a couple of Mover source files you’ll want to remove or ifdef out to start compiling again: MoverNetworkPredictionLiaison.h / cpp.
I’ll add a task to provide some kind of option so none of the NPP dependencies have to be pulled in.