The history of the ODF

From ODF::Wiki

Jump to: navigation, search

Contents

[edit] D.Cent and King Lo discover Descent

When King Lo (Johannes Lorenz) was looking for some 3D-games for Linux, he randomly found Descent1 (aka. "d1x"). When he and D.Cent (Philipp Lorenz) ran the game for the first time, they thought 'Damn, how shall we ever finish the first level with only 7 concussions and flares?'. Later, when they randomly found the control-key, they got until level seven (of course on "trainee" ;-) ). It was fun but since they played an unpatched version, the game always crashed when they were about to kill the boss robot. Because of that, they soon forgot about the game, but Cent still was interested in it.

A few years later (before christmas 2005), Lo was looking for a christmas present for his brother. As he was looking for Descent on "Froogle", he was surprised to find Descent in the 3rd version. So, Cent found under his christmas tree a box with Descent3 (Linux- and Windows version).

When he returned from his grandparents (30th December 2005), he couldn't wait to install the game. He soon found out that Descent changed a lot since "d1x". It took him 3 days to go through the first level. At this time, Cent didn't have any possibility to go into the internet, so he didn't know there was a patch. Since he still played version 1.0, his game crashed everytime at level 6, when the "Humonculus" wanted to fly out of its cage.

1-2 months later, in February 2006, he got his first internet-connection. Randomly, when he was looking for a solution how to fix the game, he searched for "Descent Loki crash". Fortunately, the first result was the "DescentForum". There he asked for a bugfix.

[edit] D321GO - The begin of fascination

Meanwhile, Lo, who was not interested in Descent3 at first because of the "boring singleplayer missions", installed Descent3 and made his first steps. Soon, both played against each other via the internet. However, it was difficult enough to play Descent3 online because of several reasons:

  • the IP could not be entered by a launchlink - there was not even a launcher program
  • there were checksum problems on windows servers
  • many mods were not available for Linux
  • the keyboard-layout was not set to US (e.g. colon and question mark could not be entered)

For some of the problems, solutions were available soon. Munk told us about his D3fixd (which could correct many levels' checksums) and the possibility of entering the IP into the Descent3 Registry. However, it was annoying to always edit the D3Registry manually and to start D3fixd.

After some months, Cent heard about d1x again and asked for a working Descent1 for Linux - and found DXX-Rebirth.

On the 20th April 2006, Lo had an idea for a solution - he wanted to write a Descent Launcher. Few days later, an easy C program named 'D123GO!!' was available that could not do much more than starting the 3 Descent games. But Lo wanted much more: Soon, one could enter the direct IP before launching, and the program changed the registry automatically. Additionally, on every start of Descent3, D3fixd was started, too. For image reasons, the name was changed to 'D321GO!!'.

'D321GO!!' was the beginning of the enthusiasm for creating new Descent tools (for Linux). Obviously, 'D321GO!!' was more an experiment than a planned application - it was textbased, unstructured coded, no OOP, Linux-only (lots of bash scripts by Cent), German and was only a result of Lo learning the basics of C. Still there was a lot of fascination for such new projects.

Meanwhile, Cent joined the DIII/A clan, where he made lots of new friends (e.g. Wormaus, The Lion and Smiddy) and Lo joined (because of a bad advice by Free Reader ;-) ) the CFD clan (later CLM), where he got to know d3jake, who wasn't very long in this clan.

On 22nd July 2006, the first version (0.01 alpha) of d321go was published on DescentForum.de. Even textbased, it already had lots of nice features. For example, it was possible to store personal options or to download some levels. However, since d321go grew more and more and GUIs are more comfortable for many users, Lo decided to rewrite the code in a GTK based GUI. Hence, he had to read a book about GTK+.

[edit] The TODO lists for D321GO 0.09 Alpha and the old forum

This summer (17th August 2006), Cent set up his first forum (which is still alive - http://88495.homepagemodules.de) for everyday topics, which was not used much besides the 'D321GO!!' subforum. This was the place for TODO lists, announcements and bug reports. Cent's main work was keeping up the forum and scripting and testing for 'D321GO!!'. Soon, Lo coded so much C that he could need Cent's help. So he lend Cent his C book (700 pages), which was no problem anymore since he now read some 1100 pages about C++.

On 11th February 2007, version 0.09 alpha of 'D321GO!!' was released. It was version 0.01 alpha with a GUI and few more features - like player selection, a manual, an update function and remote control for launchlinks. The release was also published at Descentforum.de (http://www.descentforum.de/forum/viewtopic.php?t=3753&highlight=d321go).

This winter, Cent got annoyed by the stupid URL and the non-administrative functions of the forum. So he decided to create his own phpbb2 forum. The only free website provider with no advertisements Cent could find, was 110mb.com. There he created his new forum on the URL dcent.110mb.com/forum. Both forums were very important for 'D321GO!!' because they contained the TODO- and bug-lists.

This version of d321go was a success, but it was a bit unrealiable, so it should have been improved. Less than two months later, a beta version was available. There was no more release the next 20 months and this version was more stable and had some nice features, e.g. the kopete dcop plugin that made launchlinks possible and improvements for port forwarding.

[edit] Many new projects in C++

At this time, Cent finished reading the C book. He started specializing on Qt3 for learning C++. Meanwhile, Lo wanted to improve d321go more with porting it to C++. So he started to learn GTKmm (a C++ wrapper for GTK+).

All this together caused a little 'contest'. Lo and Cent wanted to write seperate GUIs for d321go, to show which GUI is better. Additionally, Cent started to write a 3rd GUI in WxWidgets.

This spring, Lo and Cent have started lots of new projects - DOG (March 2007), D4L and the send recv filter (April 2007).

[edit] The founding of the ODF

It was 6th May 2007 when Cent and Lo came home from a weekend without Linux and were frustrated of the problems with Windows. On a boring car ride home, they had the great idea to create a community for open source programs for Descent which should be registered at SourceForge.net (http://odf.sourceforge.net). They did not need a long time to look for a good name and they both agreed on "Open Descent Foundation" (ODF). The only disadvantage was that the letters 'ODF' were already used for the "Open Document Format", which is used by OpenOffice.

When they just came home, Lo immediately started to work on the homepage. One week later, on 13th May 2007, the registration was sent to SourceForge. Three days later (16th May), SF set up the URL, and the next day, finally the homepage went online.

Cent meanwhile created a new forum for the ODF on lima-city.de. Because the server there was really slow, the forum moved to www.odf-forum.de on 18th June 2007. The sponsor was "Wormaus" (thanks again ;-) ).

On 9th July, the upload tracker was announced. We still use it as a replacement of SVN or CVS.

As they announced the ODF in the "DescentForum", the foundation was criticized a lot. Reasons were that a lot of people tried to make a "Descent 4", and they all failed. Because of that, the ODF was unpopular (even if that's nonsense because everyone has different concepts, ideas and talents). Among this criticism, there were also many personal insults. However, all that did not demotivate - but motivate them!

In only two weeks, 6 members joined them (e.g. "The Lion", "d3jake" and "Realizer").

This summer, some new projects were founded, like d321go++ and libodf. Working on DOG continued.

[edit] Specialising on a new Descent and trouble with modelers

Meanwhile, the ODF members made their plans for a new free and open Descent clone. The first problem was the name: Because the name "Descent" is a trademark of Interplay, "OpenDescent" could not be used. "Do Checkor" gave us the permission to use his name idea - "Material Defender".

We also tried to find a suitable 3D engine. Possible candidates were pure OpenGL, an engine called "Irrlicht", "OGRE" and "CrystalSpace". We all made experiences with these engines and thought, Irrlicht would be the best choice.

This spring, we got two new members which did not like each other: "Ouch" and "MetalBeast". MetalBeast joined us with the idea of making a Descent based on the Quake3-engine. He said he would have knowledge about this engine and he designed models and textures for it. Even if the members already agreed to use Irrlicht, MetalBeast strongly advised us to use Quake3. As we agreed, "Ouch" still worked on Irrlicht, which MetalBeast did not like [1] (first post). Still nobody in the ODF could handle the Quake3 code, because there was no documentation at all.

On 19th January 2008, the website was improved again and it was XHTML and CSS valid. On 1st May, we finally set up our own SVN server (thanks to Delk) - but we do not update it very often, because it is much more complicated than our already existing upload tracker. One day later, our forum moved again to www.odf-online.org/forum and the homepage on SourceForge is now pointing to www.odf-online.org/homepage.

There was a dispute over Ouch's project [2]. This dispute did not die by itself, it eventually made a few members decide to leave. They left on 3rd June 2008. Read more on [3] .

[edit] First steps in game coding with DescentShooter

As Lo asked d3jake, which engine he would use, he said we should take our time to make experience and then make decisions. This summer, a cooperation between d3jake and Lo began with "DescentShooter". d3jake's idea was to get familiar with game development, and to test out the SDL library which we had decided to use because it was GPL, and had multiplatform audio and joystick code, by coding a 2D shooter game with easy netcode. While he specialized on graphics, Lo only advised him and prepared the netcode.

[edit] Turning back to good old D321GO

Cent and Lo worked too much on the Descent-related code, that they forgot about their favourite project: d321go++. In August, Lo planned the release in October 2008. So they started coding small mountains. The release plan could not be realized, they moved it to Christmas. Currently, d321go++ was not released yet (state of knowledge: May 2009), but it's nearly done!

Just before Christmas, an angel called "odf_bot" pleased the DF chat. With the netcode of d321go, it can search players on the servers and display running missions and mods.

[edit] First steps on Flight Back

In April 2009, two events caused the Open Descent Foundation to take important steps in developing Flight Back. The first was that Lo finished the netcode for DescentShooter (which could still be improved, but the gameplay is not far enough). The other was that Lo heard of another member who should already prepare some code for Flight Back (name kept anonymous here), that he/she wanted to dictate which libraries/languages shall be used.

So, Lo thought of a new concept for Level Rendering in Flight Back (see Flight Back article). Since he wanted to reuse the popular Descent3 Levels, but also wanted to allow new formats, he decided to use an exporter, which should create a new file format that could be read by a new file loader written into Irrlicht[4]. Within 2 days, Cent and Lo wrote the level exporter (which was based on d3l master) and the new Mesh File Loader for Irrlicht. At first, it was only able to read the wirefreame (verts and faces), about a week later, it was possible to load the textures, too. Soon, normals were read as well.

d3jake and Cent fixed the problems with simple player vs. level structure collision. Advanced collision would still have to be implemented (player vs. object, alive weapon vs player or player hits sphere). For these and some other reasons, d3jake asked lo to write code for a physics engine. However, in autumn 2009, d3jake left the project alone for some months to concentrate on studying. Since no one could code without Jake, development nearly stopped.

[edit] Autumn/Winter 2009 - Releasing projects

Lo and Cent used the time without Jake to finally release their - mostly finished - code: On October 14, first time releases of PIM and libodf were made, and also a new release of the odf-tools. On December 6, 2009, a first time release of doh was published as well as an update of libodf for doh. On March 2010, they are very close to a first D321GO!! release and an update to PIM.

Also, with the help of Delk, Cent set up the ODF bzr repository after having some permission problems. That was something very important for the coders, since there are no problems with sharing code between multiple PCs now, and the whole code of the ODF could always be read in the current version.

[edit] Spring 2010 - Progress on Flight Back

Since the beginning of 2010, work on Flight Back has continued. Jake has documented his whole code and bzr-ed it. He made lots of important changes. Together with Cobra, a member of the Bullet forums, he managed to implement irrBullet, an Irrlicht-Bullet-Wrapper, into syzygy, and also prepared a state class for multiplayer.

D.Cent fixed some bugs in rl2master; it already exports some very basic Descent2 levels into the ODFL file format. After concentrating on the GUI, i.e. writing an XML options reader/writer, a dynamic options dialog and a smooth GUI, he will have to merge his code into syzygy and will then write a Descent3 Table importer based on Lo's Table reader bubbleGam.

Lo implemented the commandline argument handlers, made efforts on dynamic lighting ("almost finished"), and plans to set up a simple netcode in August 2010. Also, he is about to finish his gamtool reader bubbleGam, soon.

In May, Dan, a new programmer, found the community. He has had collected experience with openGL in the past and might now help us with animated objects and finding a scripting language, like LUA, too. Also, Darcshadow7 (modeler) has stated he might want to help on scripting.


State of the history: 25th May 2010

Personal tools