Distributed MMORPG technology (just discussion about, not part of game project!)

Started by Kerame Pxel Nume, June 12, 2010, 07:06:35 AM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

Kerame Pxel Nume

You guys are forgetting the overhead of each packet. Each and every IPv4 packet is at least 160 bits = 20 octets long (in network terminology we speak of octets, not bytes). IPv6 packets are even longer, it has at least 288 bits = 36 octets. And this is without any protocol (TCP, UDP, SCTP, DCCP or whatever) headers overhead.

However, as long as the total size of a packet is below the path MTU the path latency is the same, no matter how small the packet is. It's always one packet at a time and most time is spent at each with routing process, not the data transfer. Of course the size of the packet will determine, how long it takes to be transmitted. But for latency packet fragmentation is far worse, than big packets.

Normally you want the payload being substantially larger, than the header, and the path MTU for most parts of the internet is something around at least 1000 octets; as long as you stay below the path MTU packet size has only a low order impact on latency.

Call me crazy, but even in low latency environments I prefer network protocols, which don't have a fixed binary format. My choices would be EBML or Yaml containers for the data, with adaptive full payload compression i.e. try each of a set of user selectable compression methods PLAIN, LZO, DEFLATE, BZIP2, and LZMA and then sending the smallest result of each try. Due to the distributed approach each and every packet would be cryptographically signed (that is, because in a distributed network MITM could cheat on others, by manipulating their packets).

Sіr. Ηaxalot

Do not forget to account for what happens if a client disconnects in the middle of the game. Host migration is annoying, but it works. And for an MMORPG, standard dedicated server systems aren't that effective.

Tsamsiyu92

RPGs need quite hefty servers, host migration and P2P will allow hackers to have fun easily. And it would be ineffective. Big servers located several places on every continent is needed for an MMORPG. It would be too costy, so a little community like us should not try to make a big MMORPG.

There is a reasson some MMORPGs have monthly fees.

bommel

Quote from: Tsamsiyu92 on July 15, 2010, 07:37:50 AM
RPGs need quite hefty servers, host migration and P2P will allow hackers to have fun easily. And it would be ineffective. Big servers located several places on every continent is needed for an MMORPG. It would be too costy, so a little community like us should not try to make a big MMORPG.

There is a reasson some MMORPGs have monthly fees.
Yes, that is the point. We should focus on single player or coop games. For self-hosted games we just need announcement servers (i. e. a master server) and that could be possible to fund

Kerame Pxel Nume

Quote from: Tsamsiyu92 on July 15, 2010, 07:37:50 AM
RPGs need quite hefty servers, host migration and P2P will allow hackers to have fun easily. And it would be ineffective. Big servers located several places on every continent is needed for an MMORPG. It would be too costy, so a little community like us should not try to make a big MMORPG.

There is a reasson some MMORPGs have monthly fees.
If you use strong cryptography and apropriate algorithms, distributed systems are very robust. Just have a look on Trackerless BitTorrent: It's completely distributed, yet it is impossible for an attacker to submit manipulated malicious content in request to a preexisting magnet URL (unless someone breaks SHA1).

Currently I'm swamped by exams, so my Pandora engine project is on hold (will resume development mid august). Even if not targeted for a certain game I really like the ideas I had for this and think I should pursue them.

Oh and BTW, you won't even need to configure port forwardings or similar stuff if you're behind a NAT-router, thanks to http://samy.pl/pwnat/

Tsamsiyu92

Quote from: Kerame Pxel Nume on July 15, 2010, 11:40:22 AM
Oh and BTW, you won't even need to configure port forwardings or similar stuff if you're behind a NAT-router, thanks to http://samy.pl/pwnat/

Thank you for that one, looks useful.

Jameso