Tuesday, November 10, 2009

The Universe is a Big Place ...

Ok anyone who has done any sort of research on the universe at all, or attended some basic science classes, or opened a book, or looked up into the sky ... ect, knows that the universe is big. Very big, really big, we has humans cannot even grasp exactly how big it is much less see across the whole thing. Currently we can see somewhere like 13-14 billion light years away because that is how long it has been since the big bang.

So what?

Some games have lots of different playable worlds, which according to string theory is plausible, but the main reason for this has been server limitations. For a web-based mmo game however there is no real good reason for this limitation if you design your engine to work across multiple servers. Their has been great advances in cloud computing so as such I believe it is entirely feasible to create a JavaScript version of this and apply it to an mmo game.

I very much believe in the K.I.S.S. method even in programming. I've seen many programmers over complicate things just to prevent theft of their work or to justify their jobs. In it's simplest form this is what i'm thinking:

Servers ...
  1. 1 login server
  2. 1 chat server
  3. 1 AI server (?: possibly a cloud depending on the number of units it needs to control)
  4. 1 server for every X number of users
  5. 1 database server (?: possibly it's own separate cloud at a later point) to bind them all in darkness.
  6. (?: possibly) Star-map server. The only thing it does is path-finding as the star-map is fixed. Would be a behind-the-scenes server like the database-server.
With exception of the database server itself all of the other server programs should be a single entity to make installing and expanding easier. The base program will load the required modules for that type of server so as such initially they can all be loaded onto a single server and then expanded outwards as required.

Client Side ...
  • Each user is given a list of of user servers (#4) to poll for data, the system polls the list and uses the one with the fastest response time.
  • The servers are re-polled every (x) minutes to help reduce server lag and overloading.
  • Script will keep track of data return times and will force a re-polling in case of lag from a single server.
So it seems fairly simple and as such should be possible, but what about new players?
  • Players are not given a starting world, they must find their own world to colonize (possible addition to 'autopilot' to a inhabitable planet.
  • Players are given a copy of the the latest available copy of the compendium (all publicly available knowledge)
  • You start as a colony of the faction you choose, not your own independent nation (this however does not mean you can't be attacked even as a noob).
  • Technically speaking you can be a leach and never leave your colony and never perform any research at all. Factions share group knowledge with their members including leaches ... this however may make your leaders unhappy but that is up to the players themselves.
  • New players will naturally migrate out towards the edge of the known galaxy.
  • Their are fixed travel lines between stars (though it is possible later to circumvent these travel lines but it takes a much longer time)
  • More than 1 player can inhabit the same planet ...
  • That's right you can start on the same planet as your bestest buddie in the whole world.
  • You don't have to colonize a planet, you can choose to build a space colony instead. Though this idea does have strategic advantages it comes with it's own obvious set of problems such as expense and habitation limitations.
  • Shared Knowledge: Just via interaction with other players, trade ... ect. Knowledge is shared with each other in the form of bonus points, the time it takes to research something is reduced.
I will expand more on these ideas in later posts.

No comments:

Post a Comment