Advertisement

Open source p2p MMORPG - feasible?

Started by April 12, 2003 05:02 PM
28 comments, last by Vodex 21 years, 8 months ago
quote: Original post by Vodex
Consider eMule, a file sharing app that typical broadband users have 1000 connections to other users,


Since when? True, eMule users maintain a download queue with which other users register to wait on files, but even a client with ten thousand users on its queue surely does not have ten thousand active connections. The scheme is very much touch-and-go; querying users request to be added to the queue and check in only periodically to retrieve their current position and other information. If they don''t check in after a set amount of time, the client removes them from its queue.

quote:
dynamically reading, writing, and tracking upload & download process of hundreds or maybe thousands of shared files.


Again, a little exaggerated. eMule clients are only informed of the upload and download processes of other users when those users connect to a client to request a queue position, at the start of uploads, and other discrete events. There is no open connection designed specifically to continuously exchange progress information; even two clients on the end of an active transfer don''t do this.

quote:
Yet it has no noticeable performance hit & apparently can run alongside demanding games.


See the above reasons. At any one time, an eMule client has a number of active connections equal to the number of ongoing file transfers plus a very small fraction of the number of clients on the queue and download lists (due to checking in, etc.). An overview of eMule''s network architecture may be slightly off-topic, but I thought this had to be corrected to keep the feasibility of your original idea in check.

RapscallionGL - arriving soon.
________________________________________________"Optimal decisions, once made, do not need to be changed." - Robert Sedgewick, Algorithms in C
quote: Original post by johnnie2

... eMule is very much touch-and-go; querying users request to be added to the queue and check in only periodically to retrieve their current position and other information. If they don't check in after a set amount of time, the client removes them from its queue.


This is true, but eMule is still aware of thousands of clients. Looking at its Stats tab, I've had an average of 250 connections, which I guess mean active ones. And I'm just on ADSL. I assume that filesharing networks are able to 'carry' client data through nodes in case of bandwidth/connectivity problems and piggyback/compress state updates - p2pmmog could do the same.

quote:


dynamically reading, writing, and tracking upload & download process of hundreds or maybe thousands of shared files.


Again, a little exaggerated. eMule clients are only informed of the upload and download processes of other users when those users connect to a client to request a queue position, at the start of uploads, and other discrete events.


My messup -I meant the local files that are being shared. Yes I know that they held in memory at once but it makes it feasible for a simialr architecture to exchange game content.

[edited by - Vodex on April 18, 2003 12:29:47 PM]
Advertisement
Just wanted to point out that there is a mmog in development that uses something similar to peer-to-peer for its servers!

http://www.stratics.com/content/interviews/urbandominion/interviews/urbandominion041703.php

It's a first person shooter too, so it looks to be pretty advanced. We'll have to see how well it works out...


Edit:
It also looks like its OPEN SOURCE. Hmm, maybe they read this thread and thought it was a good idea lol!

[edited by - saluk on April 18, 2003 5:19:52 PM]
I was once thinking about how to design a p2p mmog (wouldn't dream of implementing one thou), I don't think it's a feasable task, but it's fun to play around with the ideas...

Anyway, for the security/exploatation bit I had a (possible) solution; When one client connects to a "serving" client, the connecting machine asks the serving for the checksum of some randomly selected pieces from the game executable, that way only identical clients can connect to each other AND it serves to add "selected" material to the game. If someone writes a kick-ass modifier, many users will download and install it, thus you'll get a group that most likely will grow until maybe the larger part of the community got it. An "evil" mod however, will only be used by exploiters, trolls, gamebanes, whatever you call them, and the result is that those will end up in a group of their own, ruining the gameplay for only ther own kind..

Ok, reading this in clear text makes it sound really stupid and I can already see some major flaws.

Like a gamebane sending the checksums from an unmodified exe, but really runs an evil version of it. That could however be solved by some creative game design, like instead of sending "player x gives player y 2*10^5 damage", you send "player x bashes player y with object z" and if object z is unknown for player y..then the games aren't identical and it's time to find another "serving" machine.

Or that this grouping thing will just serve to spawn thousends of diffrent version of the game, causing only small groups of people to interact and thus removing much of the mmo aspect of the game...but hey, that could be a feature!

Ah well, I was just playing around with the idea, feel free to bash my ideas as much as you like. -Luctus
Codito, Ergo Sum (Courtesy of ThinkGeek)

[Mail][DreggSoft]

[edited by - Luctus on April 18, 2003 8:48:52 PM]
-LuctusIn the beginning the Universe was created. This has made a lot of people very angry and been widely regarded as a bad move - Douglas Adams
bump
Bump? You''ve got to be kidding me.

Everything that I''ve seen that suggests that someone thinks this is feasable or even possible tells me that they have absolutely no understanding of the technology. This is from someone who is working on multiplayer games.

You have a few options:

Make sure that everyone has DSL or higher, but that will only get you up to maybe, MAYBE 100 clients in a game at a time. Far from massive.

Go the NWN route and make 1 machine the weak link. It''s not P2P at that point though, but you can let people on modems connect to the ''server''. The person with the server still has to have DSL or higher, but you can get 1 client per 1-2k bandwidth that the server has (matters on how you build your packets and current activity level). This means anywhere from 100-400 clients at any time and only 400 if you find someone with 512k upload dsl/cable out there and you build nice compact packets.

Give up on P2P MMOGs. There are physical limitations to what your clients can do. Don''t make games for the highest quotient, go for something closer to the lowest common denominator.

The fact that it was even suggested tells me that you''re either still in school (high school or maybe college) or have no real understanding of the actual technology (packet construction, internet connectivity, transmission loss, etc...). Gain some understanding of the technologies involved and you''ll start answering a lot of these questions yourself.
Advertisement
Something like Gnutella is probably not feasible.

Something like IRC is worth looking into, though. Suppose that a person the server''s admin trusts starts a server. Then they can distribute the work between the two servers. If the first server doesn''t want to deal with you, he sends you to another server with more resources available.
---New infokeeps brain running;must gas up!
Even outside of the technical impossibilities is a very basic issue. Cheating, and particularly packet modification. If this game is open source (and even if its not) its extremely trivial to modify packets and it would be impossible to detect. If its open source check summing is silly. Even if its not open source "switch and check" packet games can often lead to results.

Without any central administration to dictate the game, and remove the cheaters.. the game would be unstable. A game is only fun if its fair for everybody.

Another obvious and non-technical problem. Data storage. If a game is P2P then character data is going to be stored locally. This means people could modify their character completely trivially.

MMORPG''s thrive on the promise of "there''s something left you can accomplish", but when you can achieve anything with a basic hex editor, the game lacks a purpose.

A very good point.
---------------------------Brian Lacy"I create. Therefore I am."
Hi Vodex,

Crosbie Fitch has some fantastic articles about a peer to peer architecture for MMORPG''s. Check it out at: www.gamasutra.com/features/index_cyberspace.htm (First article from bottom to top.)

He also set up http://www.cyberspaceengineers.org/about/index.html

enjoy!
I'm in the middle of a start-up. We are planing to go online soon with our concept and are in the search for talented motivated enthousiastic programmers!

This topic is closed to new replies.

Advertisement