Video wird geladen...
Video konnte nicht geladen werden
The issues for rollback in 3D fighting games, and a solution.
199,279 Aufrufe • vor 8 Monaten •via X (Twitter)
47 Kommentare

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.

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

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

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.

YouTube version:

To answer common replies, see here:

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

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

i experienced this first hand, good video. cool shit

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.

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?

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

Subbed regardless Thanks man🙏🏿

@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.

That Injustice 2 video is such an interesting watch

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.

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

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

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

Great job and explanation!

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

So that explains why no arena fighter has rollback 😭

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

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.

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.

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.

i fucking love gemion function

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

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

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

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.

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

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

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

@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

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

@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

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.

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

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

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?

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

No for any official resource, unfortunately

bummer, thank you anyway

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?

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

For Honor was made by progaming gods then.


