Coding
From modwiki
All engines in the id Tech 4 family are written in C++, a high-level programming language. Coding, as it applies to id Tech 4 games, is the modification of the engine's public source code to extend upon its capabilities.
Contents |
The SDK and its limitations
Because the engine is not open source (although it likely will be in the distant future), the public is only afforded the ability to modify a portion of the complete source code.
This incomplete portion of the source code is known as the SDK, or software development kit. This package affords modders the ability to compile a new gamex86.dll/gamex86.so/gameppc.dylib file for windows/linux/mac respectively.
Since the SDK does not contain the full source, certain aspects of the engine are not modifiable without licensing. For instance, the physics code is included but the renderer code is not. For more details on each file and class included in the SDK, and therefore what can and cannot be done, please read The annotated API.
- Download the Doom 3 SDK (~7MB)
- Download the Quake 4 SDK
- Download the Prey SDK
The latest version of the Doom 3 SDK (1.3 as of this writing) supports Visual Studio .NET 2003 and 2005 "out of the box".
References
- The annotated API
- CVar flags (Description of the flags)
- Server query protocol
Coding tutorials
- Adding a custom keyhandler
- Beginner's Tutorial (Part 1) Filetypes
- Beginner's Tutorial (Part 2) The SDK
- How to build the SDK on Linux
- How to build the SDK on OSX
- How to build the SDK on Windows
- How to add custom console commands
- How to add CVar's
- Rendering with the D3 renderengine
- D3 Networking: Basics
- D3 Networking: Communication
- D3 Networking: Setting up a test session
- D3 Networking: Snapshot synchronisation
- D3 Networking: Server and client side events
- D3 Networking: Server- and UserInfo
- D3 Networking: A birth and death of an entity
- D3 Networking: An overview of the architecture
- D3 Networking: Delta and PVS-based synchronisation
- D3 Networking: Client-side prediction
- Q4 Networking: Encoding messages like snapshots
- Q4 Networking: Deltifying rockets away

