summaryrefslogtreecommitdiffstats
path: root/README-DEV-OPENGL.txt
diff options
context:
space:
mode:
Diffstat (limited to 'README-DEV-OPENGL.txt')
-rw-r--r--README-DEV-OPENGL.txt40
1 files changed, 40 insertions, 0 deletions
diff --git a/README-DEV-OPENGL.txt b/README-DEV-OPENGL.txt
new file mode 100644
index 0000000..8d0c1aa
--- /dev/null
+++ b/README-DEV-OPENGL.txt
@@ -0,0 +1,40 @@
+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.
+