Welcome to the source code documentation of the FreeCraft engine. For an open source project it is very important to have a good source code documentation, I have tried to do this with the help of doxygen (http://www.doxygen.org) or doc++ (http://www.zib.de/Visual/software/doc++/index.html). Please read the documentation of this nice open source programs, to see how this all works.
Any help to improve this documention is welcome. If you didn't understand something or you found a failure or a wrong spelling or wrong grammer please write an email (including a patch :).
Visit the http://FreeCraft.Org web page for the latest news and ../doc/readme.html for other documentations.
This are the main modules of the FreeCraft engine.
Handles the map. A map is made from tiles.
Handles units. Units are ships, flyers, buildings, creatures, machines.
Handles missiles. Missiles are all other sprites on map which are no unit.
Handles players, all units are owned by a player. A player could be controlled by a human or a computer.
Handles the high and low level of the sound. There are the background music support, voices and sound effects. Following low level backends are supported: OSS and SDL.
adpcm file format support for sound effects
better separation of low and high level, assembler mixing support.
Streaming support of ogg/mp3 files.
Handles the high and low level of the graphics. This also contains the sprite and linedrawing routines.
See page Module - Video for more information upon supported features and video platforms.
Handles the high and low level of the network protocol. The network protocol is needed for multiplayer games.
See page Module - Network for more information upon supported features and API.
There are currently two AI's. The old one is very hardcoded, but does things like placing buildings better than the new. The old AI shouldn't be used. The new is very flexible, but very basic. It includes none optimations.
See page AiModule for more information upon supported features and API.
CCL is Craft Configuration Language, which is used to configure and customize FreeCraft.
This is the integrated editor, it shouldn't be a perfect editor. It is used to test new features of the engine.
See page Module - Editor for more information upon supported features and API.