BetterReplication | Vastly improve your combat experience by fighting LAG!

As far as I can tell, this method removes the standard additional 0.1s interpolation between positions, so the gain is a maximum of 0.1s. You also showed some results, but I don’t think they’re a good representation, as a simulation inside of Roblox Studio is far different from a real game with players that have a far more unreliable connection. There’ll be many more visual glitches than normal, so I doubt that this module is worth implementing, unless I see evidence that proves otherwise.

P.S. I don’t see a link to the GitHub repository.

1 Like

The user above me explained it all.

is this for replicating player movement or things for the game like effects and skills?

This for some reason completely breaks any type of R6 Ragdoll system I try to create

Yep, I have had these reports coming from multiple people. Which is interesting as my own R6 ragdoll system does not break (even though I use the same source code as the others). Will have to do a deeper dive once I find the time for it

Yo whatsup, ive got an question on how u should use this and other, for example when i plug it in, does the cframe of the player update the same for everyone, so basiclly if i cast a skill that requires the cframe will the cframe be the same for everyone or i should somehow require the modules data to get the synced cframe?.
Ty in advance!

Hi there, with BetterReplication it will automatically synchronize to the other clients as well!

1 Like

Hi yall! I just released a massive update for BetterReplication that makes it a production ready framework to implement in your games! Enjoy <3
Thanks a ton to all the people who contributed past 2 months as this has been a difficult ride!

1 Like

A Github page link has been added! GitHub - PogoDigitalism/BetterReplication: Vastly improve your combat experience by fighting LAG!

Hey, is there any ETA on that article for ragdoll support?
I love the idea of a simple drag & drop networking overhaul but as some other people mentioned player ragdolls just don’t seem to work right.

1 Like

Hi. I am currrently in my exam week. Until wednesday/thursday I will not be able to release an article on this.

2 Likes

Are there any specific reasons I should use this over Ax1sAng1e’s p2p replication? Is it optimized better or something?

Using the pull ragdoll just drags the torso first and makes the body snap to it afterward.

Also, can you upload this to the Creator Marketplace?

(FYI, it still says it’s still V4 in the README and the test place has an incorrectly named script causing it to break)

1 Like

Hi, thank you for the heads up first of all! I’ll get it fixed asap!! :heart:

To answer your first question;

  1. Ax1sAng1e’s replication does not feature any networking optimisation or position update optimisation, this will eat up your bandwidth and cause problems for poor network users.
  2. BetterReplication has customizable optimization settings such as proximity based replication (this can save you lots of bandwidth overhead if configured with a nice balance between game experience and network usage)
  3. Ax1sAng1e’s replication forces Humanoids in Physics statetype; which actually causes inconsistent replication behavior (even though he states it removes this jank)
  4. Ax1sAng1e’s implementation really serves as a base for BetterReplication. Better practice has been implemented, inconsistencies have been fixed, networking has been majorly optimized and BetterReplication is ready for production (due to its interpolation buffer)

To elaborate a bit more on 4; this interpolation buffer essentially makes sure that any packet loss that happens will be smoothed out properly, this does not happen on Ax1sAng1e (and BetterReplication suffered from this early in development as well)!

Regarding the ragdoll pull; I have yet to write an article on this (yet I unfortunately havent had time to write an extensive one on it as computer science is taking a TON of my time and I do not wish to rush such an important article)

1 Like

In the back of my head, I have always wondered how these fighting games could make it feel so seamless. Glad I came across this post, especially now that I am making a combat game as well!

2 Likes

Is there a specific reason you use RunService.PreSimulation over RunService.Heartbeat?

Also, you should probably use Native Code Generation on the server if you aren’t already.

It’s just a more accurate name for Stepped. Heartbeat runs after the physics simulation anyways, so they aren’t the same thing.

Yes, wouldn’t you want to send the character’s position AFTER physics have simulated?

I’d have to look into the code for it, but is the PreSimulation for replicating or interpolation?

If it was interpolation then that makes sense because you’d want to interpolate before collisions ran, if not, then I’m not sure.

1 Like

I’m tired so I can’t really read through code right now, but if it IS sending player positions I’d rather use Heartbeat instead.

Well in this case it’d be PostSimulation for consistency

1 Like