Bullet Hell Replication [Blueprint]

I am looking to figure out how to achieve proper client-side projectile replication/optimization for a bullet-hell style multiplayer game.

I have performance working quite well with “Dedicated Server” unchecked. This is what it looks like:

https://www.youtube.com/watch?v=CXMv9flvlpI

But with “Dedicated Server” checked ON, it ends up breaking apart super choppy:

https://youtu.be/KpD3VNmTb_g

From what I have researched I need to achieve proper client-side replication of projectiles and I am trying to understand the proper way to execute this through Blueprints.

My current understanding of what needs to be done:

1- Spawn the projectile on both server and client, making sure the location (origin) and direction (velocity) are replicated.

2- As the projectile travels it may NOT need to be replicated. I “believe” this means we can have movement replication off as the client will merely calculate the movement locally.

3- When the projectile triggers any event via a bounce, hit or overlap make sure those events are replicated and update the client.

So from here, and in my specific example of homing projectiles I am curious the proper way to optimize a high volume of projectiles for a multiplayer game. I’ve found this post in regards to the process, although it pertains to Unreal Tournament. There is an off chance my ability system I am building is a potential cause for the lag, I am currently running tests to narrow down if this is the case or not.

Related Post 1

1 Like

Turns out it was in fact my ability system and having replication trigger at run sections.

I did use the “Related Post 1” as a concept to achieve and only replicate at triggered events (spawning / collision). While I have not implemented ping offset/prediction everything appears to be working!