Plain Old CJ

Pommi

Tech: Custom engine written in C, featuring stylized rendering using Metal, skeletal animation, level editor, custom asset pipeline, and hot-reloadable code.

Experience explosive action in this thrilling game! With an endless runner mode, charming cartoon graphics, and tight controls, the fun never stops. Jump in and play now!

Available on the iOS app store now!

Download on the App Store

Only available in the US and Canada iOS AppStore!

Helix

Tech: C++, WebGPU (Google Dawn), WGSL, ImGui, Emscripten

Helix served as a small test of the new WebGPU standard for 3D rendering in the browser. The app procedurally generates a 3D mesh from a curve, and the parameters can be tweaked live. For this type of shape sweeping, the most important part is to get the UV maps right without distortions. The UI is created with the ImGUI library commonly used in games.

Try it out in the browser! Note that you need a WebGPU-enabled browser, such as Google Chrome.

Open in Browser

Varena

Tech: PICO-8, Lua

Varena, which is short for Vampire Arena, is a demake of the popular horde surivor game Vampire Survivors. In Varena, you step into the shoes of a priest to battle the dark forces of evil. A single screen experience featuring multiple enemy types, weapons, and upgrades. Click here to play it in your browser!

Nubuck

Tech: C++, OpenGL, Qt, LEDA

Nubuck is a tool for visualizing and animating geometric algorithms in three-dimensional space. A tool like this helps understanding and presenting geometric algorithms in both development and education.

In the screenshot on the left hand side, for example, Nubuck is being used to show the relation between the Voronoi Diagram and Delaunay Triangulation in the plane, as well as the connection to the Convex Hull in 3-D space.

Besides an API to write algorithms, Nubuck provides an interactive sandbox environment to create inputs and concatenate the results of different operators. Also, modern shading techniques are employed to produce visually appealing images using an OpenGL-based renderer.

The implementation of Nubuck was the topic of my master's thesis, so a comprehensive description can be found in the document linked below.

video github thesis

Bomberlad Galaxy

Tech: C#, Unity3D, Blender

Bomberlad Galaxy is a multiplayer game that features the classic Bomberman gameplay, but the players move on a tiny planet, i.e., a sphere.

As it turns out, a sphere cannot be tessellated with only congruent quadrilaterals, so there is no way to create a suitable, spherical mesh from a checkerboard-like map. Instead, a shader-based fisheye projection is used to create the illusion as-if the player really moves on a sphere.

Note that I did not create the player mesh myself. The cute little puppy is from readheadrobot and can be found in the Unity asset store.

video

Backstabbers

Tech: C#, Unity3D, Blender

Backstabbers is the result of a course in game programming. There are two types of players: coders and backstabbers. Coders, or programmers, use the terminals to do work. Backstabbers, on the other hand, try to stab coders in the back with a knife.

Yes, there is a story behind this game, but it's less dramatic than you might think. I just found the idea of making a game about teamwork really funny. Also, I liked the programming theme. Each completed session at a terminal, for example, results in a 'git commit' and increases the revision number (highscore).

Most of the programming time was spend on implementing networking. The game uses a client-server model with an authoritative server. Interpolation and client-side prediction are used to mitigate lag. Chairs can be pushed around by coders, and act as moveable obstacles. Note that this game has been written before the release of Unity 5's UNet API, which has these networking features built-in.

video

Various Graphic Demos, Games

Tech: C++, OpenGL, DirectX, SFML, CUDA

I like graphics, so below you see a collection of various programs I've written that produce neat images. They show raytraced spheres, bézier curves, deferred shading, and so on.

Of course, I've made some non-graphical applications, too. Programs I've written for courses at the university, for example, include compilers and graph algorithms.

Although I do know how to use Blender, I'm not capable to model something even remotely realistic, so the credit for all the cool models goes to more talented people. I forgot where I got the women from, but the monster is the 'hunter' from the game Prey (great game, highly recommended).