The Drag[en]gine is a fully customizable game engine and game development environment designed with modularity and extensibility in mind not requiring expensive licenses.

Post feature Report RSS Progress Report

Since there have been a number of people already interested in this game engine we decided to produce a little progress report to give you all an idea of where we are standing.

Posted by on

This article is geared towards people interested in getting a quick overview of the current state of the engine as well as people interested in a bit of technical talking.

Overall Status


Many asked for a release date to be announced. So far we can not give a definite release date for the Drag[en]gine but somewhere fall 2008 is a planned point in time to get things wrapped up enough to be released. Mind you this is only a rough estimation. Things can go slower or even faster depending on this party pooper called real live. Now up to the progress report. The progress estimation relates to the first release. Of course optimizing and improving modules is the primary goal after the first release.

The reason for not following the "release often - release early" paradigm is due to the design of the game engine. A high modularity requires a lot of interfaces and connections between the engine and the various modules including finally the game developer. Nothing is more annoying than huge API changes breaking your project. Therefore the goal is to develop the engine to a state where those interfaces and connections are no more subject to major API changes anymore. After reaching this point the "release often - release early" paradigm is picked up again for future work. An overall progress of the engine is difficult to state therefore the report is broken up into the major construction sites.

Game Engine Layer


This is mostly done lacking only support for some more nifty file systems tricks as well as providing caching. You can consider this part of the game engine done by now.

Graphic System


One of the biggest construction sites. So far most features are implemented. There are still performance problems with heavy lighting and shadow casting. More aggressive scene management are currently worked on as well as researching ways to produce shadows faster than what the common techniques are able to produce on mid-end systems. There are a couple of features still missing like handling of decals, model level-of-detail and a final word on the texture animation system ( since there's still some debate going on about the final implementation of it ). Speed is a major concern what goes for the graphic module right now since it is aimed for quite some eye candy. A weaker OpenGL module will be written later on for weaker systems ( this also includes consoles not only end user computers ) with less GPU power. Overall the module can be considered done to something around 70%.

Physics System


Another big construction site especially what goes for performance. The system is working right now but there are a couple of features missing like inter-object joints and other fancy things like rope-physics ( use case of inter-object joints ). Since the underlaying Bullet Physics library is a big construction site itself and has a tendency to change a lot in short time the work on this layer has been postponed a bit until the wages calm down. Another point is some cleanup of collision code as well as turning it a bit more robust. In general the completion level is also somewhere around 70%.

Network System


This system arrived recently but got quite some work done. The definition of the system is more or less fixed by now. What is missing is the dead-reckoning code part but it is not a major piece of work to implement since the fundamentals are laid already. There is also some work left to make connections more robust as well as performant on lower bandwidth systems but in general this module can be considered mostly done. Completion level is therefore around 85%.

Audio System


The audio system has a few final interface definition choices left open but otherwise it is fixed by now. 3D audio features adjusting sound due to the kind of space you are located in is not done yet but should not take too much time once tackled. Everything else like playing, streaming or 3D position based attenuation works. Therefore the level of completion can be estimates as somewhere around 80%.

Crash Recovery System


Everything is in place and the vital parts of the game run protected by it. The GUI for user interaction requires a couple of improvements but all operations are supported including exception trace, module properties and the module command console. Can be considered done.

Animator System


The interface is defined and fixed by now. There is currently only a small bug left in the inverse kinematic code but otherwise the system is finished.

Scripting System


The system itself is done. The DragonScript module is also in general done. There is a problem with garbage collecting which has to be solved but this is not required to get a first release done. It gets only ugly if the engine goes down for some reason where cleaning up fails in the scripting module. During normal operation of a game no problem exists. For the first release only DragonScript will be supported. Later on more modules for other languages like PHP or Lua will be added.

Various Resource Loaders/Savers


This groups all kinds of modules used to load and save resources like images, models and alike. Except the video module all others are finished so far. Most of them do though not support saving yet but this is not a dire requirement for the first release therefore they can be considered done except the video module which has to be build.

Game Launchers


The game launcher is so far done and working. It is currently only a console launcher so no fancy GUI yet. For the first release only the console launcher will be deployed since this is enough to get a game up and running. The GUI version will be worked on later on to make the engine more usable for the casual gamer.

World Editor


This tool is designed to produce the game worlds. In the current state it is working and usable to create and modify worlds. There is quite some room for usage optimization but in general it works and is in a releasable form.

Animator Editor


This tool is designed to produce animators for game code. The tool is still worked on and is quite new. With some work left this one is roughly 70% away from releasable.

Summary


This has been now a lot of text to read through. Overall the engine is coming along and the major time consumers are the Graphic and Physics module right now. Everything mentioned here works on Linux and Windows and is tested with ATI and nVidia graphic cards. There are issues with the Linux ATI drivers but it is not know yet if this is a general driver problem or affects only older cards. The issues only make things look a big ugly ( depth artifacts ) but does not impact playability. This article will be updated when new progress is done so keep an eye on it.

Post comment Comments
Aeneas2020
Aeneas2020 - - 922 comments

very thorough thanks for the update

Reply Good karma Bad karma+1 vote
mecanita
mecanita - - 8 comments

Thank you very much for the update, and keep up the good work!

Reply Good karma Bad karma+1 vote
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: