In the past days is struggeled compiling MinGW-GDC on Windows, so here is a full list of instructions what needs to be done:
Continue reading
Author Archives: admin
Runtime code reloading in D, part 1
One of the biggest problems in game developement are turnaround times. Tournaround time is the time you have to wait until you can see what your change actually did. Shorter turnaround times improve productivity as you don’t spend that much time waiting for changes to become visible. Also shorter turnaround times support the creative process as humans have huge dificulties connecting an action and a result that happens with a huge delay. For mappers, 3d artists, effect artists and sound designers the turnaround times in modern 3d engines are almost zero. A lot of work is put into their tools to keep turnaround times to a minimum. Programmers however usually have very long turnaround times. Mostly this is due to the fact that compile times of the C++ language, which is mostly used in game developement, can go into multipe minutes. This problem is almost solved in the D programming language, as compile times are really quick and it usually only takes a few seconds to compile a project. But after making changes to the code you still have to restart the game, wait for it to load all the resources and then fly/walk to the spot in the level you are currently interrested in. I got really tired of this process so I decided to build a runtime reloading for certian parts of my own little game engine.
Continue reading
Real World Comparison, GC vs. Manual Memory Management
During the 4th Semester of my studies I wrote a small 3d spaceship deathmatch shooter with the D-Programming language. It was created within 3 Months time and allows multiple players to play deathmatch over local area network. All of the code was written with a garbage collector in mind and made wide usage of the D standard library phobos. After the project was finished I noticed how much time is spend every frame for garbage collection, so I decided to create a version of the game which does not use a GC, to improve performance.
Alienfx winamp plugin update
As no one picked up the developement on the winamp plugin after I released the sourcecode and new alienware laptops keep coming out every year, so I decided to put a litte bit more work into the winamp alienfx plugin. With this update users are able to add support for new laptops themselfs by editing a xml file. I will explain here how to create the xml file.
To download the plugin go to the original post: AlienFX Winamp plugin
Continue reading
Suggestions for the D 2.0 Programming Language
First of all don’t take this article to negative. I really like the D programming language and often when I have to go back to C++ coding im sitting in front the code thinking “Oh this would be so much easier in D” or “This could be solved much cleaner in D”.
I recently completed 3 Projects using the D 2.0 programming language:
- A implementation of the Light Propagation Volumes algorithm
- A 3d multiplayer cross platfrom (windows / linux) space shooter
- A lisp interpreter (with almost all Scheme features)
The two 3D projects have been done using OpenGL and are very performance critical. You only get to spend 16ms every frame until it has to be completely rendered otherwise you won’t reach fluent framerates. The lisp interpreter was performance critical too, but more of a test how good D is usable as a systems programming language.
AlienFX Winamp plugin update & source
With some help of Nils Reichert I was able to modifiy my AlienFX Winamp plugin so that it now supports the M17X R3. It should also support the M15X R3 now as the used AlienFX devices should be the same. You can find the download locations in my old post:
>>> Winamp AlienFX Plugin <<<
I also decided to release the source code for both the plugin itself and the led tester I’ve written, so that someone else can continue the developement as I don’t have time for it anymore. You can freely modifiy the programm under the following conditions:
- you have to name me as original author
- you may not use it for anything commercial
- you have to distribute it under the same conditions then I do

AlienFX Winamp Plugin von Benjamin Thaut steht unter einer Creative Commons Namensnennung-Nicht-kommerziell-Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz.
Sourcecode: AlienFX-Winamp-plugin-source.zip
Light Propagation Volumes Implementation
For a university project I implemented the Light Propagation Volumes technique implemented in CryEngine 3 to simulate indirect illumination. I wrote this demo from scratch using OpenGL and the D programming language.
The paper about the alogrithm can be found here:
http://www.vis.uni-stuttgart.de/~dachsbcn/download/lpv.pdf
The model and textures have been taken from the crytek site: http://www.crytek.com/cryengine/cryengine3/downloads
You can download the application for windows including the full sourcecode and documentation here:
lpv-release.zip
To fly around in the scene klick into the 3d window and press M to activate the mouse, then you can fly around using the WASD keys and the mouse. To deactivate the mouse looking press M again.
For everything else you can use the GUI.

Implementation of Light Propagation Volumes von Benjamin Thaut steht unter einer Creative Commons Namensnennung 3.0 Unported Lizenz.
Beruht auf einem Inhalt unter www.vis.uni-stuttgart.de.
D 2.0 Stacktrace
I wrote a small piece of sourcecode that generates stacktraces in D 2.0 under windows. It works both with the pdb and cv debug symbol format. For Exceptions that are derived from the Error or Exception class the trace information is automatically appended, this causes all builtin D errors to get a stacktrace information. The only point where this does not work is the Access Vioaltion error, as it does not call the stacktrace callback function for some reason.

Winamp AlienFX Plugin
I made plugin for Alienwares AlienFX Device that comes with every Alienware laptop and computer. Currently the following models are supported:
- Area51 m15x
- All Powerfull m15x
- All Powerfull m17x
- All Powerfull m11x
A demonstration of the plugin by Lord_Zath form NBR (www.notebookreview.com) can be found at:
www.youtube.com/watch?v=dLymX4fLVtc
Download: vis_alienfx.zip (257 kb)
Please be shure to read the README file. It contains important instructions howto setup and configure the plugin! Also I want to thank Lord_Zath for helping me test the plugin and writing the README file. A thank you also goes to all the people on NBR which are taking part in the developement of this plugin.
If you have a Alienware laptop / computer that is not yet supported and you are willing to help me developing the support for it, please contact me, and I will built in the support for your model.
Update 31.10.2010: Fixed that the plugin is crashing winamp when closing winamp or stopping the plugin. The plugin now also automatically detects on which alienware laptop it is running.
Easyhook tipps and tricks
I wanted to hook the WinApi funktion CreateFile, CloseHandle, ReadFile and WriteFile to decode a device protocol. So I searched for a hooking library in the internet. Unfortunately the only good one for c++ was detour from Mircrosoft which was free only for x86 non comercial use. As my laptop runs with a x64 Windows Vista this was no option for me. So I found easyhook, a c# hooking library. It was quite easy to achive the first success with it, but then I had a few small problems for which I want to describe the solutions here.
Continue reading
