The Importance of Netcodes

the problem is that the games use more memory in general, and rollback netcode has to save multiple full gamestates (the number depending on how common sync events are), which is also demanding on memory. (Edit: to my understanding, it has to save a gamestate for each thing that could be effected by a rollback, so basically each input, I’m not 100% sure on that point though)

Current generation consoles are actually pretty stingy with memory as it is, so it quickly becomes an issue with games that demand a lot of resources anyways.

To put it another way, its not the amount of information transferred, its the amount of information the game has to store in RAM.

the information transferred gets stored in ram

netcode means the world to me, KOF XIII will either be the best videogame purchase I have made in ages or a waste of money, depending on the netcode seeing improvements. I LOVE the game, but my local friends don’t care about it and it’s pretty dead in the arcade. my motivation to play this game to it’s full potential depends entirely on my ability to play online.

I lost interest eventually in MVC3 (shit netcode) when friends started getting more busy and gatherings happened less frequently, I will not be losing interest in UMVC3 (greately improved netcode) because it’s playable online at my own convenience and I will be motivated to continue to play.

no the entire gamestate has to be saved, not just the inputs.

Think of it this way, the inputs alone are almost useless for rolling back, it has to also save all the information as to everything that was happening right as the inputs were made.

Not all netcode uses roll back like ggpo

Yeah, but then we’re talking about Variable input delay, which is what SF4, Marvel, et al use.

Those are the 2 major forms of netcode for fighting games, and each has specific advantages and disadvantages.

One of the disadvantages of rollback is that it uses way more resources.

The point is that memory management has to be considered when deciding what type of netcode to use, and blatantly moreso for 3D titles than 2D ones.

With 2D titles you have a bunch of billboard sprites you can modify from frame to frame immediately with little(relative) overhead. This is mincing words somewhat.

With 3D systems you have models, textures, lighting sources, particle emitters, a third aspect for positions/transforms/etc, and several more aspects of the system that function off mathematical formulae rather than being easily specified at the frame-to-frame level. Several of these aspects cannot be turned “on/off” or pulled to/from memory with the same ease that you can stop displaying or load/unload a 2D image.

A large amount of time and energy is placed into efficiently cramming these resources into console format so gameplay can look as flashy/impressive as it does. Another significant portion of time is spent managing how these resources are loaded from memory and displayed in the game environment, because if this is done poorly you’ll get a laggy, largely unresponsive game that crashes a lot. This is especially important for competitive titles like fighting games, because random slowdowns during normal gameplay aren’t acceptable.

Modern console development for 3D titles is all about pushing this to the limit while not going over. Rollbacks put a strain on that limit, because it’s harder to run a modern 3D application under the premise that at any given moment, it has to go back to half a second ago or 2 seconds ago or whatever. It would not be strange for several sizable object instances to have been created and removed from memory by that time already in a 3D title. And treating every object instance as if it may still be needed by the system for the next 3 seconds is a very fast way to run out of memory.

Obviously there are netcode solutions that don’t use rollbacks… but as you can see from this thread, a lot of people don’t find them satisfactory yet. And I’m not saying that there aren’t possibly solutions to this… I’m just trying to explain why the answer isn’t as easy as people think.

For Fuck’s Sake. You didn’t read the thread at all did you?

Agreed. I honestly think this was half the Problem with MvC3 as well. Matchmaking is just as big a deal as netcode, is way easier to do, and still gets fucked up constantly.

it was a big argument that all the data transfer MVC3 used made it impossible to make it run well online, that turned out to be bullshit, UMVC3 is night and day compared to mvc3 and I get good games with most of my friends list.

Do 3D games really move assets in and out of memory during the course of a match? These are games that can be run off the disc without a hard drive, I don’t see how that’s possible.

Obviously 3D games can handle rollback. FPS’ have been using similar schemes for years.

I hate this topic on SRK though. Most people just don’t have a good enough understanding of the technical details in order to have a decent discussion. Usually it just devolves into a chorus of morons chanting “WE WANT GGPO!”

not all netcode uses rollback

-Good netcode
-Spectator mode
-Engaging mechanics and characters

Those are the three things that I look for in a fighter from the start and it has a nice chance of being purchased if it has all three. Most fighters besides SSFIV+ and BlazBlue suck in the netcode department. UMvC3 is better than Vanilla which is great.

The netcode most likely sucks because Japanese devs like to make their games as if they were going to be played in Japan exclusively. The focus and work is done by folks that just don’t understand how big the US is and how important solid netcode is when scenes are separated by thousands/hundreds of miles. I’d really like to see an American developer step up with solid offering that keeps the American audience in mind. I’m very curious to see how Reverge Labs will handle online gaming with Skullgirls.

Can you point us to a forum, link or article that covers the subject?

There’s a whole lot that needs to be considered, and you need a fair bit of understanding about other concepts as well.

But you don’t really need an in-depth technical understanding. Just some common sense will do fine.

Basically, the best way to ensure that a modern game is going to perform well over the internet is to design it to be “network-friendly” up front. You can’t just take a game, plug in some rollback multiplayer code and expect it to look good and work well. There’s a lot to consider, even just from an aesthetics POV. eg. If your game has breakable background objects or a post KO special effect, then these have to be designed in such a way that it’s not going to interfere with the gameplay or distract the player in case of a rollback. You may have to make compromise between presentation, playability and/or resources (how much of the game’s state are you going to buffer?). And that’s just with something as simple as a post KO effect…

Seriously though, FPS’ are an entirely different situation than fighters… especially console shooters. There are a number of things that they can do to fudge that aren’t really viable in a fighting game (as an example that fact that almost all console shooters have a small area of autoaim near the center of the screen, so small rollback ‘skips’ are less likely to be noticable or change an outcome).

Still, you’re right that its possible, the whole point is that it’s a tradeoff. Netplay in a country the size and with the infastructure problems of the US is always going to be hard to handle for something that requires the precision fighting games do. There’s no magic bullet.

Probably not impossible, but a terrible idea… I mangled the ideas together(object instantiation/asset management) last night like a chump while trying to streamline the point. Just ignore that part, it’s powered by Kool-Aid.

FPS games use servers, FGs are p2p, so it’s hard to compare them, but dunno how much of a difference that makes though.

also FPS games have a shitload of lag, but isn’t nearly as apparent half of the time. you would probably notice a fireball missing someone a lot more than a tracer.

Why do people always bring up FPS games in comparison? Hit detection is absolute shit at random in every shooter I’ve ever played.

Because FPS usually use rollback code and 3D graphics. If your goal is to say ‘Rollback would totally work on 3D fighters!’ FPS’ are a nice simple (if actually inappropriate for a number of reasons) example to use.

Because capcom games are the only games that have a strong competitive scene. Namco would’ve had a better chance at building one here if the netplay was better.

SF4’s netcode is still one of the best to this date. I went from barely being able to srk when I wanted to tournament level all online. You say its barely acceptable, but honesly the only netcode that has been better since is BB:CT.