|What do you mean - minimum? |
|Peer upload cost: 254 *(28+5)bytes = 8,382 bytes |
Server upload cost: 255 *1500bytes = 382,500 bytes
The difference remains huge.
Yes, it does.
P2P upload: 8,386 bytes.
P2P download: 8,382 bytes.
S/C client upload: 33 bytes.
S/C client download: 1500 bytes.
Next, remember that this is *one single update*. You need 10-30 *per second*.
Now calculate the above numbers, taking into consideration payload merging, for WoW, or 3000 users per shard.
Then take into consideration that each user pays $15, and that each server is on backbone, with multiple gigabit connections.
If all you want to do is a little multiplayer game for your friends, then P2P will "work". If you plan on running a business, think again.
Edit, part II, The Heavy Cannons
So far, we have only been sending payload in raw form. But we have means of reducing it via compression.
Let's have a standard zlib compressor, which reduces the size of payload by 40%. UDP header cannot be compressed.
When sending 5 bytes, we reduce that to 3.
P2P, both directions, : 254 *(28+3)bytes = 7,874 bytes
What about server? Remember that we can compress *entire* payload, which in our case is all of 255 individual messages.
Server upload cost: 255 *(28+254*3) bytes = 201,450 bytes.
Now we apply this to real case. 10 updates per second.
P2P, both directions, 7,874 bytes * 10 * 8 = 629920 bits per second. While this is not horrible, 630kbits is more than upload of most users. It definitely doesn't work over dial-up.
S/C, client upload: 31 * 10 * 8 = 2480 bits per second.
S/C, client download: (28+254*3)*10*8 = 63200 bits per second.
In S/C model, user could just barely use V.92 USR dial-up modem, if only compression were slightly better (56kbits per second)
What about server:
UL: 255*(28+254*3)*10*8 = 16,116,000 bits per second.
DL: 255 * 2480 bits per second = 632,400 bits per second
Big numbers... But do they matter?
DL rate is same as DL rate of P2P model.
However, upload rate is much higher, but almost close enough to be hosted on a 10Mbit connection.
Now let's set what we would need in each case:
P2P: 255 users with 1Mbit upload, 1Mbit download connections
S/C: 254 users with just a little bit more than dial-up
S/C: one client with 20Mbit upload, 1Mbit download
Experience shows, that it's easier to find one player with very good connection and 254 users with really poor connections, than it is to find 255 users with decent connections.
And, despite the title - these aren't the biggest cannons. Then there is merging of state on server, removal of redundant messages, area of interest management, update prioritization, etc....
I'm curious, does everyone in this thread have 1Mbit upload connection? Mine is 8/2, but various bandwidth meter statistics say this ranks in top 10%, based on world-wide metrics. Then again, I can easily get 20/20 for just a bit more, or even 100/100 fiber for same price.
Is everyone in same position? Can you scale up your connection at next to no cost to symmetric fiber? Can your 255 friends too?[Edited by - Antheus on September 5, 2009 9:22:06 AM]