[ Home ] [ Download ] [ Development diary ] [ Artpacks ] [ Screenshots ] [ Documentation ]
[ Frequently asked questions ] [ Plans, possible improvements ] [ Developer information ] [ Links ]
forum (hosted by sourceforge)

gltron Deleveloper Information

I'm trying to set up a small page with information for people interested in helping with gltron development.

General information

License

gltron is released under the GPL (GNU General Public License) which basically means that you are free to modify and redistribute it, as long as you make the source code freely available. Of course, it's far more efficient if you send your changes/enhancement back to me so I can integrate them into the main source tree.

Subversion (svn) access

To make development easier and keep everyone up to date with the newest version, I use subversion now (it has several advantages over CVS). The subversion repository is not hosted at sourceforge, but at berlios.de

You can checkout the source using either svnserve or http:

svn checkout svn://svn.berlios.de/gltron/trunk

or

svn checkout http://svn.berlios.de/svnroot/repos/gltron/trunk
Later, you can just do a
svn update
More information about Subversion is available on the project's homepage.

Where to start

First, check out the gltron ideas page. I try to collect all the requested features there.

I recommend the following procedure for the time being:

  1. Check out the gltron ideas page.
  2. Decide on what you might want to implement.
  3. Tell me what you're going to do and bug me for more information if you want to know how things (are supposed to) work.
  4. Check out the latest version.
  5. Start coding, test and submit a patch.

How gltron works

I'm going to describe (just a little bit) how gltron works, and where stuff gets done. This is bound to be outdated and incomplete all the time, so check out the source too.

Note: this is VERY outdated at the moment!

Dependencies

The current CVS build (0.59) relies on Glut (3.7) or SDL (1.1) for the window management and libmikmod or SDL_mixer for the sound output. libmikmod does not support very low latency mixing, so for FX playing along with the music you need SDL_mixer.

These functions are incapsulated in system_sdl.c or system_glut.c and sound_sdl.c or sound_libmikmod.c. sound.c and system.c are symlinks to the respective system dependent files. The same goes for the header files.

Modes

gltron has several modes, each has his own set of callbacks (see below) You can switch modes by: (possibly incomplete list)

Event loops

gltron is entirely event driven. It gives up the main loop to glut/SDL (ok, for SDL we just enter a glut-like main loop).

There are several callbacks (defined in the callback struct, see data.h).

init could call initGL anyway, so I guess this callback will soon be removed.

Notes for artists

You're an artist? Good. I don't do the textures myself anymore, but new textures (wall & floor) are always welcome.

There is a way to customize textures in GLtron. It's called "art pack". After you installed GLtron, there is a directory called "art" which contains at least a "default" directory. The "default" directly contains all the textures used in the game (except for the fonts). Art packs go into different directories. Just place all your new texture into that directory. The ones you don't use will be loaded from "default". Restart the game. You can select your new art pack in the Video menu afterwards.

That's it for the moment, I'll add stuff to this when people ask questions.


[ Home ] [ Download ] [ Development diary ] [ Artpacks ] [ Screenshots ] [ Documentation ]
[ Frequently asked questions ] [ Plans, possible improvements ] [ Developer information ] [ Links ]
forum (hosted by sourceforge)

Hosted by Sourceforge