Tuesday, October 31, 2006

My MMOG

Ok here's my idea for a Massively Multiplayer Game. It is kind goes with the philosophy Will Wright has in the upcoming game Spore: instead of having developers try to pump out new content (of which players blast through in no time), let the users be creative and allow them to submit their creations, effectively allow it to sustain itself.

The idea has been around for years, ever since games started coming with map editors and mods. However, these had to have their own support and be downloaded seperately from the game. In Spore, the new content will be downloaded dynamically.

I love this concept. I really want to make games, but one of the hardest parts is getting content like levels, models, textures, sounds, etc. I'm not much of an artist and there is a lot involved, instead I can use what I know to just build tools for creating content.

Ok, so I haven't actually described my MMOG yet. I'm thinking of some kind of RPG or adventure type game set in space. The unique part is that the server would be freely available. Anyone could make a solar system, planet, or just a city. There would need to be encouragement for different servers to link to each other, that way one person can develop a city, and import someone else's city, so that anyone on his/her planet could go to that city as well.

I also have an idea to allow player created items. Like an RPG. Obviously a balance system would need to be put in place so ultimate weapons are not easily created (if not impossible!). My thoughts are to use some kind of 'cash' system. That would be based on how many people are on the server and for how long. Technical details might get hairy such as making sure that it is actually a human 'playing' and not just a bot to exploit the system. In this way more popular servers would have more funds available and could create or allow users to have better weapons.

The one big issue about user created items, is portability. Say server A creates a laser gun, heck even has a nice model and animation attached to it, and say some guy has this. When he goes to say server B, how is it transferred? how will it react in this server? My thoughts are to implement a voucher system. In this case server A would keep the information and provide it on demand (caching would be necessary so popular items don't bog the connection) along with verifing the user that has said item, also the 'cost' of the weapon would be stored so that it can be removed from the server A's balance.

This is getting complicated to explain, let me describe the servers better.

Originally I thought that there would need to be 2 types of servers, but I believe I have generalized it enough that only 1 would be necessary. However there would be sort of 2 modes involved. Basically it will form a tree hierarchy. A server can have at most 1 parent server and will consist of the majority of servers. It is possible for a server to have no parent, this would be the root server and would then behave slightly different. Namely it would be able to 'create' money to give to the other servers, think of it as the Mint, you don't want to make too much money because that would lead to inflation, but it can't stay constant as new resources are found (or in our case new servers or users), secondly it would need to allow users to log in, preferably not allowing too many new accounts be used by one person.

Now a server may have as many children servers as necessary. It will be allocated 'money' from its parent server (unless there is not one, then it gets to decide the grand total) and allocate it to the children (which may allocate to thier children). It must also keep a record of items with their data along with the owners of the items and must register them with it's parent server (which will do the same unless it doesn't have a parent). The funds will be allocated from the server to the user that obtained the item, this allows for the servers to check if they balance with the money allocated to them and if their children haven't overdrawn. The register however will not contain the specific data (such as the model, textures, etc) it will instead contain a reference to the server that created the item. The idea is if a server overdraws it will refuse to vouch for the item, which should then not allow the item to be created. This would be one area that could be a potential problem for exploits.

My main idea is to come up with the base code for the game as well as a tool to do most of the basic stuff such as making buildings, items, planets, etc. However I would want to keep the code open source so that new additions can be made. The only issue with this is, how will a server know if another server is playing by the 'rules' and doesn't keep the standards? I'm hoping a big enforcer of this issue would be solved by making sure parent servers stick to the rules, and if one of it's children servers doesn't play to the rules start setting limits or removing association to the server which will mean no other users will connect to it, unless they manually do so, or another server is willing to pick it up and vouch for it. For most part however it will be enforced by the number of players using the server. If the server has screwy rules about stuff people will go to some other server and if a small section of the people are ok with not having many new people so be it, they will essentially be developing their own game/mod of the game.

I have so many thoughts about this game running around I don't think I could complete it in one post. I know an example is in much need right now, but I need to finalize some of the issues, like if a server doesn't implement an item the player has, does he get his money back? or is it tough luck?

New Blog

I'm moving my blog from xanga to blogger for several reasons.

  1. Google is the shit
  2. Blogger is therefore also the shit
  3. Labels, so I can categorize my posts and filter out my ramblings
  4. Other options I might use sending an email to post entries
  5. A new initiative to log more often
Instead of using a plain text file on a computer and having to move it around when I use another machine, I figured I'd use a blog to keep it in one central location. And who knows I might get an audience with this.