Sick Kreation’s End Game Engine…

Filed Under (Engine) by Ruben on 14-08-2012

Hello Everyone, my name is Kevin and I am the programmer and founder of Sick Kreations Studios.
I want to take a moment and describe the current state of our game engine for anyone that is interested.
The End Game Engine has evolved a lot since the release of KGB in January of 2010. It is built on XNA and the core of the engine is completely propietary C# code. Here is a quick overview of the engine.

Core
Multi-Threaded, running three threads each on their own core on the Xbox 360, separating the ‘Update’, ‘Physics’ and ‘Draw’ task. This allows the End Game Engine to utilize the full power of the Xbox 360 PowerPC and achieve frame rates of 60 frames a second while rendering geometry consisting of hundreds of thousands of vertices’s and hundreds of textures such as the End Of Days Level.

Rendering
Fully deferred rendering at 1280 x 720 HD resolution
Gamma correction on textures for accurate linear lighting
Deferred lighting supports one directional and hundreds of point lights
Baked lighting exported from authoring tools to get highest quality
Dynamic shadow mapping used for FPS player hands and weapons.
Post processing Bloom, Blur and HDR

Collision
Triangle level collision for ray cast at the highest level of detail of the render-able geometry and low polygon mesh collision for FPS character movement in levels. Triggers for running events and moving FPS character on objects such as ladders

Shader
Every render-able model can have Diffuse, Normal , Specular, Emissivity, Reflection and Alpha Blending maps applied

Audio
All sound is authored in XACT3

Optimization
If you are familiar with XNA and C# then you know that a big caveat with frame rate and smooth performance is the Garbage Collector. While developing KGB:Episode One, I found that I was going to have to abandon elegant program code for a mass of ugly public and static variables to avoid garbage collecting hic-cups. The single biggest fix for this was in the “Skinned Model” sample from the XNA tool set. My animation code is based on that example and moving all the base “classes” to “structures” significantly improved garbage collection performance.
Another performance optimization built into the engine is vertex compression. Nuclear Wasteland 2030 was vertex bound and that is why it was released at 30 frames per second. Although the XBox360 can process hundreds of thousands of vertices blazing fast, I ran into a bottleneck in NW 2030 with grass. So immediately after NW 2030 was released I added the vertex compression and tripled the number of vertices that could be processed thus allowing for many model assets to be added to End Of Days.

Since releasing End Of Days I have spent time on two significantly new features; Navigation Mesh based on Recast/Detour for pathing AI and a .DLL that I wrote to support Modifiers in 3DS Max. The Recast/Detour is nice…I wrote an export routine for the Recast demo to save the navigation mesh data in an XBox360 format for the game engine and ported the “detour” part of the code to C# to run in managed XNA. I have also added deferred lighting shaders that output HDR.
Except for a few thousand other small details that I left out, the End Game Engine is running extremely fast, has a very promising future and is allowing us to quickly develop beautiful looking games that are fun to play. We currently cannot offer to sell or share the engine even though we would love to due to the fact that we do not have time to offer support for it. Hopefully in the future we will be able to share our engine with other developers.
If anyone has any questions or comments regarding the End Game Engine then please do not hesitate to leave a comment and I will answer as soon as I can.
~ Thanks, Kevin ~