GGPO (rollback netcode) SDK now Open Source under MIT License

Murlin

Member
Feb 12, 2019
172

Github link.

Wonder if the UNICLR director's inquiry led to this decision or if it was already in the works? Either way, this removes a big obstacle to good rollback netcode in the next generation of fighting games!
 

mnemonicj

Member
Oct 27, 2017
1,047
Honduras


Edit: I'm hopeful that the new Guilty Gear will feature at LEAST a half-assed implementation, which the devs can gradually fix with updates.
 
Oct 25, 2017
2,135


Edit: I'm hopeful that the new Guilty Gear will feature at LEAST a half-assed implementation, which the devs can gradually fix with updates.
It's already too late. Games have to be built from the ground up with GGPO in mind for it to properly function. Hence the main reason you see NRS and Capcom trying to develop their own alternatives after the fact.
 

mnemonicj

Member
Oct 27, 2017
1,047
Honduras
It's already too late. Games have to be built from the ground up with GGPO in mind for it to properly function. Hence the main reason you see NRS and Capcom trying to develop their own alternatives after the fact.
Not necessarily, GGPO was initially introduced to a whole sleuth of old games/roms.
It is definitely possible to bake this into Guilty Gear, regardless of how into its development cycle it is.

Unless of course you have some inside knowledge into its roadmap.
 

saci

Member
Oct 25, 2017
2,477
Holy shit that's amazing. I've always wanted to learn more about rollback networking and stuff, this is great.
 

Chaos2Frozen

Member
Nov 3, 2017
10,822
Isn't it ironic that in a genre that preaches the values of working hard and putting in the time at practice and you will be rewarded, the game devs needed to be spoon fed something that would help them in the long run.

EDIT: I should specify, the Japanese fighting game devs.
 
Last edited:

FluxWaveZ

Member
Oct 25, 2017
7,707
Somehow, I don't think this will change anything when it comes to the bigger fighting game releases, but it's still good news.

If Arc System Works truly wants to continue their momentum, they'll need to figure out online sooner than later.
 

smurfx

Member
Oct 25, 2017
3,684
does unreal engine include netcode? would they be able to include ggpo in the future? only way i see some japanese developers using ggpo.
 

Kumubou

Member
Oct 25, 2017
125
does unreal engine include netcode? would they be able to include ggpo in the future? only way i see some japanese developers using ggpo.
There's an implementation of GGPO for UE4 -- it's what they used in Rising Thunder.

The problem is that you still need to engineer the game to fit within the technical requirements, which is not at all trivial (especially if you're trying to retrofit it to an existing build).
 

GameDev

Member
Aug 29, 2018
24
Heh, the source code isn't even half a megabyte. Then again my rigid body simulator project from college isn't even 300kb and that wasn't exactly trivial to make.

I mean GGPO is conceptually simple (keep multiple frames of input/gamestate, rollback and reiterate when input arrives late), but it's the nuances of the game itself that make implementing it tricky. Both MK11 and Overwatch devs gave talks on the gotchas of implementing rollback latency compensation. I am still looking for a good resource on how to deal with floating point divergence.

It's cool that they released this, but there are other subtle but painful obstacles that prevent this from being trivial to implement. There's more work to implementing GGPO than pulling this GIT repo and then hitting right click and adding the source to the project.
 

Vergilius

Member
Apr 10, 2018
107
User Warned: Lazy dev rhetoric
Heh, the source code isn't even half a megabyte. Then again my rigid body simulator project from college isn't even 300kb and that wasn't exactly trivial to make.

I mean GGPO is conceptually simple (keep multiple frames of input/gamestate, rollback and reiterate when input arrives late), but it's the nuances of the game itself that make implementing it tricky. Both MK11 and Overwatch devs gave talks on the gotchas of implementing rollback latency compensation. I am still looking for a good resource on how to deal with floating point divergence.

It's cool that they released this, but there are other subtle but painful obstacles that prevent this from being trivial to implement. There's more work to implementing GGPO than pulling this GIT repo and then hitting right click and adding the source to the project.
That doesn't justify the laziness of some developers. Yes, It NEEDS a little more work but we are talking about big companies with a lot of employees. Sure when they can build a game from the ground, Implementing a decent netcode shouldn't be much problem.
It still annoys me when we saw SG and KI back in 2012-2013 with those amazing netcodes and here in 2019 we still have to see "GET READY FOR THE NEXT BATTLE" after accepting every fucking rematch.
 

MistaTwo

SNK Gaming Division Studio 1
Verified
Oct 24, 2017
2,103
Not necessarily, GGPO was initially introduced to a whole sleuth of old games/roms.
It is definitely possible to bake this into Guilty Gear, regardless of how into its development cycle it is.

Unless of course you have some inside knowledge into its roadmap.
I don't really understand the intricacies of netcode, but my understanding is that implementing the tech on old ROMs is easier
because modern hardware has no issue rendering/running those game states, giving ample resources to apply to rollback code.

The Guilty Gear save file will probably be larger than the entire game state for most of those retro games.
 

GameDev

Member
Aug 29, 2018
24
That doesn't justify the laziness of some developers.
Wow, this is the first "lazy devs" post I've seen in the wild.

Yes, It NEEDS a little more work but we are talking about big companies with a lot of employees.
An important saying in software development that "nine women can't make a baby in one month", that's especially important to consider when It took 7-8 man years on just the engine level code to get rollback working in mortal kombat. 7-8 man years is about $1,000,000 in dev costs. That's probably an under estimate because that probably only covers the developer salaries, not counting QA and other supporting labor. That is not "a little more work".

Net code is an absolute pain the debug, and finding competent engineers is really hard. I had a boss almost cry when our graphics engineer left for another company because it took nearly a year to hire him in the first place. Network game play programmers aren't much easier to find.

Engines like Unreal and Unity have netcode frameworks you can get off the shelf and when you have investors who have deadlines they want you to hit you're going to go with something pre built that has been tested as opposed to spending a ton of time and money rolling your own.

In an industry where crunch is rampant, the reason is never lazy devs. The reason is badly made online is almost always time/budget constraints.
 

Sixfortyfive

Member
Oct 28, 2017
2,056
Wow, this is the first "lazy devs" post I've seen in the wild.

An important saying in software development that "nine women can't make a baby in one month", that's especially important to consider when It took 7-8 man years on just the engine level code to get rollback working in mortal kombat. 7-8 man years is about $1,000,000 in dev costs. That's probably an under estimate because that probably only covers the developer salaries, not counting QA and other supporting labor. That is not "a little more work".

Net code is an absolute pain the debug, and finding competent engineers is really hard. I had a boss almost cry when our graphics engineer left for another company because it took nearly a year to hire him in the first place. Network game play programmers aren't much easier to find.

Engines like Unreal and Unity have netcode frameworks you can get off the shelf and when you have investors who have deadlines they want you to hit you're going to go with something pre built that has been tested as opposed to spending a ton of time and money rolling your own.

In an industry where crunch is rampant, the reason is never lazy devs. The reason is badly made online is almost always time/budget constraints.
Most of this post is undercut by the fact that it's the small indie teams who have been the most consistent at implementing GGPO.

Punch Planet has it and I've heard that its staff is less than a half-dozen people total. The Sonic Smackdown devs previously bought a license for it and they have a grand total of 2 programmers. Lab Zero isn't exactly a huge studio either.

People are right to call companies like Namco and ArcSys lazy. Or if not lazy, at least terrible at prioritizing things that matter in their games. Capcom I'll give a partial pass to because they've at least been trying to implement their own in-house solution for this, rocky as it might have been.
 

slothrop

Member
Aug 28, 2019
201
This is great! Always awesome to see new tools made libre.

The idea here that just because it has a permissive license everyone will and should adopt it for all of their projects else they are lazy is crazy though. Software development at scale is complicated and there are tradeoffs for every choice you make.
 

slothrop

Member
Aug 28, 2019
201
Most of this post is undercut by the fact that it's the small indie teams who have been the most consistent at implementing GGPO.

Punch Planet has it and I've heard that its staff is less than a half-dozen people total. The Sonic Smackdown devs previously bought a license for it and they have a grand total of 2 programmers. Lab Zero isn't exactly a huge studio either.

People are right to call companies like Namco and ArcSys lazy. Or if not lazy, at least terrible at prioritizing things that matter in their games. Capcom I'll give a partial pass to because they've at least been trying to implement their own in-house solution for this, rocky as it might have been.
Small indie projects are by far the easiest to integrate random libraries laying around with. Your build pipeline, toolchains, devops processes, licensing negotiations, etc etc (before this was just made MIT), are significantly more complicated when you're supporting a massive project than when it's 5 guys who can just decide to do whatever they feel like.
 

Teh_Lurv

Member
Oct 25, 2017
2,229
People are right to call companies like Namco and ArcSys lazy. Or if not lazy, at least terrible at prioritizing things that matter in their games. Capcom I'll give a partial pass to because they've at least been trying to implement their own in-house solution for this, rocky as it might have been.
I think big publishers would rather stick with in-house solutions (old delay netcode) that they can completely control rather than be at the mercy of licencing issues or bugs/idiosyncrasies they can't easily fix using 3rd party netcode.

Its not about them being lazy, its about japan being a small place with really good internet. Like I heard playing fighting games online during the dreamcast era and arcades was fine.
IIRC Maximillian Dood or Sajam stated in a recent video that that explanation isn't true, players in Japan also suffer due to bad netcode.
 
Oct 27, 2017
14,256
Not necessarily, GGPO was initially introduced to a whole sleuth of old games/roms.
It is definitely possible to bake this into Guilty Gear, regardless of how into its development cycle it is.

Unless of course you have some inside knowledge into its roadmap.
Adding it to older, less intensive games is MUCH easier. The cost of computing the next frame is much less expensive on modern HW than doing so for a modern game
 

Sixfortyfive

Member
Oct 28, 2017
2,056
Small indie projects are by far the easiest to integrate random libraries laying around with. Your build pipeline, toolchains, devops processes, licensing negotiations, etc etc (before this was just made MIT), are significantly more complicated when you're supporting a massive project than when it's 5 guys who can just decide to do whatever they feel like.
Every word of this being true doesn't allow for an excuse good enough to justify the state of online play in mainstream fighting games for this entire console generation.

The GGPO client was released to the public more than 8 years ago. It was a revelation to anyone who tried it out back then, and it should have turned industry heads immediately; it's not like Tony Cannon wasn't literally trying to get major industry players to notice it. Even after conceding that it's unreasonable to expect devs to retrofit a rollback solution into games that have already been released or are already well into development (and having to redo way too much work to justify it), and after conceding that it could take a few years for new games to start prioritizing this kind of tech... It's over 8 years later, and like Sajam said, "major fighting games released in 2019 cannot reach the standard set by games released in 2013." There's no excuse good enough to justify that.

This isn't a niche concern, either. Netcode is how you facilitate the ability for people to play against each other, which is sort of the entire point of these games. It's insane that some major companies still basically treat it as an afterthought, and I'm only cautiously optimistic that this recent outcry for improvement and this move to make GGPO itself free to use will actually pay off in a meaningful way.
 

Mzen

Member
Oct 25, 2017
298
Portugal
After this huge step, it is imperative that this gets translated into Japanese. People like throwing around the "Japanese devs don't care" argument, but things aren't as simple as that. Many of them simply do not know enough about GGPO or how to implement it, no matter how silly that may sound for people who are part of the FGC.

Max made a video about this topic not too long ago, and his hypothesis lines up perfectly with my own thoughts on the matter:

I fully believe that some companies are still holding to their traditional values and not wanting to rely on solutions from the West out of pride, but that is definitely not the whole story.

One thing is 100% certain though: Now that there are no costs to use GGPO, if that documentation gets a Japanese version eventually, it will be absolutely inexcusable on their part to refuse to implement it. For the time being, let's keep spreading the news through their official channels to raise awareness because it's pretty hard to beat the price of FREE!
 

JB2448

Member
Oct 25, 2017
2,233
Florida

If French-Bread can do it for Under Night In-Birth, any notable Japanese fighting game development team can.
 
Last edited:

FluxWaveZ

Member
Oct 25, 2017
7,707
If French-Bread can do it for Under Night In-Birth, any notable Japanese fighting game development team can.
The thing is that their games are still sprite-based. I don't know enough about the tech behind this, but from what's been said, it's different when it's for more graphically complex games.