RiskbreakerRiot RiskbreakerRiot

P2P unfair?

P2P unfair?

So I am not that familiar with the p2p connectivity in games, but it seems that every player has to connect to each player in the game. So I am guessing that if I live half way across the world, and I am trying to play with 7 US players, my ping will kill me. 

My internet connection is sorta slow, but it plays all multiplayer games just fine, even if they are across the world. 

So isn't p2p unfair for players who live outside the two main focus areas of Demigod- US (including Can) and EU?

I saw somewhere I believe where Frogboy said that they needed p2p because they require precise data transmission for this game. But dota (WC3) doesn't use p2p does it? MP over battle.net works perfectly. 

62,385 views 39 replies
Reply #26 Top

XSive_Death, spikes only, lasting 4-15 seconds, and then reverts back to normal for a few seconds, and then again, spike for 4-15 sec and so on. The spikes range from 500 to 1400+, while the game almost freezes for everyone. Four out of five matches i have this problem, so you see why it's driving me mad since it's the only game i have that does this online!

Sevenix, my connection is fine, see pic.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Reply #27 Top

The funny thing is I have less trouble in US games then in EU games. 200 ping isnt really a problem. In Europe most anyone has DSL with NAT, and the problem with that is you have to get the port forwarding right, which 90% of the people probably havent. The best way would be a tool that tests if you have done this right!

Reply #28 Top

I know what you're going through Dead Ghost, i'm suffering the exact same issue (sudden spikes causing a game freeze for 5-10 seconds before everything goes back to normal). At first i thought it was clearly a problem with the game...but i'm starting to consider my ISP might be the key fault (well, my ISP combined with the method of communication the game uses) as it happens not just with Demigod, but Dawn of War 2 aswell, which also uses a p2p system which i assume runs technically the same.

Its a shame because i no longer play now, its playable, sure...but not fair on everyone else to suffer because of me.

I'm talking to my ISP in a (probably futile) attempt to try and narrow down and sort out the problem.

EDIT: Speaking of Dawn of War 2...its by far the biggest problem with that game at the moment (the thread about it dwarf's everything else) and that games been around for over 2 months without any sort of fix. I have much more confidence in Stardock...but i wouldn't hold your breath.

Reply #29 Top

Oh well, at least now i know i'm not the only one with this problem...:(

I can talk to my ISP, but i don't know what to tell them, or what to look for. As i've said, my connection works fine (browsing, downloading, streaming, uploading, etc), this is the only game that i have this problem with. If Demigod was a client/server game, this issue would not exist, at least for me.

Reply #30 Top

p2p is very good if it works, i can play 300ms in demigod but in warcraft if it gets around 200+ms you get 1-2sec delay

Reply #31 Top

there's alot of wrong information in this thread. please go look at some of the posts from Frogboy explaining in more detail how the game's connectivity really works. 

Reply #32 Top

What other games have this sort of connection type?

You know, I can play practically every single game I attempted to play so far, and yet when I hit this game all of a sudden I have a bunch of problems with my internet that needs to be solved.

Is Sins like this? I was thinking about getting that game, too. But with the current situation with Demigod, it seems hardly worth it.

Reply #33 Top

Sins of a Solar Empire uses client-server hosting through Stardock servers. it also has a very small multiplayer community, something to be aware of if you're interested in multiplayer primarily.

 

the developer of Sins is Ironclad, and it is published by Stardock. 

 

I own the game, its fantastic. amazingly good single player experience. multiplayer can be tricky because the pacing of the game is not naturally well suited for it. average game can take 2 hours or more. 

 

don't be misinformed or make false conclusions that just because Demigod had issues at release that other Stardock products are similarly affected. they are not. 

Reply #34 Top

additionally, a short list of other high profile RTS games that use P2P connections:

 

Company of Heroes

Dawn of War 2

Warcraft 3 (the section of battle.net that WC3 uses is a hybrid p2p and client-server system)

Supreme Commander

 

 

p2p is basically the industry standard for RTS games. don't be misinformed. the problems Demigod has experienced were due to poor scalability on a particular piece of code (the NAT facilitator, if you care about specifics). it can be argued (and has been, succesfully, i might add) that Demigod should have had a BETTER p2p system but it is really foolish to suggest that there's anything inherently unusual or bad about a p2p system in its own right. 

 

 

Reply #35 Top

Quoting transitive, reply 9
 

p2p is basically the industry standard for RTS games. don't be misinformed. the problems Demigod has experienced were due to poor scalability on a particular piece of code (the NAT facilitator, if you care about specifics). it can be argued (and has been, succesfully, i might add) that Demigod should have had a BETTER p2p system but it is really foolish to suggest that there's anything inherently unusual or bad about a p2p system in its own right. 

 

Frogboy seems a nice guy and is obviously dedicated to working things out, but you are just regurgitating what you read in his posts and acting like an authority on the subject based on loose reasoning.

P2P is not an industry standard.  Any software engineer worth his salt will tell you first and foremost that the solution you use for a problem is dependant on your specific needs.  If you try to shoehorn your needs into a specific design, you wind up with a mess.  This here is a mess.

There are some really good reasons to consider using P2P.  However, I would have to disagree with the primary reason Frogboy has given - that being Demigod requires accuracy and that P2P is the way to go for attaining it.  From obersvation, the P2P system has been used in place of, say, client side prediction.  Client side prediction is a nasty subject when dealing with network issues: a fairly golden rule is that you can never trust what the client says, which is why even games with client side prediction check against the server at some point (assuming a reasonably well made game).

Probably a big concern with Demigod using a client/server set up is that it would seem to put a lot of control with whomever hosts.  This is generally typical, but the sort of game play Demigod has should result in neutrality - that is, no player should be advantaged.  If one person is the server, then that person could theoretically tamper.  As I said, you cannot trust the client, and if the server and client is one in the same, there can be no trust.

Some notable things we see with this P2P system: many more connections need to be maintained in a game.  A server/client scenario would see 9 connections in a 5vs5 player game: 1 for each client connected to the server.  These connections as mentioned here could be considered the typical two-way streets - each connection lets the client and server communicate with each other.  Hence, because one person is the server, only the nine clients need connections.

For a P2P system, each person connects to all other people.  For a 5vs5 player game, each person is connected to 9 other people.  This results in 45 connections being made.

P2P system basically represents a complete graph; the number of edges between nodes (in our case, connections between people) is given by (N * (N+1)) / 2 where N is the number of people in this case.  A 6 person game is 15 connections.

My point here is that the number of connections grows greatly with the more people there are.  In a 5vs5 each person has 9 connections.  That by itself isn't much, but 45 connections for the entire game?  That is not insignificant.  45 connections established where any one of them can and will cause problems for the entire game.  Packet loss to an ISP data center isn't much worry when you're dealing with 9 routes across the globe, such as with a server/client model.  45 routes, however, should worry anybody that claims they implemented the system to maintain accuracy.  This system is begging to have dropped packets everywhere.

And then we have the byproduct issues, most notably stemming from simspeed.  Or rather, if a person's computer is too slow, it will be slow in responding to packet updates from the other peers.  By design, this means each person's view will not update until the slow person accepts and responds to the updates.  Hence, by design, we get the priveldge of knowing very nearly what it is like to play on a low end system regardless of our own system's capability.

Hind sight might be 20/20, or maybe Frogboy's claims are correct and that the NAT facilitator is the sole blame.  Given that the problems go beyond simply establishing the connections, however, it should be obvious that there is more to worry about.

Now, I mentioned that we cannot trust a server that is also a client.  I maintain this.  Demigod clearly has handling in place to verify the data that it recieves from each of its peers.  My change would be this: a server/client model based on top of the P2P system.

One person, the host, is the server.  Each person will connect only to the host.  The host will push the updates about the whole game to each client.  The P2P part of the system that verifies the data will still be in place, however.  So each client will verify the state of the data it is given from the server; likewise the server will verify data it is sent.  This still makes it hard to cheat since the clients still have a say about what is valid, but it helps decrease the other problems - not as many network connections need to be established and potentially broken.  Each client in a game need only be able to connect to one person in order for the game to play.  These two issues alone would help tremendously.

This setup, essentially, could give the best of both worlds.

This is also theorycraft - I have never used Raknet, and so I cannot claim to know if such a change would be trivial or complicated.  What I do know is that it would have benefits.  What I do know is that the network issues need to be solved.  What I do know is that no developer wants to scrap all of the work they put in - and this would allow them to keep a large chunk of their work.

 

Reply #36 Top

Quoting Sevenix, reply 2
Actually P2P makes it better, Since you connect directly to them and dont have to take the sidepath along a server that is located at a third location in the world.


 YOU FAIL!

 

EDIT: Also, the guy above me is absolutely right.

Reply #37 Top

so, Lumifly, you just argued for a better p2p system. 

 

how then have i said anything objectionable? have i merely aped Frogboy or is it the case that Frogboy was correct? 

 

when i say something is an industry standard i mean exactly what it sounds like. there are a large number of high profile games that also use some form of p2p system. that is a statement of fact. i'm not claiming authority i'm just stating facts. 

 

Frogboy's claim about the NAT facilitator was simply that off the shelf the RakNet code was using an O(n^2) algorithm which would lead to a high frequency of time-outs occuring in the matchmaking system because backlogs would accumulate during the match-making process. that was the single most broken piece of code and the main thing that had to be fixed. the main thing, not the only thing. 

 

and hey, you said it yourself, there are lots of good reasons to consider using a p2p system. you know them better than I do. i'm just a CS student, you're apparently already a working professional. so why then do your comments (helpful as they are) need to be presented as a rebuttal to anything i've said? why disparage me as a premise to your own discussion? 

Reply #38 Top

Quoting transitive, reply 9
Warcraft 3 (the section of battle.net that WC3 uses is a hybrid p2p and client-server system)

 

Untrue. It says that on the site but this has been discussed on these forums to nauseating ends. They might call it a hybrid, they can call it anything they want. But at the end of the day its server to client.

Reply #39 Top

For a P2P system, each person connects to all other people.  For a 5vs5 player game, each person is connected to 9 other people.  This results in 45 connections being made.

P2P system basically represents a complete graph; the number of edges between nodes (in our case, connections between people) is given by (N * (N+1)) / 2 where N is the number of people in this case.  A 6 person game is 15 connections.

My point here is that the number of connections grows greatly with the more people there are.  In a 5vs5 each person has 9 connections.  That by itself isn't much, but 45 connections for the entire game?  That is not insignificant.  45 connections established where any one of them can and will cause problems for the entire game.  Packet loss to an ISP data center isn't much worry when you're dealing with 9 routes across the globe, such as with a server/client model.  45 routes, however, should worry anybody that claims they implemented the system to maintain accuracy.  This system is begging to have dropped packets everywhere.

And then we have the byproduct issues, most notably stemming from simspeed.  Or rather, if a person's computer is too slow, it will be slow in responding to packet updates from the other peers.  By design, this means each person's view will not update until the slow person accepts and responds to the updates.  Hence, by design, we get the priveldge of knowing very nearly what it is like to play on a low end system regardless of our own system's capability.

This is really the heart of the matter.  The number of connections isn't linear the more people you throw into the game, greatly increasing the chances that one of them goes wrong. (And it only takes one...)  Additionally, the sim speed issue drags everyone down to the level of the crappiest person running the game.  This is enraging for someone who actually paid (and not even that much these days) to have the game run WELL on their system.

With client/server there is a risk you take by laying so much on the server (if it is the person hosting the game for example).  However if the person who is hosting can handle it and knows what they're doing (good connection, etc) then the game will run so much better.  Why do other multiplayer games like FPS' use dedicated servers?  Because it grants amazing stability when a server is handling everything properly.

Both of these issues could have been predicted before a single line of code was written.  They're very costly disadvantages of P2P and we have been suffering their wrath as we play Demigod online.