Crimson Engine - Dooake
Description: (Scroll down for ScreenShots/Videos ;) )
Crimson Engine is a 3d Engine i wrote as a hobby project for about 2 years, starting from when the Doom3 alpha leaked.
I wanted to prove to myself that i can create a playable first person shooter with modern (for that time...) 3d effects and gameplay.
After my previous hobby project of writing a Quake3Arena Clone, i wanted to leave behind the fixed-pipeline and move to a Shader centric engine. (I used cg since it was the only option that worked for both OpenGL and DirectX).
The key concept was to code all of it myself, and not use any libraries except from FMOD for 3d sound. I wanted to learn both advanced OpenGL & DirectX, so i went with an API agnostic approach, supporting both.
While constantly working on the visual side of the graphics engine side, i gradually added game play elements.
Graphics
API Agnostic - Supports both OpenGL / DirectX
Dynamic Lights (PPL)
Shadows (Shadow Mapping)
Animation Controller of Skeleton based characters (MD5)
Full support for Post-Processing effect - basic and more complex chained ones as well. For example:
Depth Of Field
Specular Bloom
Heat Haze.
Custom Material System that supports all of the above
BSP/Portal Culling (q3bsp/ proc respectively)
Resources Garbage Collection (SmartPointers+Ref-Count system)
Particle Systems - Supporting easy to write particle system scripts
GamePlay
Supporting loading of Doom3 levels & Quake3Arena levels
Collision Detection
This was actually one of the most challenging parts ...
I'm very satisfied with the results =)
Netplay - Allowing fighting multiple oponents over the network.
I've written a reliable protocol over UDP for fast game events updates
Standard UDP plus dead reckoning were used for player positional and rotational attributes.
TCP was used for features like Chat and Hanshakes.
3D Sound (using FMod).
Events triggering on keyframes in character animation description files
GUI
In-Game Chat
I called the game "Dooake" because it was mostly Doom3 monsters fighting on Quake3Arena levels.I thought it would be cool to get to play Doom3 monsters,which isn't an option in doom3 itself.
Disclaimer:
I am not connected in any way to id software, and they hold all rights to Quake3Arena and Doom3.
Download Movies:
Local GamePlay Demo - 24/04/07
Movie 1 -Mancubus animation blending + Shadows
Movie 2 - Vagary - (a cool doom3 spider-woman monster)
Movie 3 - Parallax Mapping - showing implementation of parallax mapping shader
Notice: a random geometry was used, so edges aren't ideal ;)
Movie 4 - Mancubus - different colored light sources
Screenshots from development phases of CrimsonEngine: