[ 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:
- Check out the gltron ideas page.
- Decide on what you might want to implement.
- 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.
- Check out the latest version.
- 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)
- gui - the menu interface
- pause - the game screen is displayed, the game is paused
- game - the game is running
You can switch modes by: (possibly incomplete list)
- pressing escape
- pressing space during the game (pause / resume)
- chosings 'start game' from the game menu
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).
- display: things get drawn here
- idle: physics, the game advances a 'tick'
- keyboard: ordinary key gets pressed
- special: non-ascii key gets pressed
- init: the mode is entered
- exit: the mode is exited
- initGL: the mode is entered: initialize OpenGL states
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