Architecture
Friday, 10 July 2009 10:25

My name is Christian and I am developing NextGen MMO Architecture which is a platform for building massive online games. The architecture is developed in Erlang, making it easier to scale and distribute. The architecture makes as few assumptions on the game logic as possible, allowing any kind of game online game to be developed, for example:  online poker, RPG/FPS/RTS or just a simple chat server. You can get in contact with me at info[at]next-gen.cc.

 

Development on this project is now on hold since I am focusing on my own MMO, Abydos Online. There are some exciting things in development there that will likely to be pushed into the NextGen code base, such as:

  • Distributed K-Dimensional Tree
  • Game Object System
  • Physics
  •  

The architecture consists of five types of servers:

  • Connection Server:  This server waits for incoming TCP connections from clients. When a client connect it creates a connection process to deal with the client. The connection process is a state machine that move between the states connected, connection_lost, logged_in, lobby and playing.
  • Account Server: The account server stores all accounts (username, password, email) in a database. It provides functionality to create, delete and validate accounts.
  • Character Server: The character server stores all the characters (avatars the player use to play the game). It provides functionality to create, delete and retrieve characters.
  • Area Servers: These servers manages a geographical area of the world. Area servers can be connected to form a huge coherent world which objects/players travel through. An area server can also run on an arbitrary number of computers in the cluster, distributing its load. The architecture core functionality and game logic is handled through modular libraries.
  • Monitor Server: These servers keeps track of all the area servers and their load.

For more information read the article in the download section.

Last Updated on Wednesday, 12 September 2012 06:27