Projectile replication and networking discuss

There are literally 3+ projectiles fired in the above posted code. Yours, The servers and then a copy on each Sim of your character. Projectiles aren’t being replicated which is expensive.

Projectile Movement Component (PMC) is actually too heavy (bloated) for this. Mover 2.0 would be even more so. Bare bones C++ Interpolation w/sub stepping and collision sweeping would be the best route. Yet still each simulation would handle the movement on its own.

BUT there are never 3+ flying in a single simulation because none of the projectiles are replicated. All 3 (Client, Server, Sim) projectile classes are set to NOT Replicate.

Client determines its own trajectory for the shot and fires. Then send an rpc for the server to shoot.

Server determines its own trajectory for the shot and fires. Then calls a multicast that passes its velocity or speed and rotation, muzzle location to simulated proxies on other clients.

Sim firing is essentially the following.
The server Sends the Bullet Config data in the multicast.

Without object pooling it would use a spawn actor node.

Spawning and destroying actors is expensive. Especially so if done often and at a high rate. Hence pooling and reusing the projectiles.