just_2swift
MK1 is the best MK period.
Simple. Just add Hsu hao.
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.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.
The thing you have to think about is ping times and input delay.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?
Oh, I actually read that article last night after reading this thread!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/
Let us know when you come back to planet earth and actually learn about physics.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.
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.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.
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.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.
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.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
AmenIA) Can we please stop tagging colt on anything involving "code".
I hope so too.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.