Incoming hilarity: abaraba is back, and this time he's fixated on P2P networking!

Started by
81 comments, last by eq 14 years, 7 months ago
Quote:
Quote:
Original post by Gaffer
this statement is incorrect. there are many documents discussing the quake, counterstrike and unreal networking models. each of them discuss why client/server is a more attractive choice than peer-to-peer.



There is no such document and I challenge you to prove me wrong. Do you accept the challenge, mate?

And google presents (in 0.29sec no less)

how and why quake's model works:
http://www.runequake.com/hoh/Quake.pdf

discussion of many of the pitfalls of P2P quake and how to help alleviate them. But notice how they skirt around the bandwidth problem by limiting the data set. The same techniques could apply to client/server.
http://cseweb.ucsd.edu/~fuyeda/papers/iptps2007.pdf

More discussion of P2P and the extremes you have to go to in order to make it work for clients with vastly different hardware and networks.
http://prisms.cs.umass.edu/brian/pubs/stjohn.nossdav.2005.pdf

Quote:
How many games have dedicated servers, 2%? Regardless of time P2P will always be able to make it more practical for average users to get together in greater numbers.


Of the games i have:
TF2, MW4, L4D, CS Source, HL2, Quake 3, UT2K4, IL2, Descent Freespace...

hmmm... looks like I didn't find a SINGLE game that has multiplayer, uses ClientServer, and doesn't provide an .exe i can run/remote host as a dedicated server. Not saying they don't exist, but that is a lot of big name games I listed, and they all provide that functionality.

RTS games are usually P2P, so they can all run without hosted servers. (except SupCom, cause they tied that to GPGNet for some stupid reason)

And again, I'm going to stress. Without a dedicated server (pirate bay, battlenet, gpgnet, steam) how many people do you expect to play a game together? It isn't a magical "P2P! GO!", people still need a place to gather to play the game. If you as a company have to provide a matchmaking server, and the gameplay model plays better(lower lag, less cheating, etc) on C/S why not setup that way to start with and save yourself the hassle of making P2P work. Read the papers above, P2P takes a lot more work just to get it to behave close to the QoS level C/S setups have.


Finally, from a developer standpoint. There are deadlines. Imagine 6 months to make this P2P or C/S game model work, with a publisher breathing down your neck, quoting your minimum specs, and quoting you support costs for features if they are to be expected to host anything (server OR just matchmaking server). Now, are you going to go P2P and risk all the problems it has? (have you read how hard it is to get BitTorrent working? Network problems abound.) Or just go with a client server, pay hosting costs, but save on Support line costs? Very few games(ie only PC, and some console live games) are willing to provide devs with support money for patches and the like. So again, something that is risky? or something that works out of the box and you don't have to risk wasting money patching as often?
IF there was some "P2P Networking Middleware!(tm)" company then things would be different, but there isn't one. On the other hand there are tonnes of dedicated server hosting sites a company can choose to rent from.

Quote:
Why do you imagine peers can not predict actions ahead? It's nothing more but velocity extrapolation. Authoritative server is not necessary to make interaction fair.


Ah, but it is. Because in the face of cheaters and packet loss, not every client sees the same view of the game. You need arbatration. Either you waste bandwidth sending data so the clients can choose to agree on the world state, or you have a dedicated server that dictates the world state

Quote:
Read what? There is no such document.

I expect you to give me that link you told me to read upon, so I can read it.

Learn to google. Tonnes of CS majors go onto grad school and have to publish papers on this type of crap all the time. Also, check out some of the networking middleware that is available (like eNet or RakNet). They also discuss quite in depth most of what you are talking about.

It is a bad attitude to demand resources that you aren't willing to look for. I have yet to see you provide any source documents of any academic quality to back up your claims. That is why you keep getting banned. Arguments aren't about "you are wrong I'm right", they are about "here is proof" "rebuttal proof". Scientific method and all. Everyone else is being through and rebutting points categorically down each of your posts. Why not follow in suit? I note you picked a SINGLE point on my list to rebutt/accept. Sounds antagonistic, and like you are skirting the issues instead of attempting to understand, accept, or properly attempt to educate us on how we are wrong.

Quote:
If you pass only input then you likely need determinism, but if you pass all the data then you don't,

And there's the rub. What type of game are you making? an input based twich game(FPS) or a turn-based/lockstep game(RTS)

[Edited by - KulSeran on September 6, 2009 6:45:11 AM]
Advertisement
Quote:Original post by Andrew F Marcus
You are describing two identical techniques, equally implemented in either case. Server running in the past 100ms is the same thing as issuing commands 100ms for the future. The difference is only if you gonna interpolate this lag with client-side predictions or simply let the user experience the latency.


No, there is a huge difference.
1 Model provides real-time feedback to use input by predicting the actions locally.
The other model introduces a delay in the user's actions to hide network fluctuations.
The difference is in the speed of feedback from key presses.

Quote:Original post by Andrew F Marcus
The point is very simple and not involving any grails - "Stickman" is possible, 5KBps upload with 50 players over P2P. That's all. It's a fact so it's not incorrect. Predicting the possibility of such game, while everyone is saying it's impossible, does not make it naive, but visionary.

A single game is not representative of all games ever made.
Like I stated in my post, it depends on genre. It's all about user expectations and how much lag they're willing to tolerate.
An RTS or RPG can quite often get away with several 100 ms of input lag. An FPS absolutely can not.

Quote:Original post by Andrew F Marcus
Read what? There is no such document.

http://unreal.epicgames.com/Network.htm
http://trac.bookofhook.com/bookofhook/trac.cgi/wiki/Quake3Networking
http://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking
Few of the many documents on networking in a real-time FPS game.
I had no trouble finding them using Google at all.

Quote:Original post by Andrew F Marcus
Not true, all the same tricks work all the same.

From this I can only conclude you've never designed or implemented a networking model.
I have. There are very distinct differences in tricks used in C/S and P2P.
P2P with input sharing causes all clients to run a full simulation of the game.
Client/server with authoritative server will turn clients into dumb viewers who only run a partial simulation for the local player to hide latency.


Quote:Original post by Andrew F Marcus
Why do you imagine peers can not predict actions ahead? It's nothing more but velocity extrapolation. Authoritative server is not necessary to make interaction fair.

No, you can't make predictions in a P2P input sharing model.
Since only input is shared the clients need to run fully deterministic to remain synchronized.
Note the words "input sharing". There are no object positions being shared, only key presses.


Quote:Original post by Andrew F Marcus
How did you come up with that? If you pass only input then you likely need determinism, but if you pass all the data then you don't, same as with a server approach. Go play Stickamn.

A data sharing model in P2P is highly prone to hacking and cheats.
Additionally it introduces several problems with interactions and timings.
Again, I base this on real life experience. Not assumptions I made by briefly looking at various other games.

Quote:Original post by Andrew F Marcus
False. It is not about P2P, it's about passing input and determinism. If you wanted to make Age of Empires with C/S model you would need to do exactly the same thing.

It's funny you should mention Age of Empires. That game will freeze all clients when one of the clients freezes sufficiently.
The reason against using the input sharing model with client/server is the additional latency introduced, this is a much bigger factor than bandwidth usage.

Quote:Original post by Andrew F Marcus
to give me that link you told me to read upon, so I can read it.

They're at the top of the post.
Please educate yourself before making these outrageous claims.
Your posts make it very clear you have no practical experience in designing or implementing network games.
Your statements and theories are out of sync with the real world.

[Edited by - Azgur on September 6, 2009 6:48:29 AM]
Remco van Oosterhout, game programmer.
My posts are my own and don't reflect the opinion of my employer.
Quote:Original post by KulSeran
And google presents (in 0.29sec no less)



Thank you, my friend. I don't think I need to say anything anymore, from now on I'll just quote these links. Are you on my side or were you just lazy to actually read those papers?


Scaling Peer-to-Peer Games in Low-Bandwidth Environments
http://cseweb.ucsd.edu/~fuyeda/papers/iptps2007.pdf
Jeffrey Pang, Carnegie Mellon University
Frank Uyeda, U. C. San Diego
Jacob R. Lorch, Microsoft Research



...For this reason, we are developing a new architecture,
called Donnybrook, to enable large-scale P2P games even
in environments with highly constrained bandwidth.

To evaluate our techniques, we modify Quake III,
a popular first-person shooter (FPS) game, to run on
Donnybrook.


To test
these techniques, we implement them and conduct
a user study that evaluates the resulting game. We
find that our techniques make a game played with
low bandwidth significantly more fun than existing
techniques, and nearly as much fun as one played
on a LAN. Thus, they enable an order of magnitude
more players than existing techniques.



We present the results of a large user study,
which show that Donnybrook substantially increases the
enjoyment of P2P Quake III in a low-bandwidth environment.
WOW. You took entirely the wrong take on those papers. I posted those to educate you on the pitfalls of P2P, and how much more work it is to get P2P working vs the standard client server approach. They even document how much more bandwidth the P2P method takes vs C/S. I read each of those end to end before posting them, in the hopes of finding documents that would help you understand what makes P2P the worse of the two solutions.

That said. You were looking for data to prove or disprove P2P is "better". Do your research and you will find there IS research being done in both the C/S and P2P directions. Agreed the "donybrook" method can make P2P work better than P2P currently does, But it is NOT a document comparing C/S directly to P2P. But a comparison of different techniques of P2P vs other P2P techniques.

Quote:
more fun than existing
techniques, and nearly as much fun as one played
on a LAN. Thus, they enable an order of magnitude
more players than existing techniques.

They are only comparing P2P techiques vs other P2P techiques. NOT C/S vs P2P.



-- sorry for all the edits --
Quote:Original post by KulSeran
WOW. You took entirely the wrong take on those papers. I posted those to educate you on the pitfalls of P2P, and how much more work it is to get P2P working vs the standard client server approach.


I'm sorry if you find it confusing, but there are no pitfalls in P2P other than usual latency and sync issues, just like with the server approach. Do you realize they made their P2P by running Quake server on each peer? There is no more work involved, it's the one and the same thing.


Quote:Original post by KulSeran
They even document how much more bandwidth the P2P method takes vs C/S.


Hey, you said they were not comparing it with C/S. You must be talking about some other paper, this one is actually about Low-Bandwidth Environments, no server can run here.


Quote:Original post by KulSeran
I read each of those end to end before posting them, in the hopes of finding documents that would help you understand what makes P2P the worse of the two solutions.


Worse? What are you referring to, this:

Online multiplayer games have become an important
part of the computing landscape. There is a growing
desire to serve these games using the machines of
participants themselves rather than with dedicated
servers.

Using participant machines reduces subscription costs,
eliminates dependency on centralized infrastructure, and
automatically scales to an arbitrary number of clients.




Quote:Original post by KulSeran
That said. You were looking for data to prove or disprove P2P is "better". Do your research and you will find there IS research being done in both the C/S and P2P directions.

I can't find anything, so if you have more links to share, please do.

Quote:Original post by KulSeran
Agreed the "donybrook" method can make P2P work better than P2P currently does, But it is NOT a document comparing C/S directly to P2P. But a comparison of different techniques of P2P vs other P2P techniques.


Are you aware they were measuring "fun". The test subject were all gamers, Quake players, they did not even know the game was running in P2P. So when these guys tell you game was nearly as much fun as one played over LAN, what do you make of it?

P2P Quake had terrible problems?
P2P Quake played worse than normal Quake?
P2P Quake played better than normal Quake?
Andrew F Marcus, please answer me this:
Do you have any personal experience to back up these claims?
Have you prototyped different approaches and witnessed the pro's and con's first hand?

A large amount of the people providing counter arguments to your claims actually have experience in designing and implementing network models.
Articles (especially if not your own) and theories are not a substitute for real life experiences.
Remco van Oosterhout, game programmer.
My posts are my own and don't reflect the opinion of my employer.
Come on guys, the OP should have made it perfectly clear not to talk to this moron.
SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.
Quote:In a P2P model you're required to run the game deterministically (or face a really really huge mess) which means you can't hide latency with the same trick.
P2P games often can't simulate the next step without having received input from all peers.
This results in 1 client being able to freeze all other clients.
This is considered acceptable in RTS games, but completely unacceptable in FPS games.


this is a very valid point.

consider what would happen if abaraba took age of empires networking model and scaled it up to 250 players...

if any one of those 250 players experienced network delays, all other players in the game would have to stop and wait for them.

as the number of players increases the probability of any player having network issues at any time increases too - eventually at some point the game would be generally unplayable as all players get stuck in a feedback loop waiting for the most lagged player.

consider also that a deterministic lockstep model would also generally require all 250 players to join into a lobby before starting the game. you cannot support late joins. consider how long it would take to get 250 players together before you could start the game - it takes long enough to get four together in left 4 dead!

[Edited by - Gaffer on September 6, 2009 4:41:31 PM]
Quote:Original post by Promit
Come on guys, the OP should have made it perfectly clear not to talk to this moron.


absolutely.

and now, i think it's only fitting to say goodbye to abaraba - and to thank him for all the good times we've had together

">


so long abaraba, until next time!
I've been away from gamedev's network section for a while now.
This topic is really funny, I can't believe there is a discussion
about s/c vs p2p! It is a funny 3 page read though, thanks :)

This topic is closed to new replies.

Advertisement