Limegarden.net Personal site of Wouter Lindenhof

Portfolio

Welcome to my portfolio. All of my work presented here is something that I'm free to show. Unless it is stated otherwise you can use it as you see fit (think MIT license).
At the top you will find new content and at the bottom you find old content.

Paper: Procedural generated design


This paper describes how design can be generated through procedural means. I believe that in the future we only have to tell what we want and then the computer generates it. For example: "I want a house for four persons" and it creates a complete house that could have be done by an architect and suddenly you can enter every house in GTA (if it was done in GTA).
This is the result of my specialization project

Released game: iSpiral


This is my very first professional game that I have developed during my internship. All programming related tasks (including the in-house level editor) was developed completely by me (the graphical user interface and game design were done by others). The spiral is generated using a custom procedural algorithm. A fun fact is that this is the first game that has cell shading that is supported on even the very first iPhone! Keep in mind that the first generation of iPhones did not have shaders or even a stencil buffer (they had those in 1995).

Movie: Augmented reality



My first project at my internship was to make an application which allowed for augmented reality on the iPhone when there was no public camera API (which means you had to use the undocumented private API) and this was the result of a demonstration. The framerate is low only because I captured it with another mobile phone (slow times slow equals terribly slow). These days I believe apple has made the video API public so it has only emotional value.

Code: Fixed point math


For an assignment I had to work with fixed point math. Since fixed point math can be a huge pain (especially if you need to keep track of how many bits belong to the fractional part) I have created a set of classes which makes it really simple to work with fixed point. You can find a lot more information in the accompanying blog entry.

Template Game Design Document



Whenever I start working on a game design I often start from scratch untill I start wondering what I should put in the design document. Luckily I have written a few documents and I have made a template from it. The design document is inspired on the design documents of Chris Taylor (Mobygames) and Stefano Gualeni (MobyGames). If you need an example of this document, see Design document: Emok as that was first use of the document.

Game: Vortex


Vortex is a game that I developed with my fellow students. It’s one of the first games that I’m actually willing to show. It’s an arcade action that takes place around a vortex pushing you to the outside while enemies keep coming at you in waves. If you look on the credits screen you will see that I was the tool programmer of the project. The game is rather small so download it and I hope you enjoy it.

Shimmer Shader (binary & source)


"Shimmer" is "to reflect a wavering sometimes distorted visual image" according to the Merriam-Webster dictionary. One example is heat like a fata morgana (mirage). This started out like a joke and I originally called this the "fart shader". I have added a slider so that you can change the "hotness" of the girl. To run the application you will need DirectX 9 SDK and a graphics card able to handle HLSL shader 2a.

SSAO (Screen Space Ambient Occlusion)


This is one of the things that made Crysis so good looking. This was originally a school assignment to be done in OpenGL using CG-shaders, but I have decided to do it in DirectX because I could use PIX debugging. To improve this shader I could add some blur and/or noise to make it better looking, but I'm happy with this result as is.
Your graphics card should support HLSL shaders 2.0a for it to work.

Advanced Logsystem for C++


Sometime ago I needed a good log system in C++ and I needed it right now that very moment. But the ones I found where either too complex, had bugs or something else was wrong with it. So I decided to write my own. Inside the zip file you will find the source with a simple higher or lower game. The goal was to make it flexible and not forcing standards on the user.

Wrapper SQLite


I like SQL as it is easy and you can do a lot with it. However for games (especially single player games) there is no need for something as advanced as PostgreSQL or MySQL nor would you want to. There is a nice solution which is called SQLite. However it is all C and the amalgamation has more than 65535 lines and Visual Studio can't go beyond it manually. So I created a C++ wrapper which I find more easy to use.

Design document: Emok


The thing I love to do is design whether it is a game design or code architecture design. Emok (which means "Elemental Master of Kantour" an old story I once wrote) was intended for the students of the IGAD-academy at NHTV but didn't catch on as I hoped it would and I decided to cancel it. Long afterwards I have been asked a few times how the project was going which made me wish I had pushed on with it.