I had a ton of problems replicating projectiles smoothly & accurately in my multiplayer game and seemed to have resolved it pretty decently by:
A replicated projectile is spawned on server only (not multicast)
Projectile is set to NOT replicate movement
My projectile simulates physics, so on the client, I have turned OFF physics simulation so it only simulates on the servers. This makes the client version of the projectile only a “visual” copy with no physics movements of its own
Have a replicated variable on the projectile that stores the projectiles vector location every tick on the “Authority” then calls a Multicast event to the client; the clients take that replicated variable and their client projectiles “actor location” and sets the new actor location using “VInterp To”
From the limited testing I performed locally and over the internet, everything seemed to be in sync pretty accurately. This solution may not help with your style of projectile, but when I tried multicasting the projectile spawn, I was never able to reliably have them in sync. I only multicasted explosions when the projectile hit something on the server.
Thanks, im gonna try this tomorow. Only thing i want to ask, im bit afraid of using tick event in projectiles because of performance… is it ok to have 200 projectiles with tick event at same time?
I cant believe how hard is this networking in easy stuff as projectiles… epic really should do more advanced tutorials for networking.