Time Breach is a communitarian project for a massively multi-player online game. This game is based on Open Source software.
The main idea of the project is to create a MMOG (Massively Multiplayer On-line Game) free game. It runs like that :
- Each player can create his own character and make it evolve in the time Breach concept (usual feature)
- Each player can create a world in the Time Breach universe (usually done by the project development team)
This principles already exist in some video games like Neverwinter Nights, which allows the player to create his own worlds. Unfortunately, the worlds in this game haven’t relation between them.
To be part of the MMOG game category, all the servers need to have a coherence between the rules, the story and the game events in their globality.
A central server is thus necessary to unify the worlds from the ones to the worlds of the others and so create an harmony to present one and only one universe to the player. We have wished to create a project that doesn’t and won’t need money. The only central server type which is easily and freely hostable on the net is actually a web site.
Our goal is to propose a game with 3 modes :
- Playing all together (classic MMOG)
- Play a character and make it evolve (Role Playing Game)
- Playing and making business strategy inside his own world (Real Time Strategy)
In the beginning...
In the beginning, the authors wanted to create a free MMOG (i.e. a free World of Warcraft). They contacted people around them to be part of the adventure. Eight people said there were interested and the first appointment took place in June 2005.
The game universe
The specifications of the game universe are essential and sensitive :
How to create a game universe that everybody will like ?
One solution is the time breach ! This way, players that play with lasers and robots evolves aside with magus, barbarian and monsters without problem.
How to integrate the player in the heart of the story ?
Some idea proposal systems with polling exist but the player will not find back his customization in this kind of management. Of course, it must be taken into consideration. One solution is that the players host themselves their worlds. By creating a common centralized library of monsters, building, game elements, … the player uses a common universe and may build his world staying in the universe harmony.
The technical structure of this project must take in account that :
- It’s a free and open source project (development progress will not be uniform)
- All the members wanted to be active in the project as soon as possible
- Team coordination is difficult due to the distance between the project members
In those conditions, the project must be structured in blocks. Each block must respond to one specification and provide an user’s guide. This type of development is quite classic. But, general blocks can’t be written before the basics blocks are defined. Defining a global architecture with a content standard organization of all blocks allow to start the development of all blocks in the same time. Now, for the Time Breach project, the general organization is ready. However, to set up a good block standardization, you need a good knowledge of the used libraries. The goal of video game development is not to reinvent the wheel but to build a given universe. The time breach system is like Russian headstocks : boxes that contains basic libraries : - Central server (to centralize and to coordinate the game universe) - World Server (to host a world)
* Graphic engine * Video game Engine * Network engine
- Client (to play a character in a world)
* Sound engine * Graphic engine * Video game Engine * Network engine
- Editor (to create a world)
* Sound engine * Graphic engine * Video game Engine * Network engine
So we find common blocks in each block. Each of those blocks (called engine) contains themselves other blocks : Game engine
Video game engine
*Artificial Intelligence *Script interpreter *Physical engine(surely Open Dynamic Engine) *Common repository of all blocks
* Not yet defined. Using Jabber is evaluated.
Some middleware also exists which groups all the elements like massiv allowing to be concentrated on the game only.
The open source tools
An open source project doesn’t have generally the money to buy proprietary and expensive tools. It’s the case with Time Breach. Here are the tools that Time Breach uses for his development
- blender : 3D creation of mesh
- gimp 2D creation : texture, images, etc.
- Eclipse IDE : for programming using Ant and the CDT module
- Concurrent versions system to organize the development work of the team
- Xoops as the main communication tool . It’s a CMS
- Mailing list in case of Xoops failure
The main problems of a community : - There is no obligation to participate to the project - Everybody can left the project when he wants - Everybody work in the project at his own rhythm - There is no constraints if you fail to complete you work In an open source project, you must take in account those problems.
One of the solutions is to foreseen a substitute to the main jobs for the following reasons :
- If somebody left his job, the substitute can educate a new one.
- Decisions taken by 2 persons are always better thought
- If somebody is unavailable, the other can replace him (alternate work)
- Working together is highly stimulating
- Work can be done more rapidly with 2 persons (parallel work)
Only the main jobs are fixed (in fact the managers of each project section) :
- This lets the freedom to the members to participate according to their free time
- This allows the manager to select the teams for each work
Only tasks limited in duration are to be assigned to the project members
- if a member hasn’t do his work in time, the manager can assigned it to someone else.
This set of rules allows the Time Breach project to keep the stimulation at a high degree and to have a continuous work flow. By the way, Time Breach propose to realize supervised and evaluated projects to schools like IUT of Montpellier (France). This type of partnership allows to speed up the project. Speeding up the project shows new actions. New actions imply a better stimulation. A better stimulation give a advanced product and so on.
- Choice of license is very important for this reason:
- Artist would that they productions been recognized like artistic productions and not a simple modifiable content. - linux communities are based around GNU GPL that don't recognized arts productions - Propose Time Breach to Linux distributions need to have a license friendly GNU GPL.
- According to this elements Time Breach use a double license:
- A w:Creative Common By Sa 2.5 license for all arts productions (Texts, stories, sounds, graphics etc...) - A w:GNU GPL license for all programs ans sources code.
This choice able to recognize artist productions and to be compatible with free community.