3 ms·
Note that having rollback in mind from the very beginning can also impact how a fighting game is designed. The happy path of rollback involves "hiding" network
by kibwen 4y ago
Note that having rollback in mind from the very beginning can also impact how a fighting game is designed. The happy path of rollback involves "hiding" network jitter in the startup animations of various moves. But startup animations exist for a reason, to telegraph intent to an opponent and give them a chance to react. For moves with very little startup animation, a rollback correction can update the state of the game to several frames into the hit itself, making many moves unreactable! This feels about as bad as being shot despite ducking behind a wall in an FPS (with basically the same cause). The "solution" is to have a policy whereby you design the game such that you increase the amount of startup animation across the board, to smooth out these wrinkles. In the worst case, this is even used to justify massive built-in input delay on every input! This optimizes the game for being played online, at the expense of being played in-person. The irony being that, while the vast majority of play will happen online, all the most prestigious events (funded by the developers themselves to advertise their game as an e-sport) are in-person.
- haolez 4y agoWell, if the ping is high, a fighting game will get extremely deteriorated regardless. It must work really well for low ping scenarios.
- FoomFries 4y agoMany people cannot react to several frames, it is usually a predictive choice instead of a reaction. A great example of this is the Millie Blocker written in flash some time ago. It tests the reaction time of a move with a startup of several frames, and as it turns out is not so easy to react to without predicting. http://www.teyah.net/MilliaBlocker_v0.3.swf http://www.teyah.net/MilliaBlocker_v0.3.swf
- kibwen 4y agoRegardless of where we draw the line of reactability, with a sufficient number of rollback frames, a move that was on the reactable side will shift to the unreactable side.
- Blackthorn 4y agoI'm having a difficult time rationalizing this with how the original rollback netcode, GGPO, was developed for games that didn't even have online play at all like ST. Did those old games just have uniquely reasonable windup animations? I mean, I'm sure at the same time you end up with things like the meme Shiki Nanaya win screen[1] but a bad connection is a bad connection will ultimately be a bad connection no matter how you slice it. [1] https://i.kym-cdn.com/photos/images/original/002/287/289/67e.jpg https://i.kym-cdn.com/photos/images/original/002/287/289/67e...
- kibwen 4y ago> developed for games that didn't even have online play at all This is the kicker. The novelty of having any online play is enough to satisfy most hardcore fans of a game that would otherwise be dead. Melee fans may rant and rave about Slippy, and rightfully so, but they still don't enjoy finding out their inputs were eaten because they got shined ten frames ago. And the fact is, rollback netcode really is dramatically better than delay-based netcode for making precise muscle-memory inputs, and for most fighting games the precision required for inputs is one of the largest contributors to the skill ceiling, so hardcore fans will be happy compared to the alternative. But let's not overlook the fundamental tradeoffs: with delay-based netcode, you will always be able to react to everything that you are intended to be able to react to; with rollback, you will not always be able to react to everything that you are intended to be able to react to. Even if it's a good tradeoff, it's an inferior experience to playing locally... which is fine, because the convenience of playing online is already a tradeoff that plenty of people are willing to make. But if you design your game from the ground up to improve the experience of online play by smoothing out the reaction curve, that will probably come at the expense of offline play in some capacity. Devs don't want to balance a game twice.
- mbStavola 4y agoYou don't necessarily need to inflate startup animations or even worry about an unreactable LP/LK, the solution to this problem has existed since the very beginning: give the player control over how the rollback works! For example, in Skullgirls you can actually tune GGPO on a sliding scale to add more input delay buffering. You can essentially simulate delay-based netcode within a rollback based game by pumping up the input delay to the max. Players will find their personal preference on the spectrum of "near-zero input lag, more rollbacks" to "high input lag, no rollbacks." Also, if your game is running at 60FPS you're going to have a lower bound of roughly 3 frames input lag anyway, even if you were playing local. So if you tune your rollback to a 3 frame delay as a default value, the experience for most players is going to be pretty much perfect.
- kibwen 4y agoIndeed, you can allow players to adjust the base input delay or even have separate hardcoded input delay profiles for online and offline play, but that introduces its own problems when it comes to a player's muscle memory. In the worst case, this introduces its own design constraint where you might avoid designing your game to include frame-perfect inputs solely to make it easier for players to transition from high-delay to low-delay scenarios.
- thaumasiotes 4y ago> In the worst case, this introduces its own design constraint where you might avoid designing your game to include frame-perfect inputs If a frame is 1/60 of a second, that's not much of a design constraint.
- jcelerier 4y ago> Also, if your game is running at 60FPS in 2000 i had a CRT that could do 75fps, my current screens are 144 and 240 respectively.. 60 is a little bit passé
- whateveracct 4y agoMost fighting games tick at 60fps. It's plenty fast and you don't need more granularity than 1/60 of a second for precision gameplay (imo). You want high refresh rate with 60fps tick rate though to avoid dropping frames due to refresh differences.
- whateveracct 4y agoYou can't hide in startup animations - those aren't just waste those are core to the game. People react to them. You hide it in an artificial buffer of input lag. Even the GameCube on a CRT has a few of frames of lag. So a high refresh rate monitor can actually beat that, so you can use the difference to hide network latency and still have GameCube-on-a-CRT level latency.