Marauroa - Le Bottin des Jeux Linux

Marauroa

🗃️ Specifications

📰 Title: Marauroa 🕹️ / 🛠️ Type: Tool
🗃️ Genre: Development 🚦 Status:
🏷️ Category: Development ➤ Engine ➤ 2D ➤ RPG 🍥️ Name:
🔖 Tags: Development; 2D engine; Java; RPG; Online Multi; Multi-platform 📦️ Arch:
🐣️ Approx. start: 2003-09-04 🍥️ On Deb repo:
🐤️ Latest: 2021-03-06 📦️ Deb:
📍️ Version: Latest : 3.9.6 / Dev : edc5627 📦️ RPM:
🏛️ License type: FOSS/Libre 📦️ AppImage:
🏛️ License: GPL-2+ 📦️ Snap:
🏝️ Perspective: Third person 📦️ Flatpak:
👁️ Visual: 2.5D ⚙️ Generic bin.: ✓
⏱️ Pacing: Turn-Based & Real Time 📄️ Source: ✓
👫️ Played: Multi 🌍️ Browser-based:
🎖️ This record: 5 stars 📱️ PDA support:
🎖️ Game design: 👫️ Contrib.: Goupil & Louis
🎰️ ID: 11869 🐛️ Created: 2011-10-15
🐜️ Updated: 2021-06-20

📖️ Summary

[fr]: Un moteur et un framework libre et multi-plateforme pour le développement de MMORPG au tour par tour ou en temps réel. Il fourni une manière simple de créer des jeux basés sur une architecture de serveur portable et robuste. Le serveur est codé en Java et peut utiliser Python pour la description du jeu, fourni un support MySQLet utilise un canal de transport TCP pour communiquer avec des dizaines de joueurs. [en]: A libre and multi-platform engine and framework for MMORPG development (turn-based and real-time). It provides a simple way to create games based on a portable and robust server architecture. The server is coded in Java and can use Python for game description, provides MySQL support and uses a TCP transport channel to communicate with dozens of players.

🎥️ Videos

🎮️ Quelques exemples / Some examples (Showcase) : Stendhal,

🕸️ Links

🏡️ Website & videos
[Homepage] [Dev site 1 2] [Features/About] [Screenshots] [Videos t(202xxx) ts(202xxx) gd(202xxx) gu(202xxx) id(202xxx) r(202xxx) lp(202xxx) d(202xxx) g(202xxx) g[fr](202xxx) g[de](202xxx) g[ru](202xxx) g[pl](202xxx) g[cz](202xxx) g[sp](202xxx) g[pt](202xxx) g[it](202xxx) g[tr](202xxx) g(202xxx)] [WIKI] [FAQ] [RSS] [Changelog 1 2 3]

💵 Commercial : (empty)

🍩️ Resources
(empty) :
🛠️ Technical informations
[Open Hub] [Arianne project] [Marboard]

🐘 Social
Devs (Arianne Team 1 2 [fr] [en]) : [Site 1 2 3] [Forums] [mastodon] [twitter] [PeerTube] [YouTube] [Interview 1 2]
Game : [Blog] [Forums] [twitter] [YouTube]

🐝️ Related


📦️ Misc. repositories

🕵️ Reviews


📰 News / Source of this Entry (SotE) / News (SotN)
[Changes with v. 3.9.6 (20181016)]
[HOLaRSE on Mastodon [de] (20190928) (SotN)]

📕 Description [fr]

Un moteur et un environnement de développement de MMORPG, par l'Arianne Team.
En Java.

Marauroa est un moteur et un framework libre et multi-plateforme pour le développement de MMORPG au tour par tour ou en temps réel. Il fourni une manière simple de créer des jeux basés sur une architecture de serveur portable et robuste. Le serveur est codé en Java et peut utiliser Python pour la description du jeu, fourni un support MySQLet utilise un canal de transport TCP pour communiquer avec des dizaines de joueurs.

Marauroa est un sous-projet de Arianne.

Utilisé par ces jeux / Used by these games : Stendhal,

Arianne est un projet englobant plusieurs sous-projets :
• Marauroa : le moteur et l'environnement de développement,
• Stendhal (dans le Bottin) : le MMORPG 2D en ligne,
• Marboard (en développement, lien ci-dessus) : un logiciel de dessin vectoriel collaboratif via internet,
• d'autres projets à présent inactifs : JMaPacman et Gladiators.


Marauroa est le moteur multijoueur en ligne d'Arianne, que vous pouvez utiliser pour créer vos propres jeux en ligne. Marauroa gère la gestion des objets, et la communication asynchrone client-serveur des bases de données basée sur la perception et la persistance.

Qu'est-ce que Marauroa ?

Marauroa est entièrement écrit en Java en utilisant une architecture de serveur multitâche avec un protocole réseau orienté TCP, un moteur de persistance basé sur MySQL ou H2 et un système de jeu flexible basé sur des systèmes ouverts totalement extensibles et modifiables par les développeurs. Les règles du jeu peuvent être écrites en Java, et les scripts Python pourraient être supportés avec un peu de travail.

Marauroa est basé sur une philosophie que nous appelons Action/Perception, à chaque tour une perception est envoyée aux clients leur expliquant ce qu'ils perçoivent et les clients peuvent demander au serveur de faire n'importe quelle action en leur nom en utilisant des actions. Marauroa est totalement agnostique au jeu et fait très peu de suppositions sur ce que vous essayez de faire, permettant une grande liberté pour créer le type de jeu que vous voulez.

Caractéristiques
Marauroa est doté de technologies de pointe, telles que

• Compatible avec Java 1.5 et plus
• Objets persistants
• Support des bases de données relationnelles transactionnelles
• Accès asynchrone aux bases de données
• Perceptions Delta et Delta2 pour réduire l'utilisation de la bande passante
• Plusieurs zones de jeu indépendantes
• Streaming du contenu du serveur
• Jeu au tour par tour ou en temps réel
• Bien documenté : Conception et spécifications disponibles
• Basé sur un modèle de développement XP
• Suit le principe KISS : il faut que ce soit simple et stupide.
• Véritable logiciel libre : GNU/GPL

Rappelez-vous que Marauroa est un framework de programmation et que vous avez donc besoin d'un jeu pour faire quoi que ce soit avec Marauroa.

Marauroa est basé sur des principes très simples :

• Les clients communiquent avec le serveur, et vice-versa, en utilisant un protocole de réseau portable TCP avec la fiabilité à l'esprit pour permettre une expérience plus stable lorsqu'un lag du jeu se produit en ligne.
• Pour jouer à un jeu, chaque joueur a besoin d'un compte sur le serveur, identifié par un nom d'utilisateur et un mot de passe.
• Les joueurs utilisent leur compte pour se connecter au serveur et choisissent ensuite un "joueur" enregistré sous leur compte pour jouer avec lui. Le serveur vérifie alors les informations de connexion à l'aide du backend MySQL et charge le joueur dans le jeu à l'aide du moteur de persistance.
• Les joueurs envoient des actions au serveur. Le système d'action est totalement ouvert et n'a rien de codé en dur, ce qui vous permet de l'adapter totalement à votre style de jeu. Le serveur envoie à intervalles réguliers, appelés tours, une perception à chaque joueur pour l'informer de l'état du jeu et de toute modification d'état pertinente. Le système de perception de Marauroa est basé sur l'idéologie Delta^2 : envoyez simplement ce qui a changé.
• Le serveur exécute un certain code à chaque tour afin de faire évoluer l'état du jeu. En utilisant ce crochet, il est simple de coder des triggers, des timeouts, des conditions et tout autre type de comportement dont vous avez besoin.
• Le serveur stocke de manière transparente et automatique les joueurs et les modifications de l'état du jeu sur le moteur de persistance, ainsi que les informations décidées par le développeur du jeu à l'aide de ses scripts de définition du jeu.
• Les règles de jeu peuvent être codées en Java pour permettre un développement simple et rapide et sans avoir à connaître quoi que ce soit des internes de Marauroa.
• Les scripts Python pour les règles du jeu pourraient être supportés avec un peu de travail.
• Le serveur génère des statistiques d'utilisation qui sont stockées dans une base de données MySQL ou H2 (afin que vous puissiez plus tard générer des statistiques intéressantes à partir de celles-ci). Ou si vous n'en avez pas besoin, elles peuvent être désactivées pour économiser les cycles du processeur et l'espace disque. Marauroa présente une structure modulaire qui signifie que les modules peuvent être modifiés et désactivés sans affecter le fonctionnement des autres modules.
• Le serveur et les clients sont tous deux entièrement et judicieusement documentés, avec une documentation sur les spécifications et la conception et pas seulement sur l'API.

📕 Description [en]

"A libre & multi-platform engine & framework for MMORPG development (turn-based & real-time)" (Serge Le Tyrant, Le Bottin des Jeux Linux / The Linux Games Book)

Marauroa is Arianne's Multiplayer Online Engine, which you can use to build your own online games. Marauroa handles object management, asynchronous database persistence and perception based client-server communication.

What is Marauroa?

Marauroa is completely written in Java using a multithreaded server architecture with a TCP oriented network protocol, a MySQL or H2 based persistence engine and a flexible game system based on open systems totally expandible and modifiable by developers. Game rules can be written in Java, and Python scripts could be supported with a little work.

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.

Features
Marauroa features state-of-art technologies as:

• Java 1.5 and higher compatible
• Persistent objects
• Transactional relational database support
• Asynchronous database access
• Delta and Delta2 Perceptions to reduce bandwidth usage
• Multiple independent zones of gameplay
• Server content streaming
• Turn based or real time 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

Remember that Marauroa is programming framework and so you need a game to do anything with Marauroa.

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.
• 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.
• Game rules can be coded in Java to allow simple and rapid development and without having to know anything about Marauroa's internals.
• Python scripts for the game rules could be supported with a little work.
• The server generates statistics of usage which are stored in a MySQL or H2 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.