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.
Here's the MK devs giving an incredibly detailed explanation of the things they had to go through to get rollback working (which has been posted more than once in this thread before, clears up so many misconceptions, but people are ignoring over and over):
https://www.youtube.com/watch?v=7jb0FOcImdg
Again talk is only dealing with the engine level optimizations, not dealing with other things like implementing a reliability layer.
Are you seriously going to tell me that this:
Have simulation steps that are computational heavy as this:
https://www.youtube.com/watch?v=Z8WnKsEKXv4
Because the cost of serialization was so expensive, the MK devs ended up having to rollback 8 frames every frame. This mean that
rollback requires 8 * 60FPS simulation steps per second. Lockstep latency compensation does not require this, which makes lockstep computationally cheaper. Which also means the company not having to spend the expensive time of a senior engineers doing perf work.
Obviously from a quality perspective, rollback blows lockstep out of the water, but it does come at a cost. When your game isn't as computationally expensive, it's not as costly.
(GGPO) Netcode has nothing to do with what a game looks like or how many dimensions a game uses. The only meaningful difference between 2D and 3D in this case is one extra dimension which will use up a little bit more data in the snapshots/keyframes, but that is negligible.
It's not a little bit. The expense of handling physics/collision for a 2D fighter is significantly cheaper that have to deal with the expense of having to deal with multiple animation channels (which are not just part of the rendering step of a frame and does affect simulation) required to simulate a 3D scene. Again, look at
the MK GDC talk (it's a great talk) and look at all how much work they had to put in to shave fractions of a millisecond of each frame to get it to run at a consistent 60FPS.
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.
You would be surprised. The people who make key decisions are business people and business people love data. When they see data like this:
Even just looking at Steam achievement data, only 12% of people seem to have completed the basic online achievements.
They're going to assume that means only a fraction of their user base cares about online. I have worked on projects where online was slapped on near the end of development using some framework they found on the unity asset store. They decide not to put money on it because of analytics like the ones above.
If I were guess why Netherrealm sunk at least a million (again, probable underestimate) into upgrading the netcode was because the latest mortal kombat is littered with microtransations and they want to keep those whales (who are a very small but profitable minority) playing.
It's companies making a business decision not to invest in something that does not add to the bottom line. This happens so much. Want to know why the gaming you paid +$60 for is buggy even with the day 1 patch? It's because they wanted to get it out before the deadline because extending the project further would mean they would have to pay people more.
After this huge step, it is imperative that this gets translated into Japanese.
Guys, take a look at these API references:
http://www.cplusplus.com/reference/stl/
https://docs.microsoft.com/en-us/windows/win32/api/d3d12/nf-d3d12-d3d12createdevice
https://docs.unity3d.com/ScriptReference/MonoBehaviour.Update.html
https://docs.unrealengine.com/en-US/API/Runtime/Engine/GameFramework/AActor/index.html
Notice something? They're all in English. Most programming languages are English based. If Japanese developers can code, they know English or they wouldn't be able to do their jobs.
I've had to work with international developers before. I have yet to meet one who couldn't navigate themselves around an English speaking country. Lack of Japanese translations isn't a significant hurdle.
Hopefully this can be worked into unity and gamemaker
Just pointing out that spending $10 on a title and putting your wallet where your mouth is in relation to rollback netcode support is more effective than complaining on the internet.
I think there might be an even better way. As I have mentioned before, when you have a budget and a deadline you would much rather use a netcode framework that's tested and ready to go. Since most off the shelf frameworks are lockstep based, it's what devs are going to use.
As I was typing this post, I thought "It would be great if someone created GGPO based frameworks for Unity and Unreal" and then I realized since the source is literally sitting on GitHub, it's entirely possible. If I had an ounce of spare time (
which I spend on only the most important tasks), I would start a branch of GGPO that uses cross platform APIs so you can run it on Mac/iOS/Android/Linux.
Unity and Unreal frameworks made available on GitHub would cut the cost of implementation way down. It would be great if there was GGPO foundation similar to the Blender Foundation so people can support GGPO based frameworks. Part of me wants to add "Start GGPO foundation" as a ticket on the GitHub.