Arianne

From Wikipedia, the free encyclopedia

Arianne is an online multiplayer open source framework for developing Internet games similar to Ultima Online or Everquest. It was created by Miguel Angel Blanch Lardin in 1999 with the assistance of developers around the world. It is one of the top 75 activest projects hosted on SourceForge.net and sometimes reaches into the top 3.


Contents

[edit] Description

Arianne is designed to provide a simple way of creating games on a portable and robust server architecture. Its server is coded in Java, uses Python for a third party game description, provides a MySQL backend, and uses UDP to communicate with players. Arianne reference clients are coded using Java and C.

[edit] Development Goals

Arianne has been in development since 1999 and has evolved from a tiny application written in pseudo-C++ to a powerful, expandable, and simple server framework running on the Java platform and a portable client framework written in bare C to allow total portability of Arianne's clients. Arianne's server is totally client agnostic. Since the beginning, the key concept at the heart of Arianne's development has been KISS: Keep it simple, stupid!

[edit] Open Source philosophy

Arianne has always been an open source project, written and released under the GNU General Public License. The Arianne developers believe the right way is the open source way and want everyone to have the power to modify whatever they want to, both on the clients and the server. Arianne always welcomes contributions and modifications to the code to create the best possible open source reference platform for game content providers.

[edit] Etymology

The name came from Ariadne, a goddess of Greek mythology (Latin; Arianna and French; Arianne). Ariadne was the daughter of King Minos of Crete. She was in love with Theseus, an Athenian hero who killed the Minotaur (half human, half bull creature). However, Theseus left her alone on the island of Naxos, where she later married Dionysus (the god of wine). "Ari" means intelligent and "adnis" means pure (virginal); hence, the daughters of the Romans and Greeks were often called by this name.

[edit] History

[edit] The beginning

It all began when Miguel read a post on Linuxgames asking "What I'd like to see in an RPG". Miguel saw the post and, unaware of pre-existing RPGs for Linux such as NetHack, Crossfire, and Altima, decided to fill the gap he thought was there.

So, on July 27, 1999, someone posted what they would have like to have seen in such a game:

Something in line with your thoughts is my concept of a sort of Sim Fantasy game setting for an RPG. That is, a great deal of effort is done to create a fantasy world that runs logically in a simulated sort of way, from politics to economics to monster populations, and then let the player interact with that. You decide you want to become King of Generia? Perform services for a lord until he knights you, then work your way up the noble ranks by marriage, heroism, warfare or deceit. Or become a necromancer, build up a huge undead army and attack the kingdom, making yourself ruler when they are defeated. A game that simulated the sort of thing you see in a generic fantasy world is what I'm thinking of here, not an exact medaevil life sim. Incursions of dragons, adventurers stirring up the goblins in the hills with their attacks, an ancient evil awakened by careless nomads in the desert, you name it, it could happen.
If you wanted to get really ambitious, the entire world might be random. Use a world creator, run a crude form of Civilization on it until you hit the right tech level, expand upon the basic parameters from the Civ simulation to create the individual lands, peoples, and nations. Populate it with random NPCs, run the world for 100 years or so to give it a bit of history, and bingo. The advantage of this approach is that the game would be infinitely playable. The obvious disadvantage is that it would be hard to get anything like a coherent story out of the game without some pretty sophisticated story mechanics in place.
Think if it as "Rogue" on a much larger scale. Heh.

Miguel replied asking for more details and became very interested in the idea. Around one month later the project page was setup and Miguel started looking for help from the community:

The coding of the game has begun. Project Arianne has just started. Visit the page [1]. The page is in Spanish if enough people ask for it i will post an alternative version in English. E-mail yuor ideas, question or feelings about the project.
LINUX FOREVER.

[edit] Year 1999

The website in 1999
The website in 1999
First version of Arianne
First version of Arianne

A short declaration from that time of what Arianne should be:

What is Arianne? Arianne is an RPG project that will have the next set of features:
  • Infinite World
  • Online gameplay
  • Permanent world
  • Non-hardcoded RPG engine
  • Open development model of items
  • Portable
  • The most important part of the game is the offline one.
Ideas to add to project:
  • Depending on the path of the player or NPC, it will do or be able to do some actions insteads of others, and as a result there will never be two identical games.
  • Every NPC will have a story, ascendants, a set of goals and a personality, so there are no two exact NPCs.
  • Items are added to the program using an interpreted language that eases its load and that makes it independent of the operating system where the server runs.
  • Game will is ruled by laws, economical relations between states, political relations, weather, geography and so on.
  • To advance on experience points you don't need to kill, but to role-play.

At the time this was written, Java, Python, and XML either were unknown to the developers or were not very popular in general.

The official start day of the project was September 8, 1999. On this day, an entirely new web page was released.

During that year, Arianne evolved anarchically and fast into a small working offline game where the player was able to move around a piece of terrain of around the size of three screens. The great achievement at this stage was portability as the game was runnable on Windows, Linux, and BeOS thanks to SDL.

[edit] Year 2000

Arianne in 2000
Arianne in 2000

In the year 2000, Arianne reached version 0.3.0, the first version to feature a real client-server framework. Everything was hard-coded and it was extremely difficult to either add new features or fix existing ones. However, the framework stayed that way up to version 0.3.9.

A BeOS version was released, making Arianne one of the first BeOS open source games.

Around this time, the website was rebuilt using Midgard, a content management system.

The real achievements of this release were the creation of a core of developers such as Ulrich Eckhardt, Masahiro Minami and Dan Brown and the fact that the client was now running on Linux, Windows, BeOS, and Mac OS. The codebase still had the problem of being very hard-coded and was poorly written in general, so it was completely re-coded. This took approximately six months to complete. The project numbering was changed from the expected 0.4.0 version to 1.0.0 alpha 1.

The whole Arianne project was extremely well-documented; everything from specification to design was documented on web pages and made available to the public. These design documents (besides large changes in the implementation) are still valid.

[edit] Year 2001

Arianne in Mac OS
Arianne in Mac OS

2001 was a very successful year for Arianne. Many new people joined the project. Unfortunately, a new type of contributor also appeared: "the camper". These were people who joined the project, asked for tasks and then vanished. They delayed the project significantly and made it much harder to keep adding new features.

The first version of the alpha 1 releases was named Pandora.

This version featured a basic server-client framework that was easy to debug and expand. This created a basis for the next steps of the project. 2001 also featured two more releases of tech previews of Galadriel, the 1.2 version of Arianne. Coding started on new features like a database backend and a secure login procedure.

[edit] Year 2002

Arianne in 2002
Arianne in 2002

In the year 2002 Arianne released a major version, named Galadriel, that added a python RP system, a database backend for accounts, an XML storage for the world, and a small 2D client using Kyra, a sprite engine for SDL.

The website was again reconstructed using PHPNuke. Olivier Milla and Djagg worked hard on the website to make it unique and different.

Although some of the core developers left, significant progress was still made. Many great contributors joined such as Skyflash and Brian Rowe. The project was #1 on Sourceforge for about a month during July, 2002. However, problems arose. The code was not as clean and organized as Miguel thought it should be, and he suggested another rewrite of the project. However, some developers disagreed. This, coupled with the fact that there were only one or two active workers, led to diminished interest in the project, and it was declared dead around September 24th of that year:

Arianne is dead.
This project is really exhausted and IMO it can't continue anymore on the actually structure. There are 27 developers on Sourceforge and only Steve has been working lately with PHP of developers site and Skyflash with changing the sites content.
So 24 of those 27 persons are doing NOTHING.
And well, things are even worse if you take a look to the developers site. There are several people joined... around 20, I have dedicated several hours of my personal time to create tasks and fill them with good descriptions so that people can take them and just look what is the reply... Only Steve has used it. None except again Steve and Skyflash has filled a single task. None of the GFX people has joined the site. Well, and about mailing lists... more of the same... I have do a CALL for people to know what everyone is doing here... and the reply has been nothing: None has had time to write a few lines explaining what they are doing.
Project code needs a total clearing... I am writing test cases for Arianne and it has found to be really unstable on the Connection and Thread related things, so the only way to continue is to clear it or recode it.
If someone offers to take the leadership of Arianne I will transfer him all the keycodes and all the rights over the code that I have written, so that he can continue Arianne as s/he thinks it is better, even changing the license. If none offers to take it, I will meditate about either shutting down it, or clearing ALL and start again from the begin of the begin in a new way no developers, no website, no teams, no tasks, no contributions, no ideas.
One of the biggest errors of Arianne has been to be too open, we have accepted on the team people that is not really to take the task, we have accepted tons of ideas that are really impossible to be done, I have failed to motivate and coordinate this group of people into working on it. Also I have written a huge amount of documetation, several of you will say that docs are a shit (like Uli did) but again, none has written a better one, what Uli wrote was only an email long documentation in a very technical language that hardly can help a newbie to understand it. I have created, used and recommended sourceforge trackers but little people has really used it.
I have tried to do a schedule of the project but people has not contributed a single line to inform me of what they are doing. You don"t document anything... nor decisions, nor code.
Personally, I still have the same motivation to create a MMOG as before starting to work on Arianne, so I will for sure retry it, either on Arianne or by my own with the experience that I have get on Ariane.
Anyway, I really want to thank you all the 3 years of Arianne, I have meet real good friends, I have had great times and I have felt the proud of being an open source developer, I also have felt the sadness of getting only bad words of what you do, from inside and outside, I have also understand that people always talk more than they can do. Anyway, Thanks to all.
Regards,
Miguel

Soon, Miguel received several requests to transfer leadership of the project. The two who were considered seriously were Euan Mee and Skyflash. After a month or so of internal debate a poll was taken and everyone agreed, even Skyflash, to transfer the leadership to Euan. Euan's leadership was short-lived. There was much consulting on the project; it was evaluated as a whole, and many changes were proposed. However, Euan disappeared. After that, Skyflash took the leadership, and, using the work accomplished during both Euan's period and the previous years, he started to work on a new version that featured a 3D client using plib.

[edit] Year 2003

Arianne in 2003
Arianne in 2003

In the year 2003, the project started to move again, and, without dropping the old code, Skyflash managed to fix bugs and add new features such as a 3D client that allowed players to move, fight and cast magic. This version of Arianne featured a Lua scripting engine. This version was called Naxos, a name which began a new version naming scheme.

The progress of the project was totally in Skyflash's hands, but he had to move back to his home in September 2003 and he requested someone take over the project for, minimally, six months to a year.

Meanwhile, Miguel had started Marauroa, a Java clone of Arianne that had the things he thought Arianne should have had: UDP, a database backend, persistent objects, scriptability, and overall robustness. Around December 2003, along with the help of Waldemar Tribus, a working version was completed.

Miguel asked Skyflash to pass leadership to him for the next six months, and, in October 2003, he became leader again. He created a new web page and removed the PHPNuke in favor of a previous website that Djagg had made. He then wrote a revision of the project status to determine what was working and how. The result was that the project was advanced, but soon got blocked on all paths because the main developer assigned to each area was MIA. Since Marauroa was in a stable status, it was adopted as Arianne's server.

[edit] Year 2004

In 2004, Marauroa joined Arianne as a single project. Arianne's goals were redefined such that Arianne became a framework to create online multiplayer games and Marauroa became the content management system of the Arianne framework. Marauroa now features a fully scriptable RP engine using Python.

Arianne was rewritten to be client-side application able to connect to a Marauroa server. Arianne was simplified to make it easier to write new games, and Python binding was added so that development of games in Python was possible.

[edit] Year 2006

In 2006 Stendhal became the most prominent part of the project.

[edit] Year 2007

In early 2007 Marauroa was refactored to meet the requirements of an online roleplaying game like Stendhal better.

[edit] Components

Arianne is composed of two different parts: server and client.

[edit] Server

Arianne's server is Marauroa: Marauroa is a Java implementation of the Arianne design such that it is a secure, fast, and robust platform for providing content. The goal of Marauroa is to ease the creation of multiplayer games as a Content management system eases the creation of web portals.

Marauroa 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 called Action/Perception. With each turn, a perception is sent 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 few assumptions about what are you trying to do, allowing a great freedom to create any game type.

[edit] Client

Arianne's client is not defined, but a reference platform is available.

The engine is called ArianneXP and provides a wrapper for C, C++, and Python to develop new Arianne clients. All Arianne games must use this wrapper so that updates and fixes are automatically received.

[edit] Games

Arianne features several games: some of them to test the different iterations of the engine, others by third parties. Most of the games are in constant development.

[edit] Objective

The goal of the Arianne project is to create a fantasy virtual medieval world using only open source tools and following an open source development model. In that world the goal is to run a role-playing game as fun as pen and paper games.

Gladiators
Gladiators

[edit] Gladiators

In Gladiators, you own several gladiators. As a gladiator your task is to fight and survive in the arena. You can also play as a spectator and join the arena to see the combat and decide the luck of the fighters; as a spectator you can decide if the loser will die once the fighting is over and the amount of fame that is assigned to each of the fighters. Your main goal is to become famous so that you can buy better equipment and gladiators.

mapacman
mapacman

[edit] mapacman

This is an implementation of a multiplayer Pac-Man style game. The objective of the game is to score as much as possible by eating pills and making sure you are not eaten by ghosts. The interesting thing about mapacman is that it is online and multiplayer and has served as a basis for further development of the framework. As of July 2, 2005 it is at version 0.3.

[edit] Stendhal

Stendhal is a massively multiplayer online role playing game written in Java. In this game, you buy sheep, raise them, and then sell them for profit.

[edit] External links

In other languages