Engine

The source code is divided into two separate parts, Engine logic and Game logic. Engine logic resides in Code43/code while Game logic is present in Code43/base/code.

Engine logic
We want to keep the engine logic with as few changes as possible, it is therefor mandatory to discuss engine changes with the Programming team before doing any changes. The engine logic is divided into these subfolders: Other folders are 3pp libraries that are included with the source code.
 * client - Client engine, key/mouse support, sound & music, network an other essentially client base functionality.
 * master - The master server, provides server lists for clients and keeps track of available servers.
 * gcommon - A selection of often used functions, defines and so on. Used by both Engine and Game logic. Altering this is not as restricted.
 * renderer - The OpenGL renderer, image, shaders and so on.
 * server - The dedicated server code.
 * sys - System specific code, contains Main functions.

Game logic
This is the actual game code uses the Engine logic to create a playable game, divided into three parts:
 * cgame - Client game code, this code is executed on the client side. No important game calculations are allowed to be performed here.
 * game - Server game code, this code is executed on the server side. This code has too keep track of all players and not just one client.
 * ui - The menu code, HUD is not include here but in cgame.