P2P justification?

Servers cost money. Bandwidth costs money. Lots of it.

True - but by comparison it's the staff / admins that cost the most.

A team of admins / NW staff providing 24x7x365 coverage (or near to) would easily cost more than the price of a 1Gb leased line*.

--

The reason for P2P IMO was down to FD announcing during the KS that there would not be a monthly subscription - buy once, play forever (like D3 for example). To help cut the costs they opted for a P2P model which would mean the servers at the Amazon cloud would be lightweight and therefore cost less. By using rental servers they can also lower the costs of needing fewer support staff (mainly developers rather than systems engineers) Lower operational costs means less units of ED need to be sold to cover it meaning more profits for the shareholders.



(*1Gb line @ 80% load would support around 15K players simultaneously assuming 50Kb/s average - that would be about £7-10K pm)
 
Last edited:
Well, one of the advantages of P2P is you don't get the "lag" (that isn't really the right word for it) you sometimes get with client/server. You know when playing an FPS and you get shot while you thought you were in cover? That's a client/server issue, where your device hasn't had time to tell other player's devices that you are in fact in cover, because the message has to go through the server first, whereas with P2P this isn't the case.
EDIT: Citation needed :p
 
Last edited:
Well, one of the advantages of P2P is you don't get the "lag" (that isn't really the right word for it) you sometimes get with client/server. You know when playing an FPS and you get shot while you thought you were in cover? That's a client/server issue, where your device hasn't had time to tell other player's devices that you are in fact in cover, because the message has to go through the server first, whereas with P2P this isn't the case.
EDIT: Citation needed :p

Yep, stutter is here for that! :p
 
Look up some Free 2 Play games that use servers, doesn't appear like it costs them that much. Tribes: Ascend has very little active players, but the official servers are still running, lots of them. You can join any of them, but most have 0 players. Why would a company still run them if they costing that much? Something isn't right here.

Or take Dirty Bomb. Free 2 Play too, lots of servers, lots of players.

E:D on the other hand sells at $50. My conclusion that it ins't about server costs, it's about the limitations of the current engine.
 
Servers cost money. Bandwidth costs money. Lots of it.

Using uPnP, which is RPC over XML over HTTP, is hardly the choice of someone concerned about bandwidth. It's the choice of someone clueless about network programming.

A box that simply multiplexes streams can handle a gigantic load; they exist all over the place and you generally know them as "firewalls" and "load balancers" I won't say 'any idiot can write one' but I have personally coded two. It's not hard. It just requires some basic experience with network programming.
 
FYI a 1 Gbps line in the US, assuming it's just a dedicated internet access line (Fiber) would be about $3,500 per month (I price out internet/MPLS services as my job).

Chances are they would need around 3-4 of these pipes in various parts of the world, plus maybe one for D/R. That's a big chunk of change per month. Not including IT staff, LAN hardware, installation, etc.
 
Well, one of the advantages of P2P is you don't get the "lag" (that isn't really the right word for it) you sometimes get with client/server.

Not true. You actually have a vastly worse problem because with P2P you have to worry more about synchronization. If you're server-centric, things "happen" when they reach the server, and they are implicitly serialized. In P2P things happen, when? (example: my client gets a message that I've suffered damage. my cheat-layer triggers my SCB, then allows the damage message through. it is impossible to tell whether I just had perfect timing on the button or if I am cheating)

Here's another hint: in a server-centric model you can tell when one of the clients has disconnected - whether it's "combat logging" or network error. You can also tell if there are intermittent bandwidth problems. That opens up a host of new possibilities such as gracefully dropping someone out of an instance if everyone else in a dogfight has 11ms packet round-trip times and one player has 110ms RTTs. You can tell the sync state of a fight. uPnP also uses UDP (which is really stupid) so as to guarantee that there's no possible way of detecting if someone has disconnected or if they are actually getting any traffic or if traffic is getting discarded due to load at an intermediate point.

Bandwidth and performance can have absolutely nothing to do with the problem. Nobody who cares about bandwidth or performance would use uPnP for anything. That's remote procedure calls encoded in SOAP, which is XML over HTTP - talk about overhead!! I'd be surprised if the messaging overhead from all that glarp weren't more than 100% of the message size (especially with small messages like pewpewpew and location/heading/etc)

uPnP also has some gratuitous built-in limitations on the number of connections possible. Rather than thousands, Microsoft cleverly limits the number of connections to around a dozen. Because Microsoft is the god of bad networking protocols.

One big advantage of using uPnP, other than that it breaks constantly when it encounters firewalls, is that it leaves your endpoint open to hundreds of denial of service attacks. That sure is some great networking choice, there, FD!!!!

Ancient games like X-wing VS Tie Fighter, or early versions of Unreal Tournament got this right: you pick a system that's willing to "host" the game and use it as the multiplexing node. This was, what, 1997 or so? FD just didn't do their homework and used the choice of least resistance, which happened to be about the worst choice they could have used. The only thing I could think of that would have been worse would have been to use Google Spreadsheets as a rendezvous/server architecture. That would have been more secure, actually, and the overhead would only be about 3x as bad as uPnP... And that's saying something.

Edit: I just did a bit of back of the envelope and using google docs wouldn't be substantially more inefficient than using XML/SOAP over HTTP like uPnP does. Incredibly disgusting coding, FD!
 
Last edited:
FD are hardly broke :D

I don't think too many people realise the actual cost of running servers and handling data. Here's something to give a general idea: https://blog.cloudflare.com/the-relative-cost-of-bandwidth-around-the-world/

That's good info there. So basically it sounds like the P2P provides faster transit times and decreases latency and at the same time keeps cost down (about 50% less in most areas). The lower costs help keep the game subscription free I am sure. +1 for the link. Thanks.
 
Was it not something about not implementing game models like subscription or micro transactions (or pay to win) and thus not having a stable income after game purchase that made them opt out server costs?
Edit: ninja'd ;) (or, actually, not reading posts...)
 
Last edited:
Thing is, UPnP offers the advantage of "ease" which helps your average player at home to get the game running with little effort on their part. Many people don't know what a router or gateway is, I've been asked by people to fix their "Google box" when they can't get online.

FD could have implemented networking in many different ways, some much more efficient than others but a complete nightmare for the average person to set up. All in all, I think they've done pretty well, considering just how much of a mess the general internet is.
 
<snip>

Nobody who cares about bandwidth or performance would use uPnP for anything. That's remote procedure calls encoded in SOAP, which is XML over HTTP - talk about overhead!! I'd be surprised if the messaging overhead from all that glarp weren't more than 100% of the message size (especially with small messages like pewpewpew and location/heading/etc)

<snip>

Edit: I just did a bit of back of the envelope and using google docs wouldn't be substantially more inefficient than using XML/SOAP over HTTP like uPnP does. Incredibly disgusting coding, FD!

Sorry, you've gone off on a wild tangent about "using" uPnP... as if something could "use" the uPnP mechanism for actual data transfer itself between the clients.

That is like saying "telephones are a useless form of communication because all you have are the digits 0-9 to work with". :)


Or are you totally tongue in cheek here, and I've fallen for it like a noob? ;)
 
What are you talking about, Asp Explorer? A choice between client-server and P2P isn't something that affect what the average person has to setup at their homes. Furthermore there are thousands of other MP games out there. If an average player is able to play any them, then what's the problem?
 
Back
Top Bottom