Live data from Hacker News

How fighting games use delay-based and rollback netcode (2019)

ki.infil.net

11–20 of 107 posts

Re: How fighting games use delay-based and rollback netcode (2019)

#12
post #9
post #3

Earlier quoted context omitted.

The author of any piece should be permitted a certain set of assumptions about their audience. I think as long as a term has a relatively unambiguous Google result (which is true in this case), it’s fair game to be used in public texts.

The arguments the author made make no sense without some sort of a baseline though. 'The majority always play online' for instance points to a fairly tight definition, and may even be tautological (No True fighting game is designed for offline play).

The author isn't writing for a hypothetical future HN audience. They're writing for their blog audience who, presumably, 99.9% know what it means.

Re: How fighting games use delay-based and rollback netcode (2019)

#13
post #6

This "Infil" dude just stole the entirety of the article from Ars Technica ( https://arstechnica.com/gaming/2019/10/explaining-how-fighti... )

> This article has been cross-posted on Ars Technica. - The infil site

> Ricky "Infil" Pusch is a long-time fighting game fan and content creator. He wrote The Complete Killer Instinct Guide, an interactive and comprehensive website for learning about Killer Instinct. This article was originally published there. - ArsTechnica

Both sites clearly reference where the original source came from. Nothing has been stolen.

Re: How fighting games use delay-based and rollback netcode (2019)

#14

Prediction code for rollback is somewhat akin to branch prediction code in that the dumbest solution works surprisingly well but there's incremental efficiency gains to be had. I wonder if any fighting games have thought to train a neural network per player to try and predict the player's actions N frames ahead. The neural nets could be used for smoother netcode but if the accuracy got high enough, they could, eg: al…

> I wonder if any fighting games have thought to train a neural network per player to try and predict the player's actions N frames ahead.

The entire point of playing a fighting game is to attempt to solve this problem. A good player, by necessity, can't be accurately predicted; if they could, they'd be a bad player.

Re: How fighting games use delay-based and rollback netcode (2019)

#16

Super smash bros melee is having a bit of an online renaissance due to a combination of the COVID 19 pandemic and the recent implementation of rollback netcode by a community member that quit his job.

The rollback is truly something else. Although - and I may be crazy - I swear it isn't quite as good as playing local people with delay-based netplay (such that the network delay can "hide" behind the inherent lag of the Gamecube/game itself)

But outside of that edge case, it's outstanding.

Re: How fighting games use delay-based and rollback netcode (2019)

#17
This is an amazing writeup, and something I've often wondered about!

For those who want to skip to the code, the article links to these resources:

https://www.ggpo.net/

https://drive.google.com/file/d/1nRa3cRBQmKj0-SEyrT_1VNOkPOJ... - a writeup on the GGPO library including code samples of how it works

For an example of what GGPO feels like when implemented in a game from day one, this Reddit thread illuminates what's possible: https://www.reddit.com/r/Games/comments/lolukg/guilty_gear_s... - "I was playing matches with a friend in Denmark from the east coast of the US without any issues whatsoever. It's like black magic. If this kind of netcode is what we have to look forward to with GGS, I literally won't play any other fighting game that doesn't have it from here on."

Taking a step back from gaming applications though: I'd love to see a convergence between those researching CRDTs and those who have implemented rollback netcode in the wild. This article from September 2020, by one of the contributors to Google Wave back in the day, is a great overview: https://josephg.com/blog/crdts-are-the-future/

There's a fascinating confluence of talents needed to generally solve the problem of "how do you keep people in a flow-state when collaborating in the presence of network delay" - which is more applicable now than ever. There's psychology, user experience design, user interface design, deep domain knowledge, fundamental CRDT research, the types of artistry that go into really good gaming netcode, people who have implemented undo stacks in massive desktop applications and know all the warts that arise there, security researchers, distributed systems researchers (the latter two because this will enable decentralized applications in a huge way)... All these people will come together in the coming years to make computing seemingly defy the laws of physics. It's an exciting time to be a software engineer.

Re: How fighting games use delay-based and rollback netcode (2019)

#18

Prediction code for rollback is somewhat akin to branch prediction code in that the dumbest solution works surprisingly well but there's incremental efficiency gains to be had. I wonder if any fighting games have thought to train a neural network per player to try and predict the player's actions N frames ahead. The neural nets could be used for smoother netcode but if the accuracy got high enough, they could, eg: al…

> I wonder if any fighting games have thought to train a neural network per player to try and predict the player's actions N frames ahead. The entire point of playing a fighting game is to attempt to solve this problem. A good player, by necessity, can't be accurately predicted; if they could, they'd be a bad player.

A good player can't be accurately predicted by a human

Re: How fighting games use delay-based and rollback netcode (2019)

#20

Prediction code for rollback is somewhat akin to branch prediction code in that the dumbest solution works surprisingly well but there's incremental efficiency gains to be had. I wonder if any fighting games have thought to train a neural network per player to try and predict the player's actions N frames ahead. The neural nets could be used for smoother netcode but if the accuracy got high enough, they could, eg: al…

You probably don't want to do this. Players will get quite reasonably upset if the AI predicts thst the opponent will use an attack, so on their screen they hit the opponent out of the attack, then a rollback occurs and the opponent has actually blocked.

Some games like Killer Instinct have AIs that learn to play like a certain player. It's pretty cool!

Post reply on HN