Loading video...

Video Failed to Load

Go Home

The issues for rollback in 3D fighting games, and a solution.

199,279 views • 9 months ago •via X (Twitter)

47 Comments

Dan Fornace's profile picture
Dan Fornace9 months ago

This is close to the reason but it’s not really having animation driven data that causes issues. Many fighting games with 3D graphics are using skeletal data to drive hitboxes and hurtboxes and most are deterministic and can support rollback netcode. What gives 3D games issues is that they tend to use animation blending which is often not deterministic and can be expensive for rollback when it’s programmed to be so. Smash Ultimate uses animation blending sparingly which would make rollback a lot harder to achieve depending on how it was programmed. Especially since having ice climbers means there’s up to 8 character entities in a 4 player match.

Richard Nguyen's profile picture
Richard Nguyen9 months ago

Thanks for the reply. I am responding back as an image because of Twitter text size limits 😅

Dan Fornace's profile picture
Dan Fornace9 months ago

I’m not sure how much the distinction matters if you are only using authored animations. Since in a lot of projects, developers would “bake” the animation data to make it deterministic which is pretty similar in practice to having all the data in just code. You could have a fully separate logic layer and then use animation blending but then you run into the issue where the collisions don’t match the visuals if you don’t also try to calculate the blends programmatically. And based on how our fans react to our hand authored hitboxes and hurtboxes at times, you might get some angry players if the delta between code and visual is too much :D

Krackatoa's profile picture
Krackatoa9 months ago

I think it wouldn't be beyond devs to build a tool to automate 3D hitbox generation from existing assets. Still a lot of work, but definitely an exercise in tool-making over manual fiddly labour with hitboxes.

Richard Nguyen's profile picture
Richard Nguyen9 months ago

YouTube version:

Richard Nguyen's profile picture
Richard Nguyen9 months ago

To answer common replies, see here:

上原 rickstah's profile picture
上原 rickstah9 months ago

Would you say VF is more code driven since it has a very basic RPS system in which throws>guard>attack>throw

Richard Nguyen's profile picture
Richard Nguyen9 months ago

RPS system doesn't matter in this context. It's mainly about how hitboxes (attacks/throws) are positioned and especially how they make contact with a hurtbox (on block/hit). Games with more # of hitboxes and complex collisions (walls, rotated kharacters, etc.) will be harder

Memz's profile picture
Memz9 months ago

i experienced this first hand, good video. cool shit

Koenji's profile picture
Koenji9 months ago

Very good explanation, for something like Tekken it would be intresting but it would heavily affect the feel of the game all around. Tekken, from my understanding, has had the same scripts driving interaction since forever, so we would never really see a pure code solution for a game like that. For games that really want to opt for bone-based bone placement, maybe a hybrid that re-sim just the root location could be feasible, maybe representing skeletons with fixed float equivalents could be interesting, never tried really, but just a thought. I think a Gundam VS-like game could have really solid rollback, as that wouldn't need to rely on anything bone-based.

ILL | OZI- G -BE's profile picture
ILL | OZI- G -BE9 months ago

This video is so good, it makes sense why all these 3d games take a long time for rollback to be added retroactively Do you have a YouTube?

Richard Nguyen's profile picture
Richard Nguyen9 months ago

I do and I just uploaded the same video, but I don't do too much there.

ILL | OZI- G -BE's profile picture
ILL | OZI- G -BE9 months ago

Subbed regardless Thanks man🙏🏿

SonOfChar0079's profile picture
SonOfChar00799 months ago

@JWonggg And yet somehow Virtua Fighter 5 R.E.V.O. World Stage fixes that & plus it's a much older game so it was easy for @SEGA to implement rollback on it imo.

GUAMO @ home's profile picture
GUAMO @ home9 months ago

That Injustice 2 video is such an interesting watch

Mark Parks's profile picture
Mark Parks9 months ago

I’m sorry but I fundamentally disagree with the premise stated here. As demonstrated in Slippi Melee, ROA2, and even Injustice (2013 on the PS3 resimulating 10 frames every frame) skeleton pose calculations are not at all a limiting factor. Data Serialization is more important.

Frazer's profile picture
Frazer9 months ago

Honestly I dont see rollback in 3d is much more complex than rollback in 2d unless you're trying to modify it into an off the shelf engine like Tekken with UE. Maintain the engine structure of a 2d rollback gamr its just a matter of changing the game logic itself to be 3d

INKD's profile picture
INKD9 months ago

Fully inspired 3D VF inpsired Fighting Games live and dies on its 'feel' so if the feel is fucked, thats gonna mess with the game in almost every way possible. Sounds like a very difficult task for implementation more or less

deathbed detective 🌿's profile picture
deathbed detective 🌿9 months ago

never seen a good explanation of the problem before, great stuff

Jeff Pierre's profile picture
Jeff Pierre9 months ago

Great job and explanation!

TATSU THE WICKED ✪'s profile picture
TATSU THE WICKED ✪9 months ago

agreed. fighting games definitely need to utilize this knowledge moving forward

zota - I’m HOME!'s profile picture
zota - I’m HOME!9 months ago

So that explains why no arena fighter has rollback 😭

Genesis | MIOM | Dr. Z's profile picture
Genesis | MIOM | Dr. Z9 months ago

For animation-driven systems, what about adding a sort of "shadow" character model that is greatly simplified to reduce calculation time, but is never actually rendered on screen, it's just there to do rollback calculations on? Introduces a tradeoff between fidelity/latency

Richard Nguyen's profile picture
Richard Nguyen9 months ago

I believe that is one optimization that will improve it. However, it will now also lose "visual accuracy" as well as still being reliant on the animation engine. So, it'll work but I wouldn't prefer it.

huffy's profile picture
huffy9 months ago

that was very interesting! i have a good idea of how rollback works so i knew most of it but i didn't realize 3D fgs were animation-driven and that's what made actual rollback impossible to implement as they work now.

Paul Daulby's profile picture
Paul Daulby9 months ago

I don't think this is accurate. You can run and rerun 2 characters animations thousands of times a frame and end up in the right place every time.

Armonté's profile picture
Armonté6 months ago

i fucking love gemion function

Scrublax_VGC/FGC's profile picture
Scrublax_VGC/FGC9 months ago

Rebirth of souls rollback possible? 🥹 Rollback of souls? 🥹

Yoshi Cookie — SoulCalibur Kilik Main's profile picture
Yoshi Cookie — SoulCalibur Kilik Main9 months ago

Thank you. This is why SoulCalibur is nearly impossible in rollback.

Vincent Parizet's profile picture
Vincent Parizet9 months ago

Computing 2 skeleton poses per simulation is cheap. The fact that "rollback is difficult in 3D games" has nothing to do with it.

takaiyo's profile picture
takaiyo9 months ago

I'm surprised you didn't mention camera jerking when talking about the downsides of 3d rollback. I'm sure there are solutions/alleviations, but when a character quickly sidesteps 180 degrees around the opp but the game state needs to roll back, the camera could be nauseating.

nemzaki's profile picture
nemzaki9 months ago

That’s exactly how I did it in my game without issues, I’ve notice no lag and works really well

Piffy🏳️‍🌈🇩🇪's profile picture
Piffy🏳️‍🌈🇩🇪9 months ago

This Sounds Impossible for Games Like Tekken.. We talking about 80+ moves per character with complex Animations that would Not reuse the Same Hitbox coordinations .. its a great Idea to have Them Animation based.. espacially since its also easier to adjust the attacks that way

mimiPuffurPish's profile picture
mimiPuffurPish9 months ago

aren't smash Bros things kind of animation driven as well because it's based off of like attached at the bones of the character like how donkey Kong has a tie hurt box? And they figured out rollback pretty good. I mean smash is literally called a 3D game

Richard Nguyen's profile picture
Richard Nguyen9 months ago

@bommunu Who is the "they" in "they figured out rollback pretty good"? I am not 100% familiar with that series. If "they" meant the original devs, isn't the online horrible? If "they" meant a mod, that's most likely "emulator rollback" and not "native rollback", which is a separate topic

Jorge ~ Sun Spirit's profile picture
Jorge ~ Sun Spirit9 months ago

@bommunu Rivals of Aether 2 uses hitboxes attached to the skeleton and still has rollback netcode.

mimiPuffurPish's profile picture
mimiPuffurPish9 months ago

@RichardWinz Don't use that shit as an example. I glaze the fuck out of that game And I swear to God it's like not good dude The server-based is just not the play for that

Magic in Charge No.2's profile picture
Magic in Charge No.29 months ago

In Tekken, the movement, hitbox and hurtboxes are so precise that syncing them takes a lot of work. The precision is part of Tekken's identity and allows for cool stuff like slow motion.

small head gundam's profile picture
small head gundam9 months ago

couldn't you initially have the hitboxes tied to the skeleton and then use a script to save the hitboxes so you can just bake them in? there might be some fuckups with like IK stuff i guess but 90% of the time they'd be accurate

Cain Riviera's profile picture
Cain Riviera9 months ago

Solution is massive input delay and input buffers. That's why FGs are bad now

Rodrigo's profile picture
Rodrigo9 months ago

I don't get it. How would this "code-driven" approach reduce the amount of data that needs to be exchanged between the peers in order to keep the simulation running smooth?

rato's profile picture
rato9 months ago

hey is there somewhere where I could learn more about the animation-driven and code-driven concepts?

Richard Nguyen's profile picture
Richard Nguyen9 months ago

No for any official resource, unfortunately

rato's profile picture
rato9 months ago

bummer, thank you anyway

KaijuAlex's profile picture
KaijuAlex9 months ago

Thanks for sharing! Did you use the ggpo api for your implementation? Thats cool with getting 4 way. For that implementation is one person hosting the server? Lastly what are any resources you recommend to learn?

Richard Nguyen's profile picture
Richard Nguyen9 months ago

To answer just at a high level, study the docs and source code on GGPO's GitHub as well as basic physics (kinematics+dynamics)

ThrustyZol | XBF @ West Coast Clash's profile picture
ThrustyZol | XBF @ West Coast Clash9 months ago

For Honor was made by progaming gods then.

Related Videos