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 underlying 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. In contrary to other engines (including high-end commercial ones) the Drag[en]gine provides true 0-Day portability of games with no extra costs and no troubles neither for the developer nor the end user.

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 information check out the Drag[en]gine Wiki.


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. To avoid cluttering the summary find the features list in this article:

Image RSS Feed Latest Screens
Solidity comparison Language Pack Editor Preview Image Font Editor Preview Image
Blog RSS Feed Report abuse Latest News: Of Heights, Solidity and EnvRooms

About Drag[en]gine with 0 comments by Dragonlord on Oct 1st, 2014

Height, Solidity and EnvRooms

This one here is now again a bit about graphics and engine work.

   The most interesting parts of all the recent work are most probably the caching system as well as height and solidity addition. The game engine has now a proper caching system on the module layer. Every module obtains a per-game local and global cache area which it can work on. These are permanent caches the modules fill up with data to improve performance. The first time a game is loaded it takes somewhat longer to build up the caches but then things load fast. This also allows modules to improve quality and performance on game parts a player visits often. All of this though is under the hood so unless you want to you don't get in touch with it.

   The other interest part is the addition of solidity and height texture properties. I'll add the Wiki entries later on but in general they add more possibilities to fake complex geometry in a simple and quick way.

   The solidity texture property alters the physical solidity of materials. So what is solidity for if you have transparency already? The answer is quite simple. If you have physically based rendering you have view dependent transparency due to fresnel. Hence if you have a fully transparent sphere it still turns into a mirror at grazing angles. This is physically correct since transparency is actual just the ratio between transmitted/refracted and reflected subsurface light rays not how much it actually interacts with the material at all. This is where solidity comes into play. It defines the chance of a light ray actually interacting with the material at all. The images below show why this is required. You can use this for holes in geometry or ghost like objects or fading out/in objects. Both solidity and transparency can be used at the same time.

Solidity comparison

   Last but not least the height texture properties. They are used in conjunction with normal maps and tell the graphic module about height difference on the material surface. Graphic modules can use this information for different kinds of algorithms (for example tesselation). Right now the graphic module uses it to create an image-space illusion of depth as shown in the video. Even more interesting it becomes if height and environment rooms are combined. By just defining a couple of texture properties you can get nifty materials in no time that work out of the box for all kind of objects (components, decals, particles, height terrains, asf) in all kinds of situations. Try doing that with UE4 ;)

    The video shows the various texture properties in action on different object types including perspective Blender rendered environment room maps. (YouTube higher quality)

    The possibilites are quite endless here. Combine height, solidity and envrooms and you can even slap windows and doors on walls with decals in no time to spice up your maps without messing with geometry. It can't beat true geometry but especially for games with lower polygon count it matters a lot.

   More to come next time.

Media RSS Feed Latest Video

Epsylon Epsylon Indie

Updated 1 month ago TBD Single Player Adventure

Epsylon - The Guardians of Xendron takes the player on a journey to a futuristic world investigating a very special Science-Fiction setup. With a team...

Post comment Comments  (50 - 60 of 88)
Bahl Nov 21 2010, 12:43pm says:

I really like the entire approach of this project. I would like to use this technology for an anticipated project, but after reading the homepage and wiki, I understand that it is in a premature development phase. Do you have any sort of project communication like quakenet IRC? The epsilon forum seems to be down.

+1 vote     reply to comment
AniCator Nov 18 2010, 12:39pm says:

Too bad there is no Engine of the Year contest.

+1 vote     reply to comment
Gen.Kenobi Nov 8 2010, 4:18pm says:

Amazing particles! Keep it up dude! They look really great!

Hmm...just a suggestion... but... do you plan you make refraction levels? The glass...the water...

+1 vote     reply to comment
Dragonlord Nov 8 2010, 5:09pm replied:

Yes I do. Currently you can use the texture property "refraction.distortion" which simulates Fresnel refraction behind transparent objects. In the video in the previous news post the glass window uses this property to simulate an uneven glass. I'll though also add a Fresnel texture property later on for more accurate refraction. In general all these properties can be also applied to particles. Distorted particles are though more costly since full transparent rendering is required and here I use a speed hack for the more common case of particles.

+1 vote     reply to comment
Medevila Oct 17 2010, 1:15am says:

Amazing engine, but skyboxes could be improved. How are you doing them right now? It might just be the material is low res, but it seems a bit dull.

+1 vote     reply to comment
Dragonlord Oct 17 2010, 1:00pm replied:

It is a texture problem. It's an image (Mercator mapped) I obtained from the Internet for testing purpose and the resolution is not optimal (1024 for 360° is not much). I've done some additional photo shooting of real sky around my home place but I have not got around so far to process the images for actual use.

Concerning the how it is done in general you can use multiple layers with each layer containing an image, optional any number of bodies (sun/moon for example), lighting properties and own color/transparency/orientation. Images can be spherical (Mercator mapped), box (cube map) or planar (typical for clouds, I'll show that some time later). So you have various ways to make static and dynamic skies.

+1 vote     reply to comment
Gen.Kenobi Oct 1 2010, 6:52pm says:

About "SG HQ - Blender Portal System"

It's amazing, but i have a question...if the models are do plan to solve this probleman?

The engine is looking great! I can't wait for it! Keep it up!

+1 vote     reply to comment
Dragonlord Oct 1 2010, 8:36pm replied:

The rendered mesh and the portal system are two different meshes/objects. The rendered mesh is a "Model" resource (and exported as .model file). The portal system is a "Portal System" resource (and exported as .posys file). They are independent so the model is as you expect it while the portal system mesh just requires two textures to indicate which face is a wall and which a portal. So you can edit the two individually at any time.

+2 votes     reply to comment
Ragora Jul 4 2010, 5:12am says:

Ah, I was wondering because I am accustomed to Torque. I was thinking of writing a similiar language module when I learn CPP (I have 0% experience in cpp, so not anytime soon)

+1 vote     reply to comment
Dragonlord Jul 4 2010, 8:55am replied:

That would be nice. The idea behind having different script modules is that different people are accustomed to different languages so they can choose what suits them best.

+2 votes     reply to comment
Post a Comment
click to sign in

You are not logged in, your comment will be anonymous unless you join the community today (totally free - or sign in with your social account on the right) which we encourage all contributors to do.

2000 characters limit; HTML formatting and smileys are not supported - text only

Windows, Linux
Team Epsylon
Send Message
Official Page
Release Date
Engine Watch
Track this engine
Embed Buttons

Promote Drag[en]gine on your homepage or blog by selecting a button and using the HTML code provided (more).

46 of 659
Last Update
3 weeks ago
186 members