Advertisement

MMO with no servers? (shared servers)

Started by March 10, 2003 04:19 PM
0 comments, last by Azrael 21 years, 11 months ago
I am playing with an idea, about MMO or Multiplayer games in general. I have some experience coding but mostly graphics, my network knowledge is pretty basic, so try to keep flames to a minimum ok? As far as I understand (til now) a game server keeps track of packets of information being sent from several connected users in the basic server/client scheme (duh) in addition it also stores the geometry of the level which is being played, so it can check collisions, AI, keep the players on synch etc. Of course it also handles validation maybe in some cases extrapolation of the data when packets are lost etc. It also may perform other functions like handling npcs whatever.. at a very basic level thats what a server does right? This scheme works very well on small groups specially if they have low pings. Unfortunately once you start adding levels and or users, your server becomes huge, using tons of bandwidth, therefore any multiplayer game which uses a strong number of player needs a huge server right? well.. Im begining to think thats just wrong. 1.-Each user is server capable. If each connected node is capable of sending and receiving data it means is capable of sending and receiving data from other nodes as well. Know heres where it gets interesting, instead of sending the data to all nodes, we could use a distribution scheme by analyzing the pings of all nodes, then sending your packet (and the packets you have received) to the nearest nodes and on and on. Theres also the posibility to divide the world in spheres of action so you only would need to send your info to those who are inside your sphere. The point is an aplication with several users in it, doesnt require a big server, from a computing grid point of view, it already is a big server. 2.-If the server is checking the data doesnt that mean is working twice as much as it should/could? I know, every counter strike user in the world knows WHY the data has to checked and double checked before being allowed in, but from a programming stand point this is not really needed is it? the AI of npcs could use the client machine to check the geometry and do AI calculations, the same machine can keep stats of the game being played, your progress etc. I know is naive to think they wont be hacked, they WILL but is time we consideer another system to keep those calculations simpler. Perhaps simply banning a user you suspect is hacking in your sphere would be more than enough, perhaps just doing a quick checksum of a map against a original map. etc. the thing is in a server less system, optimizing such checks is needed. In addition why not use Channels? "hey im playing Infinite dungeon on channel 34, join me!" that way you would know more or less which channel is more visited by friends, enemies and which ones are not. ,Some channels could have different rules like no pvp or pk, stealing, not only forbidden but hard coded as not possible. There are several other advantages in having "heavier" clients, less extrapolations would be needed, AI could be more intensive, collisions would be easier to detect, and items would never be lost or at least they could be backed up. 3.-User made Gameplay The most important feature of such a system and the biggest challenge would be content, since there wont be a payed subscription, content and sometimes even gameplay would have to be generated by the players themselves: Quest and missions should simply be generated by the world itself, per example high positions and territories, enemisty among towns, user created jobs, etc. more on this later. any way, this is an idea Im playing to implement in a simple test environment. I know is not very original, but I just wanted to have some expert opinion on this, and how and where can I find more info on how to implement it.
The one problem of security... not only is almost everything based on the clients computers, the data that isn''t for them is passed through them anyway.. if anyone wanted to cheat it''d be more than easy... yet another problem would be the lag... if it''s mostly users with 56k connections then the lag will be immense because the users may be communicating with two or more other computers... the routing would take a somewhat sophisticated AI scheme to route and reroute messages... this would take a decent amount of cpu cycles.. which will be difficult for some users if the game employs high end graphics or other cpu intensive stuff..

Otherwise, it''s a sound theory :-P... the hybrid setup is the one i use for my network scheme because i mostly play on LANs and i can check to see if my friends cheat.. :-P..
Disclaimer: "I am in no way qualified to present advice on any topic concerning anything and can not be held responsible for any damages that my advice may incurr (due to neither my negligence nor yours)"

This topic is closed to new replies.

Advertisement