The main development is carried out under Ubuntu Linux. Programming is done in whatever text editor (I use the Anjuta IDE), and compilation is done with a standard C++ compiler (I use the GNU C++ compiler).

Of course, since one of the main goals of the game engine is portability, I try to avoid any specific constraints on the development environment.

Software Modeling

For the first time I use UML to structure my work. Currently, I only use it for sketching and documenting the class structure, not for generating code etc, but it helps a lot in getting the class structures right.

The tool I am currently using is DIA, an open source diagram editor with basic UML support.

I also plan to use DIA for describing the main program flow. I realized that it is probably a good idea to try to piece all the different tasks of the game loop together in a flowchart. That way it is easier to figure out which parts are dependent on which results, and what parts can be parallelized using threads or other means (such as occlusion culling, sound output, bot AI etc).

Version Control

I am using a public Subversion repository on Sourceforge to host the game engine source code. Not all data is hosted there (e.g. map data and 3rd party libraries) so it is currently quite difficult to compile and run Hover Extreme from the source code.

However, you can download it from Sourceforge (check the instructions for Subversion checkout).

3D Modeling

Of course, some kind of modeling tool is required for producing the in game models for player vehicles and statics objects etc. Competent modeling software tend to be expensive commercial products, with one notable exception: Blender. Blender does not only have the advantage of being both capable and free, it also supports a plethora of popular 3D model formats.

I know Blender has a quite steep learning curve, mostly due to its non standard user interface. I intend to learn it, though, and once I do I hope to be able to use it for most of the 3D artwork (including map design).

The game engine itself should have support for a number of different model formats, so that artists are not limited by the model format for their choice of modeling software. Currently the game engine supports 3DS (3ds Max), MD2 (the wide spread model format originally used in Quake 2) and STL (a simple triangle format supported by most CAD software). I plan to include support for other formats as well, including the OBJ and LWO formats, but right now the 3DS file support does a good job.

Music & Sound

Personally I use MadTracker and ReNoise for composing music. They produce high quality sound, support VST plugins and a bunch of advanced effects, and run fine under Ubuntu (MadTracker runs in Wine).

I have not yet found a sound editing tool for Linux that I am comfortable with, though. I am not really fond of Audacity (it lacks some fairly basic tools, such as non-linear amplification), but I guess I will use it for now. I really like Adobe Audition (previously Cool Edit Pro), but it is too expensive and does not work under Linux/Wine.

I will have a closer look at Ardour soon, to see if it can do the things I need. It looks very interesting (and free, of course).