• Register

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 news Report RSS Improved Editing Features

Long overdue news post mostly about editor features.

Posted by on

The update this time has been delayed by a significant time especially due to personal reasons which We're not going to talk about further here. See the blog post for more informations ( will be deleted 1 week later ). But no matter what hard blows smack you down you have to keep going and we keep on working on this project. Eventually we got around to put together another news post with informations about what is going on. And here it goes in no particular order.


Culling Optimizations

Culling is always a hard job and especially in the Drag[en]gine with the open design aggressive culling is required to keep the frame rates at an acceptable level. Many engines can only handle one scene type well either indoors or outdoors but not well both at the same time. The Drag[en]gine has though the goal to seamlessly blend outdoors and indoors scenes without transitions or other hacks. For this more culling tricks have been mustered up improving indoor rendering a great deal. The improved culling removes outdoor scenery a lot more aggressive than before. You can therefore place highly occluded indoor scenes next into detailed outdoor scenes without slowing down. The transition areas are still a bit more tricky but we keep working on it.


Improved Decals in World Editor

Decals have been part of the Drag[en]gine since quite some time now but handling them in the world editor has been a chore so far. This has been now remedied by reworking the decal system on the level of the game. Like many other parts the decals are handled on two levels. On the engine level the decal support stays the same as before. On the level of the game scripts as well as the world editor the system has been changed. Now decals are world placeable objects. This makes them easier to use since they now automatically spawn across all the faces in their area of effect not just one particular terrain element. For this the editing mode has been changed as you can see in the image below. Decals are now handled like any other object with a position, orientation and size. The decal is automatically projected by the Graphic and Physics Module onto the geometry below they way the can use it best. While adding decals they align automatically with the surface below or you can force them to face to the camera pressing the shift key. Furthermore while moving decals you can press the control key to keep them sticking on the underlaying surface. This way of handling decals is better suited than surface oriented techniques since in the Drag[en]gine terrains are allowed to have holes and inside holes surface oriented techniques fail to work. This system here does work always.

Improved Decals Support

Object Dropping and Object Adding

Object dropping by itself is nothing new but not every editor has a usable implementation for this task which can be a nuisance. The World Editor now supports dropping multipe objects on the ground below. While doing so any terrain element or object in the scene serves as surface to drop upon. As an additional twist automatic stacking is supported. Dropping multiple objects residing above or below each other stacks them properly while dropping them to the ground. Creating scenes with a lot of stuff littering around on the ground is very easy this way. Certain object classes act as ghost objects so they will not get objects stacked on top of themselves. Physical dropping will be added later on. The image below shows the new system in action.

Object Dropping


In addition the adding of objects has been improved. Using a separate Add Mode objects can be placed in the scene by simply clicking on the right spot. Objects are then placed where the ray through the clicked at point intersects terrain geometry or other objects. Furthermore pressing shift while clicking aligns the object with the hit surface which can be pointing anyways including downwards to stick objects to the ceiling or walls. You can also duplicate already created objects to quickly fill a scene with props.


Improved Browsing

So far the world editor had a textual element browsing feature. Since though many requested a graphical browser we mustered up some time to do a proper and useful graphical browsing. The main goal in the IGDE is not to be a graphical monster like some AAA editors are but to be professional meaning with a clean UI designed for fast and efficient working. After all huge graphics can't make your mapping live easier but a clever UI can. One major design guideline to achieve this goal is to use native OS resources where possible for the UI instead of rendering everything with the game engine. This allows mappers to work with their native OS UI instead of having to deal with often chaotic game engine UIs which are inadequate for efficient editing.

The new graphical browser follows this guidelines and uses native OS tools but combines them with engine rendering. The preview of the individual elements is rendered using the game engine itself which is easy to do since the Drag[en]gine supports multiple worlds rendered and manipulated at the same time. The result is cached on disk once rendered. Therefore you do not have to pack preview images into your game SDK blowing up the file size as the preview is build dynamically on the mappers computer on demand. Multiple preview resolutions are supported including the old text only listing for those looking for efficiency. In contrary to the dialog based text browser the new graphical browser sits now in the side panel alongside the other editing panels embedding it neatly into the overall workflow.

Currently the browser supports showing Object Classes, Terrains, Skins, Skies and Decals. The same filtering possibilities as with the dialog based browser can be used. Hence you can filter objects by selecting a category or filtering them by selecting from a list of tags. Especially the tags based filtering is very powerful since you do not have to know which category an element resides in but only its traits. The image below shows the new browser in action with a few states.

New Graphical Browser


The browser can be used in various ways. Double clicking on an element assigns this to the current selection. To add new objects of a given type just switch to the Add Mode and click into the world. An object with the class of the selection in the browser is added. You can also right click on an element in the browser to obtain a list of actions you can do with this type of element. This allows also to edit it in another editor once this feature is fully implemented. All in all this graphical browser is a very powerful tool. If you know something which other browsers can do which you think is important let us know so we can add it. After all we do this product for you, the mappers out there, not for our piggy bank ;)


Miscelanous

There are always smaller changes which are not worth an own topic or even a news post itself so they get grouped here. The Semi Point Lights obtained a few tweaks to make them fully usable now. They can be now oriented into any direction as well as their shadow parameters tweaked. On the code side a first code clean-up batch has been done to get more code into a releasable shape. With the first release the code will not stop from evolving but at some places there are still code relicts lingering around.


Outlook

Good stuff is ahead of you. We decided to make a Special for the next news post if everything goes according to plans. The idea is to cook up a demonstration world showcasing the features of the engine where possible. This will be recorded into a video for your viewing an informational pleasure. So stay tuned for the next news post.

Post comment Comments
Silverfisk
Silverfisk - - 1,080 comments

Very interesting engine, you seem to be working very hard on this.

Reply Good karma Bad karma+1 vote
Bluedrake42
Bluedrake42 - - 574 comments

why is this engine different from anything else? I'm not bashing, I'm really just interested

Reply Good karma Bad karma+2 votes
Dragonlord Author
Dragonlord - - 1,934 comments

No offense taken. I'm not EA so just ask right away if you have questions of any kind :D . Concerning the engine it is different in various ways and the Wiki page gives more informations about the "why". Most of the differences though are based on a few basic differences to conventional engines.

Most engines are based on direct driving the engine. Hence you are exposed to the underlaying data structures and you have to know the engine and all the quirks of the different parts ( rendering, physics, ... ) in and out. This engine uses though a director type design. You do not interact with engine parts directly. Instead you define how you want the world to look, interact and sound ( you are the director ). The modules then decide how to do this tasks the most optimal way ( the stage workers ). This way you do not care about anything. You simply define what you want and the engine does it. This design is a lot easier to work with and gives more freedom to spend time where it matters: the game itself. (next post...)

Reply Good karma+1 vote
Dragonlord Author
Dragonlord - - 1,934 comments

(cont. prev. post) On the technical side current engines are a black box design which is static. You have to code close to the engine which causes a large coupling between the game and the engine. This coupling is one of the reasons we have currently so many problems with compatibility, stability and usability since expecting every coder to master ever growing feature sets just ain't feasible. This engine in turn is based on a strict layer system with a strict separation between the game, the engine, the various modules ( including in between them ) and the operating system below ( GLEM design, explained on the Wiki ). You do even not link your game against the engine to use it. Hence generally spoken existing engines are highly coupled systems which can only be modified ( to some extend ) at compile/design time. This engine here though is a highly loosely coupled system which can be modified down to run-time. Changing an existing engine while you use it in a project is usually very tricky due to the many couplings. With this engine anything can be changed at any time ( graphics, physics, scripting, whatever ). You can compare current engines to old DOS programs which are required to do anything on their own and this engine with an Operating System where individual tasks are split between individual workers ( drivers=modules, apps=games, OS=engine ). This increases stability, usability and efficiency a lot since with the current engine design small changes can cause unwanted effects ( more or less difficult to trace and fix ) at wide parts of the code. This design therefore is future oriented and geared for the ever increasing demands of the game developers. Demands a static engine design struggles to fulfill in the long run.

I hope this gives some answers to your question. Otherwise feel free to ask where something is not clear.

Reply Good karma+1 vote
sajbear666
sajbear666 - - 227 comments

Very nice update! :)

Reply Good karma Bad karma+1 vote
JustDaveIsFine
JustDaveIsFine - - 1,545 comments

I love it!

I'm always excited to see an update from you guys.

Reply Good karma Bad karma+1 vote
dill1233
dill1233 - - 94 comments

Man, this engine is really getting somewhere with all of the updates. Looks like it'll be a strong competitor with familiar engines such as Irrlicht, TGE, Ogre, etc. I might even highly consider this along the road. Good job Dragonlord (or whatever your name is), and really make this a good engine! By the way, I love the relation of your engine to the hierarchy of software in a computer.

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: