The Drag[en]gine is an free software project with a highly modular structure based on the GLEM System. Its design is similar to an operating system. The entire functionality is provided by Modules comparable to device drivers. The engine itself acts like a system kernel managing modules, resources and abstracting the underlaying system. Due to the loose coupling of the modules with the system and other modules it is very easy to exchange or improve them without interfering with the rest of the engine. As a result the modularity extends from the developer to the end user who can now choose the optimal module combination for his personal computer even down to per game setups ( and even while running a game ) if required. Developers do not have to worry anymore about low level concerns keeping them concentrated on their game.
.
.

Advantages of the Drag[en]gine

... for the Game Designer:

  • Use your Scripting Language of choice.
  • Hardware is fully abstracted. You only have to know how your chosen Scripting Language works
  • Updating the engine and modules is handled by the respective teams. You only have to worry about updating your game
  • No need to write specific content for specific systems. The users choice of modules takes care of this for you

... for the Module Coder:

  • Play around with individual parts of the engine without disturbing any other part. Test easy and fast new algorithms or features
  • Various debugging features help to debug fast and easy modules even during run-time
  • Loose coupling and high encapsulation yields in a more stable game engine
  • Platform specific code is only handled in modules increasing portability

... for the Customer:

  • Choose the optimal combination of modules for your system. The Drag[en]gine adapts to match your system not the other way 'round!
  • Open standards and free file formats ensure unrestricted and easy modding using free software applications
  • Various Launchers allow you to use the Drag[en]gine for more than just gaming
  • The Crash Recovery System prevents a game from crashing to desktop. While CRS is running change parameters or entire modules and continue your game from where it went out for lunch.

For more informations check out the Drag[en]gine Project Page and the Drag[en]gine Wiki.
.
.

Features

Due to the modular nature a fixed list of engine features as other engines provide is not possible since it all depends on the customer's choices. This list here contains a run-down of the features provided by the default modules shipping with the game engine as well as core features of the engine itself:

Platforms

  • Linux ( 32-Bit and 64-Bit )
  • Windows XP ( Vista should work, to be tested soon )

Game Engine

  • Unlimited/Endless game worlds using fully dynamic 3D world
  • Various light sources: sky lights, point lights, spot lights and projector lights
  • Dynamic, layered Skies with bodies: sphere or box mapped
  • Terrains using Triangle Meshes or Height Maps
  • Height Modifiers for run-time Terra-Morphing
  • Animator System with support for various animation techniques: forward kinematics, inverse kinematics, algorithmic animations or game script calculated
  • Extensible Skin System using Texture Properties
  • Attachable Decals for components and terrains
  • Advanced Collider System: static, kinematic, dynamic
  • Sensor support: lumimeter, touch sensor
  • Post processing effects stack
  • Multi-World-Rendering. Render more than one world in one frame update
  • Crash Recovery System preventing a game session from dying
  • Run-Time debug facilities: exception trace, module parameters, module console, CRS, module switching and reloading
  • Various launchers for playing games, editing and more
  • Engine is L-GPL but due to launchers you can freely choose the license for your game

Launchers

  • DEGame: Runs games
  • DEIGDE: Drag[en]gine Integrated Game Development Environment with various editors ( skin, rig, animator, world )

Scripting ( DragonScript Module )

  • Operates the game engine using the DragonScript Scripting Language
  • Abstracts the engine complexity in easy to use native classes
  • Object Oriented Scripting Language
  • Support for external Code Packages

Graphic ( OpenGL Module )

  • Deferred Rendering
  • High Definition Range Rendering
  • Adaptive tone mapping ( Reinhard operator )
  • Gamma correct rendering
  • Unlimited number of light sources
  • Modified CLOD for height terrains
  • Shadow Mapping for regular lights using PCF if available
  • Cascaded Shadow Mapping for sky lights using PCF if available
  • Colored shadows support
  • Octree based Scene Graphing
  • GLSL and ASL shaders ( extensible using Shader XML file format )
  • Dynamic shader system
  • Masked and full transparency rendering
  • Normal Mapping
  • Specularity supporting: specularity, specular.color, specular.exponent, specular.multiplier
  • Self emission supporting: emissivity, emissive.intensity, emissive.color

Physics ( Bullet Module )

  • Rigid Body physics
  • 6-DoF constraints
  • Soft body ( work in progress )
  • Attachable Colliders with constraint support: static, bone/weighted ( holding items ), rigged ( cloth on body )

Audio ( OpenAL Module )

  • 3D Audio support
  • Streaming audio

Network ( DENetwork Module )

  • UDP based network communucation
  • State synchronization on module level
  • Support for multi-host servers:Client-Server, Peer-2-Peer
Image RSS Feed Latest Screens
Point Light Shadows Example Point Light Shadow Comparison Pyramid Shadow Mapping
Blog RSS Feed Report abuse Latest News: Dynamic Point Light Soft-Shadows

8 comments by Dragonlord on Oct 25th, 2009 digg this super bookmark


In this batch of work the point light source and physics constraints had been of interest. The point lights so far did not have a usable shadow casting which works with half-shadows and is not too slow. Although ATI messes up again a usable solution has been found. It's not perfect but enough for a first release ( can be improved easily later on ). Furthermore physics constraints had been revisited to fight stability issues ( exploding constraint ). Since this is a foreign physics library and a


Point Light Shadow Casting

   For point light shadows there exist not many solutions. In fact only Cube Shadow Mapping is a solution as anything else ( dual paraboloid shadow maps or other funny mapping schemes ) suffer from many implementation problems. Besides it can be expected that cube mapping support ( especially depth cube maps ) will be improved more and more with upcoming graphic cards and drivers hence it is okay to target these as a solution. Unfortunately the current state of cube mapping in OpenGL/GLSL is rather lacking. ATI for example lacks proper support for depth cube maps. That is the support is there but rendering to a depth cube map is 10 times slower than rendering to a color cube map. nVidia seems to not suffer from this problem but the test machine with the nVidia card is a laptop and these do not have the required GPU power. So the only solution right now is using a color cube map where the depth is stored as RPG value. This though disallows the use of filtering and requires to do PCF inside the shader. The result are of course rather blocky. As a solution the shader PCF version uses now a noise texture to jitter the sampling. This way the result is less blocky albeit having a bit of noise. To improve speed a secondary code path has been added which uses a little trick in that shadows are rendered to a smaller texture than the screen. This way a bluring obtained for free and only 1/4 ( or even less if the reduction facter is further increases ) of pixels do the PCF filtering. A reduction factor of gives similar results to a full shadow run but improves speed noticeable. Here two images which show on one side the result and on the other comparisson of 3 different reduction levels.

Point Light Shadows Example    Point Light Shadow Comparison

   In addition the half-shadow code is now also in use for the point shadows. Hence shadows by walls are black while shadows of objects in the room are half black to simulate in a primitive way light bouncing off the walls. Furthermore point lights now also use light volumes to which reduces the number of pixels processed by the expensive shadow shader. Using all this the point lights with shadows have a reasonable performance. There are though still a couple of optimization tricks left to beaf up the speed.


Physics Constraints Fixing

   For the physics BulletPhysics library is used. While a nice library it suffers from some constraint problems which cause the simulation to explode for no obvious reason. As it turned out one of the provided constraints in the library is bugged and tends to explode. A generic solution has been used which is not as fast as the specialized constraint but it does not explode. In general though there are still a couple of stability issues left with the BulletLibrary which is understandable since this project is work in progress too. One of the next points on the list is the inclusion of rope physics. Bullet has according code already and it just needs to be adapted. This should help with certain objects like the ceiling lamp from the last news post.


A little demo

   Putting all together a little video trying to show how the point shadows behave. The fixed constraints are also included. Now the video constains some oddities with the physics simulation. This is because the video capture app hooks itself into the OpenGL graphic system and this causes troubles with the engine. Besides the capturing dropped speed by 50% and more. This test runs otherwise between 50 and 70 fps ( less with higher resolution obviously ). It is therefore adviceable to use point lights modestly. To light rooms semi-point lights are faster and the preferred solution. Yet though you have the possibility to add point lights for where it is required. You can disable shadows on a per-light basis if required. A light importance parameter allows the designer to designate how important the shadow casting of a light source is. The Graphic Module can then use this as a hint to figure out which shadows to draw and which not ( or which to fake if possible ). So here is the video.



Miscelanous Stuff

   Some additional work on the rig editor this time. One important addition is the Mirror Bone feature. This allows the designer to copy collision shapes, constraints and other physics properties from one side of the rig to the other. The appropriate mirroring is done on the fly. Just select the bones you want to mirror to the other side and use the mirror bone menu option. Saves a lot of leg work especially with complex rigs. Furthermore the feature to import bones from other rigs has been added. You select the bones and then what rig to import. For the selected bones the collision shapes, constraints and physics properties are replaced with the matching bones in the rig file. This allows to alter rig files with applications which do not preserve physics informations or to store boiler plate rigs aside which can use as stepping stone for new rigs.


Outlook

   The special video is still a topic. With the last additions it should be doable now. Besides this demo reel the ropes physics is planed to be tackled. The main focus though is now on doing this demo reel which serves not only as a demonstration video but also to provide a sort of test case for the engine features. So stay tuned.

Media RSS Feed Latest Video
Games
Epsylon

Epsylon Epsylon Indie

Updated 4 months ago TBD Single Player Adventure

Epsylon - The Guardians of Xendron takes the player on a journey to a futuristic world diving into a very special Science-Fiction setup where you decide...

Comments  (0 - 10 of 16)
joeypc1
joeypc1 Aug 15 2009, 7:05am says:

tracking it is the coding lang really hard??? because i jsut wanna begin making something :D

+1 vote     reply to comment
Dragonlord
Dragonlord Aug 16 2009, 5:58pm replied:

You choose the coding language. Currently a DragonScript module exists ( my own language, strongly typed OO language ) but a Python and SmallTalk based one is in the works too. Hence you are rather free there.

+1 vote     reply to comment
P4TRICK
P4TRICK Jun 19 2009, 1:18pm says: Online

This looks interessting!

I will use this for a project ;)

Please tell me when its released!

+1 vote     reply to comment
Dragonlord
Dragonlord Jun 19 2009, 2:15pm replied:

Just engine-watch this profile and you will get the informations. It will be posted here once it enters Alpha Stage ( meaning people can start poking at it ).

+1 vote     reply to comment
tokyolight
tokyolight May 11 2009, 6:10pm says:

Is this is in development??? My studios could use the engine.

+1 vote     reply to comment
Dragonlord
Dragonlord May 12 2009, 4:10pm replied:

Sure it is in development. It is though not released yet. This is done since the high modularity requires a lot of interfaces and to avoid API breaking a stable implementation is looked for first. The plan still stands for a release this year if nothing goes wrong.

+1 vote     reply to comment
Posessed
Posessed Sep 18 2008, 9:22am says:

Is this engine opensource?
I'm considering using it for a game i'm making.

+1 vote     reply to comment
Dragonlord
Dragonlord Sep 18 2008, 11:09am replied:

It will be available under the GPL and other licenses if required ( for restricted platforms for example ).

+1 vote     reply to comment
timstro59
timstro59 May 6 2009, 10:47am replied:

looks good

+1 vote     reply to comment
Dragonlord
Dragonlord May 5 2008, 7:05am replied:

And about the shadows I'm going to revisit this area after I finished with the physics one. I'm still looking for a better way to handle them. Currently Shadow Maps are used which works fine so far but I'm looking for a bit "more" :D

+1 vote     reply to comment
Post a Comment

Only registered members can share their thoughts. So come on! Join the community today (totally free) and do things you never thought possible.

Platforms
PC, Linux
Company
Team Epsylon
Contact
Send Message
Official Page
Dragengine.rptd.ch
Licence
L-GPL
Release Date
TBD
Engine Watch
Track this engine
Bookmark
Digg Super bookmark
Statistics
Rank
10 of 149
Last Update
1 month ago
Watchers
64 members
Games
1
News
9
Features
4