Jump to content

Would it be possible to implement a new netcode system?


Netcode change.  

28 members have voted

  1. 1. Would you like to see a change in DST's netcode?

    • Yes.
      21
    • No.
      7


Recommended Posts

Title. I don't really know how the implementation of it works but I do think this game would benefit from rollback rather than delay-based netcode. I know that's a weird suggestion since that debate is usually reserved for fighting games but considering the importance of kiting and the use of attack frames I think it would very much improve the multiplayer experience.

For those unaware:
Delay-based netcode is the the system DST currently uses (with lag compensation off anyway) where when the player inputs a command there is a delay as the server waits to confirm that input before proceeding. (with prediction on the server is basically making an educated guess whenever you input a command)

Rollback netcode, however, is different. With rollback netcode the server treats each command you input as a local command (like playing offline) and is executed immediately via prediction. If the input is "correct" (matches with the server) then it plays smoothly, but if it is incorrect your input is "rolled back" to the correct state. This rollback can be adjusted to where it occurs in such a small amount of time that it is invisible to the player.

These explanations are very abridged down and if you'd like to research this topic more you can search "Rollback vs Delay-based" in google and you should get plenty of results.

I've also included the poll above to gauge interest.

Link to comment
Share on other sites

Sounds like it would make the game look smoother, so I am all for it especially since I hate Lag Compensation and think it sucks :D!

Though, I don't see such a huge change to the game being made possible it would probably require huge rework of the entire game probably. Though anything they can do to optimize the game or make it smoother would be good too to me (I am still waiting for the Waterlogged biome to get optimized, that place cuts down on 20 FPS so freaking LAGGY).

Link to comment
Share on other sites

  • Developer

As cool and awesome as this would be, rollback netcode requires the client to perfectly simulate the entire game the exact same as the server.

This can work quite fine for fighting games, as the simulated game itself is typically simple with only a couple parts that need stay in sync (the characters, maybe the stage, etc), but for DST not only is almost all the world data (entities, tiles, etc) server only, the bit of data that clients get is only a small area around it, this means that any randomness wouldn't be synced between the client and server(and randomness is used a LOT in DST), and you would have constant desynchronization, additionally a lot of players already can't host worlds and must join public worlds, rollback once again makes the client simulate the whole world, and would significantly reduce performance for a lot of people.

These are just the problems off the top of my head, I'm sure given time I could think of more reasons and infeasibility regarding rollback netcode, and to be clear these problems are solvable... If you built the game from the ground up with rollback netcode in mind, retrofitting rollback netcode into this game where it doesn't cause major problems would take an incredibly long time, and isn't somewhere we are interested in putting dev time. 

Link to comment
Share on other sites

4 minutes ago, zarklord_klei said:

As cool and awesome as this would be, rollback netcode requires the client to perfectly simulate the entire game the exact same as the server.

This can work quite fine for fighting games, as the simulated game itself is typically simple with only a couple parts that need stay in sync (the characters, maybe the stage, etc), but for DST not only is almost all the world data (entities, tiles, etc) server only, the bit of data that clients get is only a small area around it, this means that any randomness wouldn't be synced between the client and server(and randomness is used a LOT in DST), and you would have constant desynchronization, additionally a lot of players already can't host worlds and must join public worlds, rollback once again makes the client simulate the whole world, and would significantly reduce performance for a lot of people.

These are just the problems off the top of my head, I'm sure given time I could think of more reasons and infeasibility regarding rollback netcode, and to be clear these problems are solvable... If you built the game from the ground up with rollback netcode in mind, retrofitting rollback netcode into this game where it doesn't cause major problems would take an incredibly long time, and isn't somewhere we are interested in putting dev time. 

Thank you for the reply! I didn't want the post to sound like I was demanding such a big change or anything which i why i posed it as more of a question so I very much appreciate the clear and concise explanation.

Link to comment
Share on other sites

12 hours ago, zarklord_klei said:

this means that any randomness wouldn't be synced between the client and server(and randomness is used a LOT in DST), and you would have constant desynchronization, additionally a lot of players already can't host worlds and must join public worlds, rollback once again makes the client simulate the whole world, and would significantly reduce performance for a lot of people.

I'm not familiar with how DST is coded, but wouldn't there be a way to do seeded RNG? So that way if the server and client use the same seed, they would essentially come up with roughly the same outcome?

Link to comment
Share on other sites

4 hours ago, cybers2001 said:

I'm not familiar with how DST is coded, but wouldn't there be a way to do seeded RNG? So that way if the server and client use the same seed, they would essentially come up with roughly the same outcome?

You still need things to happen in the same order to get the same result.

Given the delay from server, there's hardly a guarantee of that.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.

×
  • Create New...