2 Replies - 2986 Views - Last Post: 08 June 2006 - 03:55 PM Rate Topic: -----

#1 CthulhuChild  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 1
  • Joined: 08-June 06

"p2p" MMOs?

Posted 08 June 2006 - 08:00 AM

I was thinking about this: a very serious limiting factor for MMOs is simply the fact that the load on the servers gets ever-worse, the more players you have. I honestly think it's why MMOs tend to be either tiny with a cult following, or huge with an enormous budget. The middle-field ones fizzle, having too many expenses for not enough players.

This is especially a limiting reagent in making any sort of browser based MMO (and god help you if it's realtime), because not only do you have to communicate with the server for any and all game actions, the actual graphical resources need to be passed to the client as needed: some clever activeX controlls or similar could ensure that content need only ever be downloaded once per computer per cache clear, but that's still a big expense, especially if that one player plays at work, at home, etc.

Anyway, I was thinking that if I did it properly, the "main server" could be used more as a validation system, responsible for providing data about the game world only in the most general way. I envision that when you've only a few users logged on, the server is pretty much takes the entire load as a normal MMO might. As more and more clients log on, persons with high bandwidth start hosting zones (breaking the game world into small, bite-sized chunks would be VERY important to making this work. Combat should probably be done Final Fantasy style, which would allow the mechanics of battle to be handled entirely by it's participants). Eventually, the server ceases to do much of anything: while it recieves updates from the clients acting as major nodes, new clients logging in are simply re-directed to other clients.

To deal with the issue of sudden disconnects, we could have multiple clients simultaneously hosting the same zone, synching the data between them. If one disconnects, the server will assign a new client to host that zone. Also, note that zones are only ever hosted by clients who are themselves in that zone: meaning that the more people in a zone, the easier it is for a new client to find at least one other client to leech updates from. The synchronization issues could become crippling if the game absolutly had to run in perfect real-time, but if you build the combat system so that it's running in pseudo-realtime (turnbased, with turns defined as "6 second periods" or somesuch with a window of oportunity for making a command in each turn), the synch delays would be unnoticeable.

The biggest problem with this scheme is security. If there's one constant in gaming, it's cheating, and making the players responsible for hosting parts of the game world carries tremendous potential for, well, evil. Some thoughts on this:

-Most of the data that would be kept on a computer (or in a cache) doesn't need to be secured particularly well: if someone changes the graphics of his character to appear bright pink, it's not the end of the world. And besides, eventually a client with a different version will meet the pink guy, notice the difference, and contact the server to verify what's the correct graphic file, and all clients with the modified file will be ordered to change and update.

-The most important peice of information to keep untampered with is the stats of the PCs/NPCs. This data is actually quite small, relativly speaking: certainly it would not be much of a problem for the central server to provide that information regularly, as opposed to trusting an individual client.

-The second most important peice of data is the results of random rolls. That is to say, if any client can access the information about a specific character, and one client claims said character has 1.95 billion strength, it's very easy to prove said client is lieing through it's teeth. Harder would be if a single character just happens to be "lucky", always gets critical hits/rare items, etc. If someone somehow knew the system inside out, they could theoretically find the memory address where the random results are being calculated, and write a program to set them at will. While a World of Warcraft Warden style system could combat this, it's a huge hassel (to say nothing of the fact that it might not catch everything, and what's to stop you from messing with the Warden?).

I think a solution could come like this: each client gets it's random results from another client, which is selected from everyone online (and each client grabs a new random client for the random results, it's not everyone online connecting to one poor sap). Which client you get connected to for ranomization is itself more or less random (assigned by server), and it changes regularly, even within a given play session. This makes it impossible for cheating to really get started, since if you screwed around with your randomized tables, all you'd REALLY be doing is causing everyone else to get better than average loot. Inorder to really benefit yourself, EVERYONE would have to be in on this, and even then any clients that arnt' assisting the cheaters will return average results (while recieving better than average results from the cheaters).

This scheme could be abstracted even, where player A connects to B C and D, who are both tied to E. E generates a random result, and sends it to B C and D, who, if they all agree the result is reasonable, pass it on to A. This process is transparent to A, who simply recieves the result and goes from there, but B C and D can do a bit more: they can inform the hierarchy of zone-hosting clients about this data (if ti's a new item, for example, eventually the server has to hear about it, if it's a combat result, each computer needs to hear about it). More than that, B C and D can decide amongst themselves if the result is "reasonable". Namely, if all rolls will ultimatly be a number between 1 and 100, and client E's average roll is in the 90s, somethings wrong. There's a bunch of nice data analasys algorithms that could determine whethor a result is sufficiently "random" to be accepted. And since it's 3 clients doing this verification, the earlier point about "everyone has to cheat inorder for anyone to cheat": Even if more than 50% of clients are cheating (A, B, and E), A has no power to help itself, C and D can detect E's cheating (as well as B's inconsistancy), and report the entire thing to a higher level.

Basically, the security is heirarchical and relies on sublevels monitering each other. There might be a fair bit of overhead in all this, but it's being handled by clients, not the central server, so it's not much of a problem. Moreover, there is a fundamental assumption here: that cheaters want to be more powerful than other players. If the only way to cheat helps everyone BUT you, you probably wouldn't want to cheat. And even if everyone did, the balance between players is actually maintained. One could even get really clever and make it so that the NPCs are dynamic, and gain/loose stats based on how often they're killed or kill players. Thus if everyone cheated, the monsters would respond by getting more powerful, and the overall balance of power would be exactly the same (albiet with bigger numbers).

Anyway, there's my idea. It's all theoretical, of course. I plan to put a small implimentation as an undergraduate project, but I was wondering if I could get some feedback first.

Is This A Good Question/Topic? 0
  • +

Replies To: "p2p" MMOs?

#2 1lacca  Icon User is offline

  • code.rascal
  • member icon

Reputation: 44
  • View blog
  • Posts: 3,822
  • Joined: 11-August 05

Re: "p2p" MMOs?

Posted 08 June 2006 - 12:43 PM

P2P MMOGs are in the air for a while. I haven't dealt with them in depth, but I would suggest taking a look at the gamedev.net forums, as they have very good resident experts, and this topic has some threads, like this I think you have some new ideas, so after checking those topics you could improve it, and you might even get support if it's a viable solution - however be careful about posting something that have already been discussed.
Also, Garage Games have some P2P MMO projects in their resource section here near the end of the page.
Was This Post Helpful? 0
  • +
  • -

#3 Videege  Icon User is offline

  • rÍvant.toujours
  • member icon

Reputation: 6
  • View blog
  • Posts: 1,413
  • Joined: 25-March 03

Re: "p2p" MMOs?

Posted 08 June 2006 - 03:55 PM

Ah, so...kind of like a mmorpg that works like a torrent file. All I can think of is the horrendous networking issues. It's one thing when people are sharing a file, but I just think it would be a nightmare with a game.
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1