No this is not a new code language in Visual Studio 2012 but our new game engine. After endless attempts of finishing an engine (or what is usually called to be one) I started a 2d game project lately and stopped due to the lack of time (sadly). Now while working on a commercial project for a friend of mine I put my work and much of additional effort and formed D+ which is a complete game engine and should be the follow up (it’s not really a successor) to the blueEngine which was started some years ago and never finished.
I won’t pop up here with ground-breaking features since D+ will not be available for public. If you are looking for good game engines try Irrlicht or similar projects. D+ is a framework just for me and DTI Entertainment (my branch of game development).
Why do I post this? Because soon some games will follow up.
To make on thing clear. I’m realistic and I know I’m not a John Carmack and I will never be. I won’t make advertisement on this blog about great games which in fact will never be released. I’m someone who has some ideas and thinks they will be entertaining. Why did I develop D+ instead of using Irrlicht or something which already exists? I could have used Irrlicht instead but 1. I wanted to develop my own game engine (again the emphasis is not graphic engine but game engine) and 2. Irrlicht did not meet my needs.
Enough talking now let’s get some engine details:
- engine written in C++ using DirectX 9.0c
- completely scripted using LUA as script system
- shader driven engine using HLSL
- shader library contains predefined materials and effects like normal mapping, parallax mapping, specular mapping etc.
- particle engine with predefined effects like smoke, rain, blood, snow, sparks etc.
- sound engine with positional sound (3d positioning) using XACT and DirectSound
- basic path finding algorithms using A* path finding
- static and dynamic geometry using destruction models
- skinned mesh models
- real time physics using Newton Game Dynamics
- currently using Microsoft x file format for static level geometry, static models and skinned meshes
- frustum culling, occlusion culling and octree used for efficient level geometry rendering
- Dynamic LOD for all elements in game engine using progressive meshes
That are only the main features to mention. Please don’t start a discussion why we are using the x file format. It’s more than easy to implement, easy to use and with the already available progressive meshes it’s very performing. It saved us a lot of time at integration level and it works perfectly with Newton Game Dynamics which allows us to integrate it for level geometry and for all the objects.
I think we did a great job with this game engine. It’s a very nice framework to work with and the test stages showed us that with few lines of code we were able to directly start developing a game. To avoid the mistakes made when developing the blueEngine (which was in fact more an API wrapper of DirectX functions, not really what is called a game engine) the intension this time was to build something which allows the developer to do what he is intented to do. To code his game. Not to try messing with different Draw calls. We used the technique of dynamic DLL binding described here which means that maybe this game engine could make it as a stand alone product and of course will be extended with a DirectX 10 Or DirectX 11 render interface and/or additional features.
That’s enough for now. As soon as I have some time I will follow up with some screenshots and videos to show what we have. The main focus is to start with our first game project so this has of course priority. Thanks for reading this.