• SourceForge Logo
  • Java Logo
  • SDL Logo
  • MySQL Logo
  • pygame Logo
  • Python Logo
  • Happy Penguin Rate

Marauroa

© 2005 (See Authors list). Released under GNU/GPL license.

Rate us at:

What is marauroa?

Marauroa is Arianne's Multiplayer Online Engine Server, that you can use to build you own online games using Marauroa as a Content Management system.

Marauroa is completly written in Java using a multithreaded server architecture with a TCP oriented network protocol, a mySQL based persistence engine and a flexible game system based on open systems totally expandible and modifiable by developers and that is able to run scripts on Python for the game's rules.

Marauroa is based on a philosophy we call Action/Perception, on each turn a perception is sent to clients explaining them what they percieve and clients can ask server to do any action in their names using actions. Marauroa is totally game agnostic and makes very little assumptions about what are you trying to do, allowing a great freedom to create whatever type of game you want.

Marauroa is based on very simple principles:

  • Clients communicate with the server, and vice-versa, using a TCP portable network protocol with reliability in mind to allow a stabler experience when online game lag occurs.
  • You can develop an arianne client, using the arianne client framework, on any system that is able to compile C code.
  • To play a game every player needs an account on the server that is identified by an username and a password.
  • Players use their account to login into the server and then choose a 'player' stored under their account to play with. The server then checks the login information using the mySQL backend and loads the player into the game using the persistence engine.
  • Players send actions to the server. The action system is totally open and has nothing hard-coded so you can edit it totally to your game style. The server sends at regular intervals, called turns, a perception to each player to inform them about the state of the game and any relevant state modifications. Marauroa's perception system is based on the Delta^2 ideology: simply send what has changed.
  • The server executes some code each turn in order to move the game status on. Using this hook it is simple to code triggers, timeouts, conditions and whatever kind of behavior you need.
  • The server transparently and automatically stores players and game status modifications on the persistence engine, and also information decided by the game developer using their game definition scripts.
  • The server side game rules can be written in Python to allow simple and rapid development without needing to recompile the rules engine and without having to know anything about Marauroa's internals. Games rules can also be coded in Java.
  • The server generates statistics of usage which are stored in a mySQL database (so you can later generate fancy statistics from them). Or in case you don't require them, they can be disabled to save CPU cycles and disk space. Marauroa features a modular structure that means modules can be changed and disabled without affecting the operation of other modules.
  • Both the server and clients are fully and wisely documented, with documentation about specification and design and not just API documentation.

Features

Marauroa features state-of-art technologies as:
  • Java 1.5 compatible
  • Persistent objects
  • Transactional relational database support
  • Delta and Delta2 Perceptions to reduce bandwidth usage
  • Multiple independent zones of gameplay
  • Server content streaming
  • Turn based gameplay
  • Nicely documented: Design and specifications available
  • Based on a XP development model
  • Follows KISS principle: Keep it simply stupid
  • True Open Source Software: GNU/GPL

Instructions

You should read HOWTO build Marauroa and Initial steps with Marauroa for detailed, simple instructions about how to build and use marauroa. Remember that Marauroa is just a server middleware and so you need a game to do anything with Marauroa.

Download

  • This file contains the source code to build marauroa.
    (source) released on 2008/2/14
    • Operating System Logo
    Dependencies: (This file depends on)
     
  • This file contains the compiled version of marauroa plus all the dependencies but MySQL.
    (binary) released on 2008/2/14
    • Operating System Logo
    Dependencies: (This file depends on)
     
 

Change Log

2.5
- Added timeout value so players get disconnected after 30 seconds if their connection is lost.
- Updated protocol version.
- Fixed problem with player left in game.
Older
- Fixed problem with bogus network message.
- Added additional results to enum Result (for account/character creation)
- Added UnicodeSupportingInputStream and -Reader which automatically detect unicode type (and even support UTF-8Y)