Duality Dev Update

It’s about time to put another Duality development writeup out there, and with this one I want to try a slightly different form. Getting away from the giant forum thread, we’re back to the blog.

With the recently started Duality v3.0 dev branch and continuous updates to the stable v2.x versions, there’s a lot of progress both visible and invisible to people following the binary release chain. The purpose of this split in two different versions is to reconcile the two conflicting goals of backwards compatibility and forward progress: Updating the Duality version behind a game or plugin project shouldn’t break it, so while fixing and adding features is fine, removing or changing them is not. However, as the project evolves, the requirement to maintain the same facade and feature set adds up to a constant maintenance cost that makes some things harder and pushes others beyond the threshold of viability. Old code just needs to be cleaned up once in a while, polished and streamlined – and that is exactly what v3.0 is for.

Don’t expect tons of big new features, but an improved API and the groundwork for future improvements on a more fundamental scale. That said, I’m (on a nerdy programmer-think basis) pretty excited about the things to come. You can find the full list of v3.0 issues here, and an overview on what has already been done below.

Read more …

Hats and Terrain Rendering

I’m still figuring out how many hats a single guy can wear at once. So far, my personal hat count is something around “four”, counting two jobs, studying and personal life. As it turns out, I appear to have reached a limit for now. When this semesters courses began in October, the free amount of time at my disposal once again vanished, and so did the unsteady stream of content for this blog. This is just a faint sign of life, but hey – at least I’ve got some pictures.

MateTerrainThe first one is a screenshot from job #2, where I’m developing a game that will be used in a medical context. It’s called MATE and aims at motivating young patients in doing their physical exercise using a training device – which is basically used as a custom game controller. It has one degree of freedom and the target audience is not what you’d call a “gamer”, so I’m keeping the game itself small and simple: You’re maneuvering a paper plane through a dynamically generated landscape, collect gold coins and try not to hit anything. There also is a highscore at the end of each level and a set of ghost players from previous records.

Read more …

Text Rendering

Text Rendering Demo

Along with some internal Duality updates, there is a new TechDemo available that shows different text rendering approaches. You can get it here.

Read more …

Dynamic Lighting Test

As I’m experimenting with the “custom Rendering” capabilities of Duality there happens to be a new tech demo for you to download and play around with. It features per-pixel lighting using directional, ambient, spot and point lights.

Note that I didn’t touch any Duality code to implement the dynamic lighting technique – it’s all done inside the plugin.

–> Download Lighting Test <–

Read more …

Smooth Animations

‘Just done with the new AnimSpriteRenderer. Besides the obvious it has a nice little additional feature: Smooth sprite animations. When having less Sprite frames available than visually pleasant, in some cases it may help to blend frames instead of switching them.

In case of the explosion sprite I used for testing, this feature really pays off. Take a look at the AnimSpriteRenderer demo I’ve uploaded, if you want to see for yourself. Download the .zip file, unpack it and run DualityLauncher.exe.

Read more …

Editor Stuff

Nothing much to write about right now, I’m working here and there, but mostly on editor and GUI stuff. I was just about to take some AlphaBlend / AlphaTest / AlphaToCoverage comparison screenshots when I realized that Alpha Testing actually looked better than AlphaToCoverage and not at all “aliazed”. Well, it turns out my video card supports proper alpha tested multisampling. While speculating how to detect whether or not the video card supports this (i.e. whether or not to use AlphaToCoverage), here is the comparison / editor screenshot anyway.

Read more …


I’m spending Christmas at home with my family. However, despite all the holiday bustle there’s still some time without anything to do, so I found some time to continue working on Duality. Rendering and content stuff; specifically: A simple Material system.

Read more …

It’s alive!

Finally some visible, screenshot-compatible progress. The plugin architecture (discussed here) is now implemented and the editors basic framework slowly comes to life. I’ve done a lot of concept work and polished some of the existing code design. According to my current plans, the final version will come with the engines editor and a ready-to-go launcher application in which the game will run. Also, the project’s got a name now: Duality.

Read more …