Marauroa 1.34 review
DownloadMarauroa is arianne's content server. Marauroa project is completely written in Java using a multithreaded server architecture wit
|
|
Marauroa is arianne's content server.
Marauroa project is completely written in Java using a multithreaded server architecture with a UDP oriented network protocol, a MySQL based persistence engine and a flexible game system.
The game system is totally expandable and modifiable by game developers and is able to run Python scripts defining the game's rules.
Marauroa is based on a design philosophy we called Action/Perception. Each turn a perception is send to the clients explaining what they currently perceive. Clients can ask the server to perform any action in their name 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 any game type.
Here are some key features of "marauroa":
Java 1.4 compatible
Persistent objects
Transactional relational database support
Delta and Delta-Delta Perceptions to reduce bandwidth usage
Fully test case covered using Junit
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
Marauroa is based on very simple principles:
Clients communicate with the server, and vice-versa, using an UDP 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.
What's New in This Release:
new client side method to detect disconnected tcp-streams
fixed a problem with may cause logging of game events to fail
Marauroa 1.34 keywords