A software engineer with a proven track record in developing complex algorithms, with more than a decade worth of experience with a wide range of technologies. Flexible, creative and analytical. Fast learner. I love everything that has to do with game development, story telling and computer graphics.
As an independent game developer I created the game Zombie Gunship (briefly no 2 on the app store) and the game Gunship X, which was created in Unity.
I'm an industry expert on the topic of Constructive Solid Geometry. I published an article in the book "Game Development Tools" about an unique Constructive Solid Geometry algorithm I developed independently (mentioned on wikipedia).
A later, improved, version of this algorithm I used for a level design extension for Unity, which I independently built from scratch. This extension is currently sold by me on the Unity Asset Store.
I currently work at Unity Technologies.
Core Engineer, Unity Technologies Copenhagen, Denmark — 2015 - now Modularization
The Core Foundation team was set up in August 2015 to help fix the underlying architecture of the Unity engine. The long term goal was to modularize Unity into separate pieces that had clear dependencies and are isolated from each other as much as possible. This would make each piece (a module) easier to manage, test and understand. Without this, Unity would eventually be too difficult to maintain and extend, so this project was vitally important to Unity as a company.
To accomplish this multi-year goal I helped replace the type-system, which stores metadata about C++ classes which is necessary for things like serialization, and rewrote the player-loop, which looped through all parts of Unity to do their work. Both were originally written in a way that forced all the pieces of code that make up Unity to know about each other.
These old systems were replaced with smart, loosely coupled, registration systems. Without these changes it would not be possible to modularize Unity. Additionally I helped modularize Unity by carefully untangling pieces of code from Unity into isolated pieces. This work requires a solid understanding of all the elements that make up a game engine.
Later on I worked on implementing technology in the Scene Management Team that would've made it possible to divide scene files into multiple files, for easier collaboration between teams using Unity. Unfortunately this project was shelved due to shifting priorities & the release of Nested Prefabs which solved the majority of the use cases that this project would've solved.
Asset Import Pipeline
Currently I work in the Asset Management team to help rewrite the asset import pipeline.
Last year I also joined UX design meetings to help improve workflows within Unity and as a side project I am working on improving the grid, snapping behavior and design improved generic scene 'handles' within the Unity editor.
While at Unity I followed a course on giving presentations and on communication.
The majority of the programming work I do at Unity is in C++, but also occassionally in C#.
Self employed, Prenominal - Realtime-CSG (Asset for Unity) Capelle aan den Ijssel, The Netherlands — 2014 - now I developed, designed and maintain an asset for the Unity asset store called Realtime-CSG which allows the user to create levels within Unity using Constructive Solid Geometry.
Designed and implemented the whole asset, based on an unique algorithm I developed independently. This version of the algorithm remains real-time even when performing hierarchical boolean operations on many thousands of primitives, even on low end hardware.
Note that this algorithm works on and with geometry.
It is not a depth / screenspace algorithm. The tool is build for Unity3D and written in C# and C++.
Lead engineer, Well Formed Pixels - Gunship-X (iOS/PS4/PS-Vita) Capelle aan den Ijssel, The Netherlands — 2013 - 2015 Developed and designed the game Gunship-X in collaboration with 2 other companies based in California, under the name of Well Formed Pixels.
Designed and implemented the AI, gameplay code, shaders, UI / Menu system and audio scheduling code.
The game was build using Unity3D and written in C#.
Software engineer, Prenominal - Zombie Gunship (iOS/Android)
Capelle aan den Ijssel, The Netherlands — 2011 - 2013 Developed and designed the game Zombie Gunship in collaboration with 2 other companies based in California (Limbic Software and Hidden Elephant).
I wrote the rendering engine (at iPhone 3gs base level hardware), GLSL shaders, the post-processing pipeline
(first iOS game with post processing), the AI and large parts of the gameplay code. Created using OpenGL, GLSL and C/C++.
Technology Programmer, Guerrilla Games Amsterdam, The Netherlands — 2000 - 2001 Worked on the game KillZone for Guerrilla Games (at the time it was still called “Lost Boys Games”, later the company’s name changed after being acquired by Sony) where I worked on animation & texture tools and engine components in C/C++. Refactored and optimized the OpenGL rendering for the windows side of the engine.
Real-time Constructive Solid Geometry Game Development Tools (CRC Press) — 2011 In this article I describe a unique algorithm, which I independently developed, that makes it possible to perform Constructive Solid Geometry (Boolean operations) on primitives in real-time.
HDR dithering Capelle aan den Ijssel, The Netherlands — 2012 Wrote an article about using dithering to hide banding, which started an industry discussion on the topic.
This article was referenced in several subsequent articles on the topic, such as "banding in games".
Voxel world 2012 - 2015 Wrote from scratch a voxel based infinite world renderer using OpenGL and C/C++. I applied “Approach Zero Driver Overhead” (AZDO) techniques, reducing frame rendering time to below a millisecond. Uses weighted blended order independent transparency and various other techniques.
Virtual texturing 2009 - 2010 Experimented with virtual texturing technology. Imported Doom 3 levels and rendered them using a virtual texture. All written from the ground up.
MD3 View December 1999 Within 24 hours of the release of Quake 3, I reverse engineered the MD3 model format. Together with a friend we then wrote a viewer to view those models and released the source code. This viewer was subsequently used (and improved) by licensees of the Quake 3 engine and used in subsequent projects by Id software themselves. For writing this viewer we both received a very special thanks in the game Star Trek: Elite Force by Raven Software.
OTHER PROFESSIONAL EXPERIENCE
Lead engineer, Organiq - LOI super spy school (Serious game) Rotterdam, The Netherlands — 2010 - 2011 Implemented and designed the backend and implemented the frontend for the serious game super spy school for the Leidse Onderwijsinstellingen. The game content was designed by Organiq. Written in C# / ASP.NET and SQL.
Owner/Software engineer, Synthesis Rotterdam, The Netherlands — 2006 - 2010 Worked on a diverse range of projects such as recording software for police interrogations, repetitive strain research software & various software for colleges and companies in the Netherlands.
ATTENDED INDUSTRY EVENTS