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.

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

  • View media
  • View media
  • View media
  • View media
  • View media
  • View media
RSS feed Related Articles

Audio systems in games are notoriously static in nature. A buzz word is "sound shaders" but this is more parametrize play parameters than really dynamic sound. For this game project I need a sound system which supports dynamic sound and this is what I've cooked up in the last month.

Synthesizers


At the core of the dynamic sound systems sit the Synthesizers. The link points to the wiki page which contains in-detail information I'm going to leave out here. In a nut-shell synthesizers allow to generate sound at run-time using sound production rules (or sources). Synthesizers are assigned to speakers and played back like regular sound files just that they are dynamic not static. Controllers can be defined to manipulate the generated sound at run-time, and live while playing back! The important feature here is that the synthesizers are generic in nature like the rest of the game engine. All of their actual use cases are implemented inside game scripts using/driving synthesizers instead of being hard-coded into the game engine. This provides much more flexibility to me and do you if you work later on with this game engine. For this the new synthesizer editor has been added so synthesizers can be easily created and tested.

Synthesizer Editor Synthesizer Editor


Two example implementations of synthesizer driving scripts are included in the game engine distribution: Dynamic music and announcers. Both use a simple synthesizer with a single chain source and are ready to use.

Dynamic music allows to modify music playing by transitioning through music parts using switches. As a test example I used the dynamic music files from Stalker Clear-Sky since they are well suited for this test-case. The included scripts load the dynamic music from an XML file created by hand. The file contains the music parts (sound files), switches used by the game and transitions between music parts depending on switch states. All is implemented in simple game scripts so it can be altered and extended without limits.

Announcers allow to produce in a simple way announcement systems like automated train announcement systems using a list of recorded words. As a test example I used the VOX files from half-life 1 since they are well suited for this test-case. The included scripts load the announcer from an XML file created by hand. The file defines where the word sound files are located. Once loaded a sentence can be given to the script and it plays back the announcement.

The video below shows these two scripts in action from inside the test project. This is a project included in the game engine distribution and is a sort of demo-project to learn the ropes. Copyrighted material as used for my implementation tests are obviously not included.


These are only two small examples which the game will build upon. Since these are scripts it is simple to extend and improve. And now to something different.

Material Sounds


The game project uses reusable world geometry a lot. For this reason material sounds are not as simple as assiging a sound type to an object. Especially material-material impact sounds require usually a lot of work with recording tons of sound samples. Since I don't have a sound engineer and not this level of equipment I decided to cut down the number of sounds by using combined collision sounds. Instead of playing one sound for each individual material combination impacts play now a **sound for each material involved**. This reduces work a lot while allowing for more combinations. **Material types** support now a range of different sound events from impacts to actor movement sounds. Sounds are either pre-recorded sound samples or possibly synthesizers. Former is used right now for easier use but later can be used for special tricks.

To improve this the physics system has been also improved to properly handle kinematic and dynamic collisions in a similar way. Collision shape properties are now used on all elements to link collision shapes to object materials. The world editor supports now properties on component textures as seen in the screenshot below.

world editor texture parameters


This allows to assign arbitrary properties to textures while re-defining them in the editor. The game scripts use this to re-define per-texture material type in addition to those defined in element classes. The video below is work in progress on adding more material sounds as well as getting all objects their appropriate sounds assigned.

Miscellanous


With the synthesizer system in place I can now do this nifty little surprise I'm twiddling around in my head for a long time. I'm not going to say more for the time being :D .


Helping Hands


This project is always in need of helping hands on the content production side. If you are a model artist (skilled in world props, buildings or humanoids) or texture artist you are welcome to get in contact with me. If you have other skills and want to help don't be shy and send me a PM too.

AI! AI, Everywhere!

AI! AI, Everywhere!

Epsylon 1 comment

During the last month a lot of work went into AI development, performance optimizing scripts and the usual feature improvements and bug-fixing.

Getting up to Speed with all new good things and Game-Dev Docs

Getting up to Speed with all new good things and Game-Dev Docs

News 2 comments

Total Work-Tech-Aholic month to leap the engine forward both tech wise and documentation wise.

New Year goodies with Core and Skinning

New Year goodies with Core and Skinning

News 2 comments

Getting closer to the first release with Core and tightening screws here and there

Navigation Splicing and more

Navigation Splicing and more

Epsylon 0 comments

Putting the remaining pieces together for the navigation system with splicing.

Add game Games
Epsylon

Epsylon

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  (0 - 10 of 94)
Treki26
Treki26

wow, this engine looks really promising. Sadly I use a mac and can't run it, Is there any plans for a mac version? It wouldn't be to hard to port it if it runs on Linux.

Reply Good karma Bad karma+1 vote
Dragonlord Creator
Dragonlord

The engine is POSIX based. Only thing that has to be ported is the launcher as the rest would work out of the box. Only problem: I've no access to a mac. If anybody donates a mac strong enough to run advanced graphics it could be done. Otherwise I'm afraid not for the near future.

Reply Good karma+1 vote
Treki26
Treki26

Darn, the problem is that macs are fairly pricy, It would be hard to find a person willing to donate a up to date mac.
Also just wondering, what is the launcher written in?

Reply Good karma Bad karma+1 vote
Dragonlord Creator
Dragonlord

They are written in C++. This is though not mandatory. Every language able to link to a C++ library can be used to write a launcher.

Reply Good karma+1 vote
notaclevername
notaclevername

Looking for some updates, I have hi hopes for this engine. Anyway to keep the mouse pointer a normal pointer tho?, that looks like it will stunt my productivity.

Reply Good karma Bad karma+1 vote
Dragonlord Creator
Dragonlord

The updates are there (huge ones) but it's all too connected to split apart. I'll inform in due time. Concerning the mouse pointer it is just my developer system. Neither the game engine nor the design tools force any mouse pointer on you. That would be really stupid :D

Reply Good karma+1 vote
DonBre
DonBre

Really love the video and how the dragon was modeled

Reply Good karma Bad karma+1 vote
Lord_Baal
Lord_Baal

Hi, could this be used for example, to make a game that's a combination between Civ and Total War?

Reply Good karma Bad karma+1 vote
Dragonlord Creator
Dragonlord

In general you can use it for any kind of game. The engine is build on prodiving a generic approach with common game building elements without limiting you on a certain game type.

Reply Good karma+2 votes
SinKing
SinKing

One question - is there any kind of lightmap baking involved for static meshes, such as in Unreal Engine? I recently used Unity, CrySDK and Unreal 4 and U4 needs different assets (convex/closed meshes are best), while Cry and Unity don't and light everything in realtime; or so it seems.

If the first is the case, would it be possible to bake lightmaps for the levels in Maya and use them in your editor? I've always found it annoying how you are forced to bake these lightmaps with UDK's crappy baking. I would always prefer to bake it in my 3D program, because then I can have some control.

Reply Good karma Bad karma+2 votes
Dragonlord Creator
Dragonlord

The graphic modules are free to choose dynamic or static lighting as they see fit. The default is fully dynamic lighting. If a graphic module chooses to use static lighting it is responsible to build those on the fly itself.

The graphic module used here does fully dynamic lighting. I could add a pre-lighting texture property if the demand exists. In this case the light map could be done with any application able to export them to an image file.

I don't know about CE but as far as I know Unity works a lot with light maps while it though also supports dynamic lighting.

Reply Good karma+2 votes
Post a comment

You are not logged in, your comment will be anonymous unless you join the community. Or sign in with your social account:

Platforms
Windows, Linux
Company
Team Epsylon
Contact
Send Message
Licence
L-GPL
Release date
Engine watch
Start tracking
Share
Embed Buttons
Link to Drag[en]gine by selecting a button and using the embed code provided more...
Drag[en]gine
Statistics
Rank
134 of 775
Last Update
Watchers
190 members
Games
1
Articles
93