Released:

N.A.

Dev Time:

~2 years

Used:

C++
Unity / C#
Docker
Jenkins

Links:

Unannounced Multiplayer Title (PC & Consoles)

I started this project as Senior Engine Programmer, became Interim Lead Programmer for 5 months and then continued as Core Tech Lead until the sad day when the company went bankrupt. At this time I cannot share more details about the project except this list of stuff that I worked on:

  • – Managing the core tech team.
  • – Deterministic entity component system (C++).
  • – Netcode (ECS syncing and client-side prediction, C++)
  • – Replays (C++)
  • – Game server infrastructure (Docker, Gameye)
  • – Build system (C++ / CMake)
  • – Crash reporting system and debugging tools.
  • – CI/CD (C++ / jenkins / docker)
  • – Unit tests (C++)
  • – Unity plugin (C++ / C#)

Released:

Steam Early Access
July 2020

Dev Time:

I’ve worked on it for ~8 months

Used:

C++
In-house engine

Links:

Blightbound.com
Reveal trailer
Gameplay trailer

Blightbound

Blightbound is an online multiplayer dungeon crawler. I have worked on it both during the early stages of development and during the final stage, with a gap in between where I wasn’t working at Ronimo. I’ve implementing some of the initial gameplay features including integrating a physics engine. During the final stage of development I was mainly working on optimizations. Blightbound has been released as an early access title for Steam in July 2020.

Here’s a list of stuff I worked on:

– UI tools
– Optimizations (PC, PS4, XB1)
– Initial gameplay development
– Physics engine integration

Released:

Version 0.1
April 2018

Work in progress.

Dev Time:

I’ve worked on it for ~6 years and counting.

Used:

C++
LLVM
Vulkan
SDL

Links:

JitCat.org
GitHub

JitCat

JitCat is an open source just-in-time compiled scripting language that integrates tightly with C++17.
It started out as an expression parser and interpreter but over time I have added optional compilation to native code using LLVM and have extended the project to a more complete scripting language (functions, classes, etc.).
The expression parser/interpreter has been used in production for several games developed by Ronimo Games. Most of the work on this project has been done by me in my spare time, but some of it I did while I worked at Ronimo Games.

Here’s a list of stuff I worked on:

– I’m currently the only major contributor
– Parser generator
– Optional LLVM code generation
– C++ reflection / bindings
– Unit/integration tests with ~80% code coverage

Cathode

Cathode is an experimental game engine / renderer based on the Vulkan graphics API and some other technologies.
I am currently experimenting with integrating support for graphics in the JitCat language. This project is not yet open-sourced.

Here’s a list of stuff I worked on:

  • – Vulkan renderer
  • – SDL window management
    – SIMD linear algebra library
  • – High quality text renderer (FreeType/harfbuzz)
    – Code editor, including syntax and error highlighting

Released:

WiiU – May 2015
Steam – November 2018
PS4 – November 2018
Switch – Januari 2019

Dev Time:

I’ve worked on it for ~3 years.

Used:

C++
In-house engine

Links:

Swordsandsoldiers2.com
Reveal Trailer

Swords & Soldiers 2

Swords & Soldiers 2 was developed over a 3 year period and I’ve worked on various aspects of it. S&S2 is using modified versions of the engine and tools that were initially created for Awesomenauts and the first Swords & Soldiers. A good part of my time went to porting parts of the engine to WiiU but I’ve also been working on various gameplay features and level design tools. Closer to release my time was spent on certification, bugfixes and optimization. One of the bigger optimizations I did was multithreading the animation and audio systems.

Here’s a list of stuff I worked on:

– Level design tools
– WiiU video player
– WiiU postfx implementation
– WiiU audio
– WiiU optimization
– WiiU file system / save games
– Gameplay
– WiiU certification

Released:

Xbox 360: May 2012
PS3: May 2012
Steam: August 2012
PS4: March 2014
Xbox One: September 2016

Dev Time:

I’ve worked on it for ~5 years.

Used:

C++
In-house engine

Links:

Awesomenauts.com
Intro Trailer
Release Trailer
Download

Awesomenauts

Awesomenauts had been in development for about a year when I joined Ronimo Games. At that point, the game was already playable on PC and was just getting up and running on PS3. Initially, I worked on various engine subsystems and getting the game to run well on PS3 and Xbox 360. Later, when we were getting closer to the release date, my main responsibility was getting the game to comply to the certification requirements for PS3 and Xbox 360. Finally, the game was released on the consoles early may 2012. We were in for a bit of a ride however, because only a few days before release our publisher DTP Entertainment filed for insolvency. Those were interesting times to say the least. In the end, Ronimo survived and the game got released with a lot of positive feedback from the press and the gaming community.

After the console release, work started on the Steam version of the game, which was released august 1st 2012.

2014 update:

Awesomenauts has been out for almost two years now and it’s still going strong! After a successful kickstarter campaign, we were able to keep expanding Awesomenauts, adding more content and features. I still work on Awesomenauts regularly, but recently most of my time has gone to our new project Swords & Soldiers 2.

2017 update:

After shipping Swords & Soldiers 2, work began on moving Awesomenauts towards a free to play model. We knew this would involve a lot of new menu and UI work and that it would require a lot of iteration. Up to that point, all of our menus and HUD elements were mostly hard coded and kind of a pain to work with. Iteration would have been slow if we would have continued down that path and most menu development would have to be done by a programmer, instead of a designer or artist. Therefore I designed, proposed and built an editor for creating those menus. The editor consists of a straight forward drag and drop interface that allows designers to place UI elements visually in a WYSIWYG manner as well as create conditions and store variables in a decision tree-like structure to design the basic behavior of the menus.
Programmers can expose variables and structured data to the editor for use in menus. This was done through a C++ reflection library that I wrote as well as an expression parser that can access those reflected variables. 
This tool ended up being a great success and I strongly believe that the high quality of menus that we ended up with would not have been possible if we would have taken the hard-coded route.

For the free to play edition of Awesomenauts, a completely new metagame was implemented. The new metagame consists of currency and XP that the players earn by playing as well as unlocks that players get when leveling up their characters and account or through pruchases with the in-game currency (Awesomepoints). To prevent cheating, all of the critical parts of the metagame would have to be managed server-side. I designed most of the systems behind the metagame and wrote most of the server code and gave direction to colleagues for implementing most of the client side code. I also designed a tool that allows the designers to develop and iterate on the metagame. Finally, I designed a tool to inspect the state of a player’s metagame profile and history so that we could provide support if players had any complaints and so that we would be able to debug any problems. The free to play version was released in May 2017.

Here’s a list of stuff I worked on:

– UI authoring tools
– Metagame server code and tools
– Video player (All platforms)
– Audio (All platforms)
– Memory management and debugging tools (All platforms)
– Metrics gathering client/server code and tools using Windows Azure. (PC, Mac, Linux)
– Packaging/build tools (Xbox 360, PC)
– TRC/TCR certification (PS3, Xbox 360)
– Automated testing tools (PS3. Xbox 360)
– Voicechat/textchat (All platforms)
– Security / anti-cheating measures (PC)
– Various gameplay features

Released:

Feb 2010

Dev Time:

3 months

Used:

ActionSript 3
Adobe Flex
Adobe Flash CS4

Links:

Trailer

Paper Cakes

I worked on Paper Cakes during my graduation year at the Utrecht School of the Arts. It is a puzzel platformer created in flash. Paper Cakes was made for Wacom, to promote their new Wacom Bamboo and to show what else you can do on a tablet besides using photoshop. Paper Cakes was selected as one of ten student showcase winners at the Independent Games Festival 2010 and was also nominated for best student game. It won Best Student Game and Best Original Game Design at the Dutch Game Awards 2010.

For this project I did all the programming, as well as some of the designing. Paper Cakes was made with Adobe Flash, which is required by Wacom’s software which only supports Flash.

Team:

Machiel van Hooren (Code, Project Lead, some game design)
Bas Teunisse (Level Design, some game design)
Lex van den Berg (Lead Game Design, Art)
Merijn Mijnders (Audio)
Greg Nishikawa (some game design, testing)
Joe Osborn (some game design, testing)
Sam Farmer (some game design, testing)

Released:

Wii – May 2009
Steam – December 2010
PS3 – September 2010
iOS – July 2011
WiiU – May 2014
Switch – Januari 2019

Dev Time:

I’ve worked on it for ~5 months

Used:

C++
In-house engine

Links:

SwordsAndSoldiers.com
Ronimo-Games.com
Trailer

Swords and Soldiers

I did my internship at Ronimo Games, a company started a few years before I joined by a group of students from the Utrecht School of the Arts. They all studied Game Design and Development, just like me. I had a great time during the five months I was there and got to work on some very cool stuff.

During the internship I worked on a WiiWare game called Swords & Soldiers. Swords & Soldiers is a side scrolling RTS game with a very comic visual style. For Swords & Soldiers I programmed a lot of the visual effects like spells, hit effects, weather and fog of war. I also programmed the menu system and the cinematics.

Swords & Soldiers was very well received by the press. It got an 8 from Edge Magazine and an 8.7 from IGN.

Released:

N.A. (2010)

Dev Time:

7 months

Used:

C++
DirectX 11
Custom Engine

Links:

Demo Video

Spline / Loft editor

The subject of my graduation work was the use of procedural methods in level design. For this project, I have written my own game engine and editor UI code. The engine has all the basic features an engine requires; a scenegraph, basic lighting and textures, hierarchical bounding boxes, view frustrum culling, a gui framework, etc.
The editor allows the creation of splines and lofts. Objects can be placed along the lofts to create a simple “tunnel” level editor.

Team:

Machiel van Hooren (Everything)

Released:

2010

Dev Time:

2 months

Used:

ActionSript 3
Adobe Flex
Adobe Flash CS4

Going Bananas

Going Bananas is the second game made for Wacom.  It is also a platformer, but it is very different from Paper Cakes.  Going Bananas mixes physics with gesture and pen input, making use of the capabilities of the Wacom Bamboo tablet.

For this project I did all the programming, using ActionScript 3.

Team:

Machiel van Hooren (Code, some game design)
Bas Teunisse (Game & Level Design, Art)
Lex van den Berg (Character Design, Cinematics, Menu)
Greg Nishikawa (some game design, testing)
Joe Osborn (some game design, testing)
Sam Farmer (some game design, testing)

Released:

Jan 2010

Dev Time:

2 Days

Used:

ActionSript 3
Adobe Flex
Adobe Flash CS4

Links:

Play
Global Game Jam Site

Global Game Jam 2010: Falling Up

Falling up is a fun little game made in two days during the Global Game Jam 2010. It is a retro style shoot ’em up with an awesome 8 bit soundtrack. For this game, me and Tom did the programming.

Team:

Machiel van Hooren (Code)
Django den Boer 
(Game Design, Lead)
Thomas Kalksma (Music, Sound effects)
Lex van den Berg (Art)
Tom van Kruijsbergen (Code, Game Design)

Released:

June 2009

Dev Time:

5 months

Used:

Virtools
C++

Links:

Video

Streekstation The Game

This is an augmented reality game developed during my 3rd year at the HKU. We worked for an external client, Innovatienetwerk, who wanted a game that could be played by government officials to convince them of the concept of “Streekstations”. A “Streekstation” is kind of a super market where they sell only local produce from farms within a certain distance of the Streekstation.

Basically, it is a board game with some features added through augmented reality. Watch the video to see how it is played!

We used Virtools for this project because there was already a plugin for Virtools that enabled augmented reality applications through the use of feducial markers and a webcam. We ended up modifying the plugin (which was written in C++) so it included all game code.

For this project I worked together with two programmers from the University of Utrecht.

Team:

Machiel van Hooren (Lead programmer)
Jeroen Mol 
(Project Management)
Dennis Haak
 (Game Desig)
Stefan Reek 
(Programmer)
Timo Veldt 
(Programmer)
Lex van den Berg (Game Design)
Joris Wildenbeest
 (Art)
Jochem Schut
 (Art)

Released:

Jan 2009

Dev Time:

2 Days

Used:

C#
XNA 3.0

Links:

Download (Incl. source)
Global Game Jam Site

Global Game Jam 2009: Insanity Grab Go

Insanity Grab Go is a physics based game where two players battle for control over a single character. Each player can shoot out sticky hands from the character, which pulls it in that direction. Players can score by hitting enemies of their color (blue or red).
Every once in a while all enemies on the map go berserk and both players have to work together to avoid them.

For this game I did the programming together with Ted, using C# and XNA. I also did part of the game design.

Note about the download:
This game is thoroughly unfinished! There’s not even a normal way to shut it down. The game is meant to be played using 2 XBox 360 controllers, but it can also be played single player using the mouse.
The download also includes all source files!

Team:

Ted de Vries (Code, Project Lead)
Machiel van Hooren (Code, Game Design)Fabian Akker (Game Design)
Olivier Thijssen (Art)
Jasper Koning (Art)
Tom van Kruijsbergen (Prototyping, Game Design)
Bryan van Ostheim (Sound Design)

Released:

June 2007

Dev Time:

2 Months

Used:

C++
Lasers!
Special hardware

BeatBin

During a one month seminar we were challenged to design and prototype an interactive installation for the Lowlands music festival in the Netherlands. Our team came up with the BeatBin, which is a thrash bin that allows people to mix music by throwing thrash through different holes in the bin. There were multiple groups with the same assignment, but our concept was the only one that got chosen to actually be developed further. We took another month to actually build the BeatBin (before we had just a cardboard prototype) and then we actually went to the festival and got lots of positive feedback!

We used lasers to detect thrash coming through the holes. The sensors were hooked to a laptop which translated the signals into MIDI signals which were then used by Ableton Live to control music samples. We built a speaker and an amplifier into the thrash bin for the sound.

Team:

Machiel van Hooren (Code, Design, Construction) 
Allard Ankone
 (Code, Design, Construction)
Micha van Kesteren (Code, Design, Construction)

Released:

Oct 2007

Dev Time:

8 Weeks (part-time)

Used:

C++
DirectX 9
DirectSound

Links:

Download

ChooChoo

ChooChoo is an action-puzzle game where you have to lay tracks for your train by shooting blocks. The goal is to get your train safely to the train station.

I wanted to learn more about DirectX 9, so I chose to challenge myself and write my own mini-engine for this game. It’s all written in C++ and I also used DirectSound for the music and sound effects.

About the download:
Although the game is quite playable, it hasn’t been thoroughly tested on different hardware and OSes. It probably won’t run on Windows 7 or Vista. Also, the resolution settings are hard-coded but I included several version with different settings so hopefully at least one will work :).

Team:

Machiel van Hooren (Code)
Tim Jansen 
(Game Design)
Roweena Asgarali (Art)
Marnix Aartsen (Art)