What's new

MKX Netplay - What Can NRS Add To Improve Online Functionality?

Status
Not open for further replies.

BillStickers

Do not touch me again.
Because with a server, all you're doing is adding another connection and node to the mix. I think mauve makes that pretty clear.


Think of a triangle.

No matter what you do, the distance from corner A to B will always be shorter than from A to C to B.

As for GGPO, I believe the system works by not having a "host" per se and treating both clients as true peers. In other words, both peers run separate copies of the game that sync to each other.

Think of it this way. Imagine two players playing on separate consoles on separate rooms. Player 1's has his controller connected to the P1 slot on both his console and to the P2 slot Player 2's console. Player 2 has the same setup, with their controller connected to the P2 slot of both his console and P1's console. This is peer to peer fighting game online play in a nutshell. All that's missing is a way to keep the games in sync. This is done by either one of two methods, slowing the game down whenever there's latency detected (i.e. SFIV code) or the ideal way, which is rolling back to the last synced or fair state whenever a desync is detected.

Now with a client-server model, you're adding a third console to in the middle, the problem here is that you now have to sync three different consoles. Now some might say that ideally, you'd just sync to the server, but would you really want to sync to a game that you're not playing locally. One that might not exactly be up to date, considering that fighting games rely on frame perfect timing and inputs.
You've actually piqued my interest in creating a client-server model for a fighting game as an experiment to see how it performs against lockstep p2p. While you're right about the benefits of having a direct connection vs. a server, there are a lot of benefits to client-server that could potentially make for a smoother gaming experience, especially when it comes to 1) bandwidth optimization and 2) quality of service.

I also have to wonder how much of a difference a third node makes in practice once you consider the average gamer's internet connection. Would two consoles peering on a shitty Tier 3 connection really be faster than two nodes communicating with a beefed-up server on an enterprise-class Tier 1 or 2 network?
 

Juggs

Lose without excuses
Lead Moderator
A dedicated server isn't automatically worse than p2p for fighters, it depends on the connections of the two players. I have shitty internet, for instance, and would benefit from a dedicated server over p2p some of the times especially if my opponent also had shitty internet. Usually p2p is better, but it's not always better.

Anyway, I would love roll back netcode though. Really doubt MKX will have it, but we really REALLY need it.
 

d3v

SRK
You've actually piqued my interest in creating a client-server model for a fighting game as an experiment to see how it performs against lockstep p2p. While you're right about the benefits of having a direct connection vs. a server, there are a lot of benefits to client-server that could potentially make for a smoother gaming experience, especially when it comes to 1) bandwidth optimization and 2) quality of service.

I also have to wonder how much of a difference a third node makes in practice once you consider the average gamer's internet connection. Would two consoles peering on a shitty Tier 3 connection really be faster than two nodes communicating with a beefed-up server on an enterprise-class Tier 1 or 2 network?
The thing you have to think about is ping times and input delay.

With P2P, you're only concerned with the ping between the two consoles. So if they have say 120ms ping, and assuming they're using GGPO style rollback code, they're only looking at 3-4 frames of delay (since rollback code doesn't wait for a confirmation of reception, in other words, only the time to send data is needed for the delay).

Compare to a server model where both have 120ms to the server. What happens is that since it takes 60ms to send the input to the server, and another 60 ms to send that to the other client, you now have 7-8 frames of delay.

Take note that I'm referring to raw inputs, as that's really all that is sent.

The other issue is that you're now having to synchronize 3 separate games instead of two. Plus, with a server model, you're synchronizing to the game that's the farthest from both players - the server. Compare to p2p rollback where the main simulation that you are playing, as far as you're concerned, is the one being run on your console/computer.

For more on why peer-to-peer is perfect for fighting games, read Mauve's (creator of Rollcaster) article on it.
http://mauve.mizuumi.net/2012/07/05/understanding-fighting-game-networking/
 
Last edited:

BillStickers

Do not touch me again.
The thing you have to think about is ping times and input delay.

With P2P, you're only concerned with the ping between the two consoles. So if they have say 120ms ping, and assuming they're using GGPO style rollback code, they're only looking at 3-4 frames of delay (since rollback code doesn't wait for a confirmation of reception, in other words, only the time to send data is needed for the delay).

Compare to a server model where both have 120ms to the server. What happens is that since it takes 60ms to send the input to the server, and another 60 ms to send that to the other client, you now have 7-8 frames of delay.

Take note that I'm referring to raw inputs, as that's really all that is sent.

The other issue is that you're now having to synchronize 3 separate games instead of two. Plus, with a server model, you're synchronizing to the game that's the farthest from both players - the server. Compare to p2p rollback where the main simulation that you are playing, as far as you're concerned, is the one being run on your console/computer.

For more on why peer-to-peer is perfect for fighting games, read Mauve's (creator of Rollcaster) article on it.
http://mauve.mizuumi.net/2012/07/05/understanding-fighting-game-networking/
Oh, I actually read that article last night after reading this thread!

I'd argue that developers and gamers alike are much too concerned about ping compared to, say, throughput. These days there are so many devices on a home network at the same time, and with houses full of multiple Netflix watchers, streamers, and/or consoles still connecting to the internet over 802.11b, I'd say that reliability and throughput are just as big of an issue these days. IMO the biggest potential gains from client-server come from the fact that devs can assume that the server is more reliable than the clients that connect to it.

For example, in P2P you really have no choice but to process a constant stream of input and output, whereas a server can optimize what information gets sent to whom based on what the server knows each client has. My original thought was for each client to send inputs to the server and have the server send back state diffs (instead of raw inputs) for the client to reconcile with its own state in a single operation. Also, because we designate the server's state as authoritative, instead of syncing 3 different states, we're actually just composing a centralized state on the server then asynchronously updating the two client states. The benefit to this is that we don't have to deal with the hang time of figuring out which node is lagging behind and how to reconcile it.

IMO the ping issue is not as big of a deal if you have regional servers. Yes, two east coast players playing on a California server would be a lot laggier than P2P, but a New Yorker playing someone from California on a Chicago server has the potential to be just as fast or faster.

Let me know if any of this sounds like it would/wouldn't work in practice, though! It's quite possible that even with lots of optimization, client-server still ends up being slower.
 

JLU51306

Bzzzt *Paging Doctor Fate*
A couple more hamsters on wheels. Some roborovski hamsters should do the trick. I know, I know, they cost more and don't last as long, but NRS will undoubtedly splurge this time around, no?
 

Perdition

Your friendly neighborhood cynic
I just got my internet upgraded. These dudes better do me some justice on that netcode. Now that Gamespy is out of the picture, I am much more optimistic.
 

Montanx

Thats why they call this thing bloodsport, kid.
I remember them saying they had big announcements for online features coming up. Or was that just the whole faction thing? Hoping they have more in store.
 

Sutter Pain

Your mothers main.
Slightly better then injustice would be a huge blow up for a big game like MKX. It needs to be better then KI and there is no reason it can't be given the resources NRS should have over Double Helix.
 

Immortal Kombat

almost moderate success
All they need to do is play ki and they will see how online should be done. Maybe put their own twist on it with a NRS hosted online tournament from time to time. Seriously though, ki gets it. They advertise the tournament winners, future tournaments, etc. Even have a ki cup. Take notes NRS, Im serious
 

Klesk_1

RIP Grundy
Some innovative system which heavily penalises disconnecters. it would be amazing if it actually got more harsh towards the end of the match as opposed to the beginning.
 

Immortal

Blind justice....
Slightly better then injustice would be a huge blow up for a big game like MKX. It needs to be better then KI and there is no reason it can't be given the resources NRS should have over Double Helix.
Let us know when you come back to planet earth and actually learn about physics.

People have no idea about technical stuff... they just have big expectations (unrealistic) which most likely always lead to a big disappointment.

There is almost no way it gonna be better then KI. For simple reason you can only cheat physics that much. Assuming MK X is gonna use some sort of rollback system (as KI is) which isn't confirmed anywhere at this point, it will allow some latency mitigation but don't expect miracles.

You can't rollback "indefinitely", in reality around 100 - 120 ms latency is maximum you can correct with rollback system assuming game doesn't have faster moves then 6-8 frames. If you don't follow this rule then sometimes game will generate weird (wrong) results (like in KI after it was released).

Simple example: if you try to rollback higher latency then said above (with a game at 60 fps) it can lead to you winning on your screen and opponent winning on his screen. That can happen if finishing blow was a fast let's say 6 frames move. The rollback system won't have enough time to correct (sync) game state on the opponent side since by that time match will be already over on his screen with predicted move (not the actual one).

That's a very simplified example there is more to consider in reality (programming) but you should get the picture.

Just to be clear - i hope they gonna do a good job with netcode this time around (rollback system) but please keep in mind what is and what isn't possible to avoid big disappointments.
 
Last edited:


I would really like it if they took some ideas from how the XRD lobbies are structured, 8 players to a lobby with the ability to either find up to 4 stations to play in 1 lobby, or all 8 could cram one setup and take turns while spectating matches, if u choose to solely spectate u could do that too, and ur turn would be skipped automatically.

What I don't like about king of the hill in MK9 is you really didn't have the option to chat it up if u didn't have a mic, nor could u select to automatically have ur turn skipped, same with injustice, these options are must have, for casual matches, and online tournament matches alike, no one wants to have to beat up a none moving player just to get to an active player, too much of a hassle, also in XRD it has an automatic 10 sec timer that triggers in the lobby if a player fails to start up a match because of AFK, that is also a big help.
 
#1. NETCODE. No excuses. We've got multiple examples of it working in this day and age, and not being able to do online fights for a damn in this day and age is just stupid. Absolutely, above all else, this.

Other stuff:

Better quality of life stuff(lobbies, spectating, whatever).

Better competitive stuff(Double blind pick, 2/3 with winner lock rules, etc).

Tournament mode. Both for large online tournaments and easy setup smaller ones for smaller groups.
 

Shania Twain

That Don't Impress Me Much
like everyone has said. NETCODE. all the extra stuff is fine but if the game constantly desyncs, discons, or "this game session is no longer available" always happens then what good is spectating or a lobby?
 

d3v

SRK
Oh, I actually read that article last night after reading this thread!

I'd argue that developers and gamers alike are much too concerned about ping compared to, say, throughput. These days there are so many devices on a home network at the same time, and with houses full of multiple Netflix watchers, streamers, and/or consoles still connecting to the internet over 802.11b, I'd say that reliability and throughput are just as big of an issue these days. IMO the biggest potential gains from client-server come from the fact that devs can assume that the server is more reliable than the clients that connect to it.

For example, in P2P you really have no choice but to process a constant stream of input and output, whereas a server can optimize what information gets sent to whom based on what the server knows each client has. My original thought was for each client to send inputs to the server and have the server send back state diffs (instead of raw inputs) for the client to reconcile with its own state in a single operation. Also, because we designate the server's state as authoritative, instead of syncing 3 different states, we're actually just composing a centralized state on the server then asynchronously updating the two client states. The benefit to this is that we don't have to deal with the hang time of figuring out which node is lagging behind and how to reconcile it.

IMO the ping issue is not as big of a deal if you have regional servers. Yes, two east coast players playing on a California server would be a lot laggier than P2P, but a New Yorker playing someone from California on a Chicago server has the potential to be just as fast or faster.

Let me know if any of this sounds like it would/wouldn't work in practice, though! It's quite possible that even with lots of optimization, client-server still ends up being slower.
The reason fighting game players are concerned with ping is due to input delay. The goal is to try as much as possible to hide the input delay and make the game feel as it it were offline. This is basically what GGPO/rollback netcode does since each game on the peers runs partially asynchronously from each other. After the fixed delay, they process the inputs without any sort of reply from the other peer, dealing with desync via rollbacks.

The problem with the model you propose is that the players are now, in practice playing a game that is on the server, not in front of them. You're essentially playing the game on the cloud and as has been demonstrated already, playing fighting games on the cloud sucks ass. Using a model that's similar to the much hated variable delay/no rollback/wait for states/confirmation from the other peer method.

Additionally, there's also the issue that you're now sending more data out since you're no longer just dealing with pure inputs. You're now having to send states for almost every frame, sending data such as x/y coordinates, specific animation frame of which move/animation, and maybe even statuses such as startup/active/recovery plus throw/strike/projectile invul, etc. in a very short amount of time.

Compare to pure inputs which just send the input and the frame from which it started, which is a very small amount of data and the game just processes the rest.

Of course, you could try just sending inputs but at that point, you're just doing rollback netcode with a server wherein you might as well just delete the server and do peer-to-peer.
 

Sutter Pain

Your mothers main.
Let us know when you come back to planet earth and actually learn about physics.

People have no idea about technical stuff... they just have big expectations (unrealistic) which most likely always lead to a big disappointment.

There is almost no way it gonna be better then KI. For simple reason you can only cheat physics that much. Assuming MK X is gonna use some sort of rollback system (as KI is) which isn't confirmed anywhere at this point, it will allow some latency mitigation but don't expect miracles.

You can't rollback "indefinitely", in reality around 100 - 120 ms latency is maximum you can correct with rollback system assuming game doesn't have faster moves then 6-8 frames. If you don't follow this rule then sometimes game will generate weird (wrong) results (like in KI after it was released).

Simple example: if you try to rollback higher latency then said above (with a game at 60 fps) it can lead to you winning on your screen and opponent winning on his screen. That can happen if finishing blow was a fast let's say 6 frames move. The rollback system won't have enough time to correct (sync) game state on the opponent side since by that time match will be already over on his screen with predicted move (not the actual one).

That's a very simplified example there is more to consider in reality (programming) but you should get the picture.

Just to be clear - i hope they gonna do a good job with netcode this time around (rollback system) but please keep in mind what is and what isn't possible to avoid big disappointments.
So your telling me I have to come back to earth and learn physics for thinking NRS has the resources to replicate or improve on something as good as KI's netcode with a version of their own? Or are you implying KI is the pinnacle of netcode and it is impossible to improve upon with that wall of text and jabs.

I really don't care about your programming\physics knowledge or your desire to sound smarter then others on a forum for expecting a product to perform equally if not better then a competitors.

I am glad we can both agree that we hope MKX has a good netcode ;)

Edit: In my OP I meant to say it should be on par with KI or better if that clears things up a bit and brings me down to earth :D
 
Last edited:

REDRUM

www.twitter.com/redrum26
I just care about being able to have a solid Fios-To-Fios + NY to NY connection. IGAU was good for me when I connected to other NYers with Fios. Actually even NY to Atlanta FIOS connections were pretty solid.
 

Immortal

Blind justice....
So your telling me I have out of this world expectations for thinking NRS has the resources to replicate or improve on something as good as KI's netcode with a version of their own? Or are you implying KI is the pinnacle of netcode and it is impossible to improve upon with that wall of text?

I really don't care about your programming\physics knowledge or your desire to sound smarter then others on a forum for expecting a product to perform equally if not better then a competitors.

I am glad we can both agree that we hope MKX has a good netcode ;)
To be honest you have no clue what resources NRS has or not (and what's more important allocation of it), you're just assuming big here, nothing more.

KI isn't the pinnacle of netcode it just uses the best method (rollback) of dealing with some latency. There is no better way atm, so yea you can expect at best something similar.

There is one big BUT, MK X was made based on modified UE 3 in all my years of working as a programmer i never, ever seen a rollback system implemented successfully in UE based game. MK 9 didn't have it, Injustice didn't have it, many others didn't have it. It's only fair to assume that MK X won't have it either. You don't have to posses knowledge about programming to see common logic here.

Sure, you can expect "better" overall from them, so do i. I just don't expect them to do better then DH with KI or any other game using rollback system, coz that for like 99% won't happen. That is all.
 

Vagrant

Noob
I expect online to be improved substantially.
If it isn't, I think it's a significant knock on the game and the developer.

New generation of consoles, two previous competitive fighting games to learn from, all the player feedback in the world....
No more excuses.

KI has shown how greatly a community can benefit from a competent online mode. SF4 has arguably shown that as well.
I want that for the NRS community. They deserve it imo.

Hopefully NRS delivers.
 
D

Deleted member 9158

Guest
If they borrow Killer Instinct's netcode they'd be fine. I've never had a laggy match ever.

Like seriously man it's flawless, considering how much shit goes on all at once sometimes. C-C-C-COMBO BREA---COUNTERBREAKER!!!! shadowcounter!!
 

Immortal

Blind justice....
I expect online to be improved substantially.
If it isn't, I think it's a significant knock on the game and the developer.

New generation of consoles, two previous competitive fighting games to learn from, all the player feedback in the world....
No more excuses.

KI has shown how greatly a community can benefit from a competent online mode. SF4 has arguably shown that as well.
I want that for the NRS community. They deserve it imo.

Hopefully NRS delivers.
I hope so too.

Thou people tend to forget MK games never was made with competitive scene as priority. I'm pretty sure that's the case with MK X too.

And ti be completely honest SF4 netcode isn't that great (it's not rollback based), nowhere near KI level.
 
Status
Not open for further replies.