Main Page

encyclopedia.codeboy.net

 

Arianne

\nArianne is a online multiplayer open source framework for developing internet games, like Ultima Online or Everquest, created by Miguel Angel Blanch Lardin in 1999 with the assistance of developers around the world.

Table of contents
1 Description
2 Development Goals
3 Open Source philosophy
4 History
5 Components
6 Games
7 External link

Description

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

Development Goals

\nArianne has been in development since
1999 and has evolved from a tiny application written in pseudo-C++ to a powerful, expandable but 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!

Open Source philosophy

\nArianne has always been an
Open source project, written and released under the GNU GPL license. We believe the right way is the open source way and we want you to have the power to change, edit and configure whatever you want, both on the clients and server. Arianne always welcomes your contributions and modifications to the code to create the best possible open source reference platform for game content providers.

History

\n

Introduction

\n

Where the name Arianne came from

\nThe name came from Ariadne from Greek mithology (Latin; Arianna and from French; Arianne). Ariadne was the daughter of King Minos of Crete. She was in love with Theseus, an athenian hero who killed the Minotaur ( mythilogical half human, half bull creature). However Theseus left her alone on the island of Naxos where she later married Dionisos ( the God of Wine! ). ari means intelligent, adnis means pure (as in a virgin), hence the daughters of the Romans and Greeks where often called by this name.\n

The beginning

\nIt all began when Miguel read a post on Linuxgames asking "What I'd like to see in an RPG". Miguel saw the post and said, 'heh, there is not a single RPG for Linux, it would be nice to create one'. Of course at the time Miguel didn't know about great games as: Nethack, Crossfire or Altima. 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\n  game setting for an RPG. That is, a great deal of effort is done to create a\n  fantasy world that runs logically in a simulated sort of way, from politics to\n  economics to monster populations, and then let the player interact with that.\n  You decide you want to become King of Generia? Perform services for a lord \n  until he knights you, then work your way up the noble ranks by marriage, \n  heroism, warfare or deceit. Or become a necromancer, build up a huge undead \n  army and attack the kingdom, making yourself ruler when they are defeated. A \n  game that simulated the sort of thing you see in a generic fantasy world is \n  what I'm thinking of here, not an exact medaevil life sim. Incursions of \n  dragons, adventurers stirring up the goblins in the hills with their attacks, \n  an ancient evil awakened by careless nomads in the desert, you name it, it \n  could happen.\n  If you wanted to get really ambitious, the entire world might be random. Use a \n  world creator, run a crude form of Civilization on it until you hit the right \n  tech level, expand upon the basic parameters from the Civ simulation to create \n  the individual lands, peoples, and nations. Populate it with random NPCs, run \n  the world for 100 years or so to give it a bit of history, and bingo.\n  The advantage of this approach is that the game would be infinitely playable.  \n  The obvious disadvantage is that it would be hard to get anything like a \n  coherent story out of the game without some pretty sophisticated story \n  mechanics in place. \n  Think if it as "Rogue" on a much larger scale. Heh.
Miguel replied asking for more details and got really interested with the idea. Around one month later the project page was setup and Miguel started looking for help from the hacker community.
 The coding of the game has begun. Project Arianne has just started. Visit the \n  page http://members.xoom.com/arianne_rpg/ .   The page is in Spanish if enough \n  people ask for it i will post an alternative version in English.\n  E-mail yuor ideas,question or feelings about the project.\n  LINUX FOREVER.

Year 1999

\nI have not been able to find this initial webpage, seems the hosting went down and I have no copy of it on my HD. All I have from that time is a short declaration of what Arianne should be:
 What is Arianne?\n  Arianne is an RPG proyect that will have the next set of features:\n  * Infinite World\n  * Online gameplay\n  * Permanent world\n  * Non hardcoded RPG engine\n  * Open development model of items\n  * Portable\n  * The most important part of the game is the offline one.\n  Ideas to add to project:\n  Depending on the path of the player or NPC, it will do or be able to do some \n  actions insteads of others, and as a result there will never be two similar \n  games.\n  Every NPC will have a story, a ascendants, a set of goals and a personality, \n  so there is no two exact NPC.\n  Items are added to the program using a interpreted language that ease it load \n  and that makes it independent of the operating system where the server runs.\n  Game will is ruled by laws, economical relations between states, politic \n  relations, weather, geography and so.\n  To advance on experience points you don't need to kill, but to role play.
Sounds fun, doesn't it? Keep in mind that at the time when this was written, Java was a stupid language featuring version 1.0, no one knew about Python and XML was the name of a football team. Now that I re-read these ideas, I think most of the goals are clearly very hard, even with today's technology. The official start day of the project is September 8, 1999. We will use this as the birthday date.\nThe first webpage of this new era featured a much more interesting webpage And the very first version of Arianne: a 2D Client. During that year, Arianne evolved anarchily and fast to a small working offline game where the player was able to move around a piece of terrain of around the size of 3 screens. The great achievement at this stage was the portability, as the game was runable on Windows, Linux and BeOS thanks to SDL which at that period an awesome 0.10 version

Year 2000

\nIn the year 2000, Arianne reached version 0.3.0 and that was the first version to feature a real client-server framework. Everything was pretty hardcoded and was extremly difficult to either add new features or fix existing ones, however the framework was kept that way up to version 0.3.9 Also a BeOS version was released and hence Arianne was one of the first BeOS open source games. Around this time the website was rebuilt using Midgard, a strange content management system, but the result was a really clear and nice website. The real achivements of this release was the creation of a nice core of developers, of whom I think the most relevant were Ulrich Eckhardt, Masahiro Minami and Dan Brown, and the fact that the client was running on Linux, Windows, BeOS and MacOS. The base still had the problem of being very hardcoded and the source was really, really badly written so we did what has been a constant in Arianne: completly recode the it, saving only the knowledge gained from out mistakes. This was one of the greatest things about the Arianne project; we always knew we could do better. Hence we started to code it again from scratch, which unfortunately halted the project for around 6 months during which and there was no significant progress.\nThe project numering was changed from the expected 0.4.0 version to 1.0.0 alpha 1.\nThe whole Arianne project was extremly well documented, everything, from specification to design, was written down on webpages and made available to everyone. These design docs (ignoring big changes in the implementation) are still valid. Miguel successfully managed to coordinate about 30 people and to make a standard image of the project, thus everything looked like part of a common project... of Arianne.

Year 2001

\n2001 was the year of Arianne. Many new and interesting people joined the project. However, unfortunately a new type of contributor appeared: the camper. These where people that joined the project, asked for tasks and vanished after that. It was a pity because they delayed the project a lot and made it much harder to keep adding new features.\nThe first version of the alpha 1 releases where released under the name Pandora. This version featured a basic server-client framework, that was easy to debug and expand, and that would create a base for the next project steps. This year also featured two more releases of tech previews of Galadriel which was the 1.2 version of Arianne. We started to add features such as a database backend, and a secure login procedure

Year 2002

\nIn the year 2002 Arianne released a major version, named Galadriel, that added a python RP system, a database backend for accounts, a XML storage for the world and a small 2D client using Kyra, a sprite engine for SDL. \nThe website was created again, this time using PHPNuke. (trust me, you don't want to run PHPNuke!). Olivier Milla and Djagg worked really hard on the website to make it unique and different, and they did a real good job. The progress on the project was awesome eventhough some of the core developers dropped out. Many great contributors joined of whom I can point out Skyflash and Brian Rowe. The project was number 1 on Sourceforge for around 1 month during July, 2002. That means very hard work.\nBut then problem arose. The code was not as clean and nice as Miguel though it should be, and he suggested a re-code of the project. However some developers disagreed. This coupled with the fact that Miguel seemed to be the only truly active worker, (he was writing the code, the web pages, doing the PR, managing the project and just about everything else!) led to the inevitable result of a burn out and the project was declared dead around Sep, 24.
Arianne is dead.\n This project is really exhausted and IMO it can't continue anymore on the  \n actualy structure. There are 27 developers on Sourceforge and only steve has  \n been working lately with PHP of developers site and Skyflash with changing the \n sites content.\n So 24 of those 27 persons are doing NOTHING.\n And well, things are even worse if you take a look to the developers site. \n There are several people joined... around 20, I have dedicated several hours of \n my personal time to create tasks and fill them with good descriptions so that \n people can take them and just look what is the reply... Only steve has used it. \n None except again Steve and Skyflash has filled a single task.\n None of the GFX people has joined the site.\n Well, and about mailing lists... more of the same... I have do a CALL for \n people to know what everyone is doing here... and the reply has been nothing: \n None has had time to write a few lines explaining what they are doing.\n Project code needs a total clearing... I am writing test cases for Arianne and \n it has found to be really instable on the Connection and Thread related things, \n so the only way to continue is to clear it or recode it.\n If someone offers to take the leadership of Arianne I will transfer him all the \n keycodes and all the rights over the code that I have written, so that he can  \n continue Arianne as s/he thinks it is better, even changing the license.\n If none offers to take it, I will meditate about either shutting down it, or  \n clearing ALL and start again from the begin of the begin in a new way no  \n developers, no website, no teams, no tasks, no contributions, no ideas.\n One of the biggest errors of Arianne has been to be too open, we have accepted \n on the team people that is not really to take the task, we have accepted tons\n of ideas that are really impossible to be done, I have failed to motivate and \n coordinate this group of people into working on it. Also I have written a huge \n ammount of documetation, several of you will say that docs are a shit ( like \n Uli did ) but again, none has written a better one,  what Uli wrote was only a \n email long documentation in a very technical language that hardly can help a \n newbie to understand it. I have created, used and recommended sourceforge \n trackers but little people has really used it.\n I have tried to do an schedule of the project but people has not contributed a \n single line to inform me of what they are doing. \n You don"t document anything... nor decisions, nor code.\n Personally, I still have the same motivation to create a MMOG as before \n starting to work on Arianne, so I will for sure retry it, either on Arianne or  \n by my own with the experience that I have get on Ariane.\n Anyway, I really want to thank you all the 3 years of Arianne, I have meet real \n good friends, I have had great times and I have felt the proud of being an open \n source developer, I also have felt the sadness of getting only bad words of  \n what you do, from inside and outside, I have also understand that people always \n talk more than they can do. Anyway, Thanks to all.\n Regards,\n Miguel
Now that I re-read the letter, I see that I was really burnt out! :-D\nHowever, soon after that letter something happened that I really didn't expect; I got several request to transfer the leadership of the project. The only ones that I 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.\nEuan's period was really short in fact. Euan thought that a leader must not be the best and greatest developer but we soon found out that they must be in practice. There was lot of consulting about the project, it was evaluated on the whole and lots of changes where proposed. But Euan disappeared...\nAfter that Skyflash took the leadership and using the base work of both Euan's period and the previous years he started to work on a new version that featured a 3D client using plib.

Year 2003

\nIn the year 2003, the project started to move again and without dropping the old code Skyflash managed to fix bugs and add new features, as a 3D client that allowed players to move, fight and cast magic. This version of Arianne featured a Lua scripting engine that made everything very interesting. This version was called Naxos thus starting a new version naming scheme. TODO: Search for an image of 2D Client in 2003 The progress of the project was totally in Skyflash's hands, and he did a great job, but he had to move back to his home on Sep, 2003 and he requested someone to take over the project for at least 6 months to a year. Meanwhile I started Marauroa, a java clone of Arianne that has the things I thought Arianne should have had; UDP, a database backend, persistent objects, scriptable, robustness. Around Dec, 2003 I had a version that was already superior to Arianne thanks to the help of Waldemar Tribus. I asked Skyflash to pass leadership to me for the next 6 months, and so in October, 2003 I became leader again.\nLots of things had to be fixed and I started work straight away.\nI first created a new webpage and removed the PHPNuke, (I used a previous website that Djagg had made for Arianne). I then wrote a revision of the project status to know 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.\nSince I had Marauroa in a stable status, and I was really amazed of how stable Java was, I suggested to use Marauroa as Arianne's server. And as there was no better idea, it was integrated.

Year 2004

\nIn 2004, Marauroa joined Arianne as a single project. We redefined Arianne's goals so that now Arianne is a framework to create online multiplayer games, and Marauroa is the content management system of Arianne framework. Marauroa now features a fully scriptable RP engine using Python.\nArianne was rewritten, but now only as a client side application able to connect to a Marauroa server. Arianne was simplified so it was extremely easy to write new games, and Python binding was added so that development of games in Python was made possible. Arianne heads now to begin a great framework for developing games. At the time of writing there are three games using the system in its alpha stage. On 2004 Sep, 8 Arianne will be 5 years old.

Components

\nArianne is composed of two different parts:
server and client

Server

\nArianne's server is Marauroa: Marauroa is a Java implementation of the arianne design so that it is secure, fast and robust platform for providing content. The goal of Marauroa is to ease the creation of multiplayer games as
Content management system eased the creation of webportals. 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 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.

Client

\nArianne's client is not defined but a reference platform is available.\nThis engine is called ariannexp and provides wrapper for C, C++ and Python to develop new arianne clients. All Arianne games must use this wrapper so that you automatically get the updates and fixes in your games.

Games

\nArianne features several games, some of them done to test the different iterations of the engine, some of them done by 3rd parties. Most of the games are in constant development always.

Objective

\nThe goal of the Arianne project is to create a
fantasy virtual medieval world using only open source tools and following a open source development model. In that world the goal is to run a role play game that will try to be as fun as pen and paper games.

Gladiators

\nOn Gladiators you are the player, and you own several characters, each characters is a
gladiator. 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 spectator you can decide if the looser die or not and the amount of fame that is assigned to each of the fighters.\nYour main goal is to get fame so that you can buy better equipment, and better gladiators.

mapacman

\nThis is a implementation of
multiplayer Pacman style game using Arianne framework. \nThe objetive of the game is to score as much as possible by eating pills and making sure you are not eaten by ghosts.\nThe interesting thing about mapacman is that it is online and multiplayer, and it serve us as a base to develop more the framework.

External link

\n*
Arianne homepage\n* mapacman homepage\n* Gladiators homepage\n* SourceForge project home

"Make everything as simple as possible, but not simpler." - Albert Einstein (1879-1955)