colobot/README-DEV.txt

41 lines
2.8 KiB
Plaintext
Raw Normal View History

2012-06-26 21:55:42 +00:00
README for developers
This file outlines the most important things for developers.
1. Goal.
This branch is the main development branch into which features from other development branches will be pulled in after completing their goals. Currently these branches include:
* opengl-dev branch - branch dedicated to rewriting the graphics engine using SDL and OpenGL
* ...
2. Build system and organisation of directories.
The directories in the repository are as following:
src/CBot separate CBot library
src/app class CApplication and everything concerned with SDL plus other system-dependent code such as displaying a message box, finding files, etc.
src/common shared structs, enums, defines, etc.; should not have any external dependencies
src/graphics/common interface of graphics engine (CEngine) and device (CDevice), without concrete implementation, shared structs such as Vertex, Material, etc., "effects" classes: CCamera, CLight, CParticle that will use the graphics engine interface
src/graphics/opengl concrete implementation of CEngine and CDevice classes in OpenGL: CGLEngine and CGLDevice
src/graphics/d3d in (far) future - perhaps a newer implementation in DirectX (9? 10?)
src/math mathematical structures and functions
src/object non-graphical game engine, that is robots, buildings, etc.; dependent only on interface of graphics engine, not on concrete implementation
src/ui 2D user interface (menu, buttons, check boxes, etc.); also without dependencies to concrete implementation of graphics engine
src/sound sound and music engine written using fmod library
src/physics physics engine
src/script link with the CBot library
src/old old modules that will be replaced by new code
Other directories, not very important right now, include:
src/doc contains the Doxygen mainpage text; it will probably be removed to app/main.cpp or some other place soon
src/metafile a separate program for packing data files to .dat format
The build system is as follows:
/CMakeLists.txt - definition of project, build type setup, general compiler options and reference to src subdirectory
/src/CMakeLists.txt - currently defines two targets: colobot_old - the original game comprised of old sources, compiles and runs only on Windows; colobot_new - new implementation in SDL, compiles and runs on Windows and Linux, for now only "hello world"-like; colobot_old target references also CBot library
/src/CBot/CMakeLists.txt - defines the CBot library target
There is also a generated header common/config.h with #defines set by CMake.
3. For other things, refer to README files in respective feature development branches.