DimensioneX Multiplayer Engine

DimensioneX is an open source and free Multiplayer Engine.

Aimed at producing browser-based multiplayer games and environments in general, it has been around since 1999 and has been used for MMORPG games, research, education and promotional applications.

Written in Java and supporting a number of languages including eastern languages such as Chinese and Russian, DimensioneX has been present on SourceForge.net since its beginning.

Key Features

edit
  • The game world is defined via a dedicated language, named DXW (DimensioneX World) format. The syntax lets the programmer to define rooms, doors/links, items, characters.
  • All the remaining necessary interaction is then added via an object-oriented scripting language that is very similar to Visual Basic/VBScript.
  • The engine is not a graphics engine, the client is a combination of a server-generated combination of HTML, JavaScript. Scene graphics are obtained by stacking static images and icons provided by the programmer.
  • The engine supports in-game sounds and music, as well as Flash files and other types of files.

Architecture

edit

The engine of DimensioneX is written in Java language, and relies on HTML+JavaScript for the client part.

The server object is a single Java Servlet that gets instantiated at startup, it reads the world definition from its descriptive DXW file and re-creates it in memory. From then on, the main servlet keeps the word's state in memory and accepts client commands to update the position of characters and items of the managed world.

The clients are assumed to communicate with the main core via the standard HTTP POST protocol. Messages include a number of commands such as: login, logout, view (gets a view of the current room the player is in), move (4 directions plus up and down), pick, drop, and a number of custom commands with up to 2 parameters.

Communication between the client and the server is asynchronous and multiple commands can be sent in parallel. Inside the game core a critical section is implemented using a semaphore to ensure resource and game consistency (e.g. an item cannot be picked up by more than one person).

Inside the DimensioneX world everything happens in real time even though, due to intrinsic nature of web platform used, if nobody is using a game time inside it says "frozen" so that everything happens at the first client contact with server.

The communication method between the server core (Servlet) and the client (normally HTML with JavaScript) makes it possible to implement a client in any architecture, including mobile devices.

The game engine is open source and open to any user's contribution. It has been used and adopted for several human - to computer interaction studies (see: References)

edit
  • Sottomondo, whose English version is known as Underworld Online.
  • Network Arena
  • Dragon Hunter

References

edit
edit