S
Shizuku
Guest
(If you already know what GGPO and P2P Rollback Netcode are, skip to the last paragraph.)
I'm currently in the process of creating a fighting game and have a few questions to see if GMS2 is a good fit for this project. In fighting games, having low latency online is crucial to whether or not a game survives, King of Fighters XIV being a huge example of this.
When working with Peer to Peer (P2P) netcode, developers usually take one of two routes; either they use delay-based netcode or rollback netcode. Delay-based netcode is straightforward as the game just delays when your inputs are read or pauses to re-sync both players. However, if there's a poor connection between both players due to long distance connections or slow connections, this causes a lot of input delay and pausing.
On the other hand, rollback netcode design works around this problem by setting a consistent input delay between both players before the fight starts, utilizing save states. This way, it predicts inputs ahead of time, and reverts to the last correct save state if it's incorrect using the input delay as a buffer to reduce rollback amounts.
For more information about these designs, read here:
https://en.wikipedia.org/wiki/Saved_game#Save_states
https://en.wikipedia.org/wiki/GGPO#Design
http://gamasutra.com/view/news/3405...g_Game_Fan_Solved_Internet_Latency_Issues.php
So my main question is: would GMS2 be able to offer me the ability to utilize save states for this rollback design? If so, how would I go about doing so?
I'm currently in the process of creating a fighting game and have a few questions to see if GMS2 is a good fit for this project. In fighting games, having low latency online is crucial to whether or not a game survives, King of Fighters XIV being a huge example of this.
When working with Peer to Peer (P2P) netcode, developers usually take one of two routes; either they use delay-based netcode or rollback netcode. Delay-based netcode is straightforward as the game just delays when your inputs are read or pauses to re-sync both players. However, if there's a poor connection between both players due to long distance connections or slow connections, this causes a lot of input delay and pausing.
On the other hand, rollback netcode design works around this problem by setting a consistent input delay between both players before the fight starts, utilizing save states. This way, it predicts inputs ahead of time, and reverts to the last correct save state if it's incorrect using the input delay as a buffer to reduce rollback amounts.
For more information about these designs, read here:
https://en.wikipedia.org/wiki/Saved_game#Save_states
https://en.wikipedia.org/wiki/GGPO#Design
http://gamasutra.com/view/news/3405...g_Game_Fan_Solved_Internet_Latency_Issues.php
So my main question is: would GMS2 be able to offer me the ability to utilize save states for this rollback design? If so, how would I go about doing so?