Programming Projects

Different programming projects I've worked on as part of my studies or within my free time.

Cube (Working Title)

Godot / GDScript / MagicaVoxel

My little game project I started during my Master's thesis as a balance next to writing it. In it I combine my game development skills with my Voxel Art to create a voxel-based puzzle game. The game is in a first playable state at the moment but will require lots of additional work before I'll eventually officially announce it.

Cube (Working Title) Ingame Screenshot

Voxel Rendering Experiments

C++ / OpenGL / GLSL

Two different voxel rendering projects I worked on during my Master's degree.

The first project was created for the module Innovation Project (143601A) at Hochschule der Medien. For it I developed two new GPU-based greedy meshing algorithms that leverage the power of the GPU's parallel processing. Afterwards I wrote a scientific paper based on the results.

The second project expanded on the findings of the first one by comparing four different voxel rendering approaches for my Master's thesis investigating the tradeoffs between these methods. This included improvements to the rendering approach that performed better in the first project along with the implementation of binary greedy meshing, a plain DDA approach based on Amanatides and Woo as well as Sparse 64-Trees.

The demo shows the castle scene I orginally made as part of my work for TuxedoLabs' Teardown that has since turned into the Go-To test scene for lots of voxel ray marching projects.

Realtime Graphics Projects

Godot / GDScript / GLSL

A collection of projects I developed in Godot for the module Realtime Graphics (253064a) at Hochschule der Medien. This lecture taught me different real-time rendering techniques with a major focus on shader programming using Godot.

The first project showcases a wood shader with adjustable parameters for age, snarl and different board parameters.

The second project uses SDFs to rendering multiple animated lanters on top of a lake. Water and lantern parameters are adjustable in editor and the camera can be rotated on runtime.

The third project also uses SDF-based rendering to display a rocky desert world that can be walked around in. It includes adjustable parameters for different lighting scenarios through adjustments of the sky.

The fourth project displays a modifiable crown that is created from procedural geometry using Godot's immediate mesh system. The crown is able to reflect surrounding lights and includes adjustable parameters for its age/ demolition state, its rotation and and whether lights in the scene should be enable or not. Disabling the lights changes the lighting scenario. The crown itself can also be adjusted including paramters for its subdivision level as well as its tip and gem amounts.

The final project created for the lecture displays a museum including multiple smaller projects that display the different aspects of what was learned throughout the lecture. In case of the project I created this includes an SDF-based teleportation portal, birds that fly around the scene, a cave containing reflective crystals, different donuts that display different shader-based materials and an interactable picture frame that changes its surrounding environment when interacted with.

Links:

Looking for Elara

Godot/ GDScript / GLSL

A vertical slice prototype for a game we called Looking for Elara we created for the module Game Design (143410a) with four people at Hochschule der Medien.

“Looking for Elara” is an atmospheric 3D exploration game in which the player takes on the role of Kael, who is searching for his missing sister in a submarine. The player does so by collecting clues, solving puzzles and exploring mysterious underater landscapes to gradually reconstruct what really happened to her.

My task was to do most of the programming of the game as well as establishing its visual look. This means, that I worked on all elements included in the puzzle to create modular building blocks our level designer was then able to use to build the levels with. I also created the movement system of the submarine and implemented any sounds and particles visible in the game. Additionally, I worked on the water shader and UI system.

Links:

Boids

Godot / GDScript/ GLSL

Two implementations of boids using compute shaders developed in Godot. Originally I experimented with these to see how useful they would be for another project I was working on at the time but evenutally hit barriers with Godot's slow compute shader readback implementation.

Links:

Game Jams

Godot / GDScript

Various game jams I participated in resulted in fully playable games. I worked on these jams with different teams but my general task was always to take over part of the programming. Ludum Dare is a game jam where every participant is given a topic voted on by all participants from a selection of possible options. Each participant then has 72 hours to develop a game based on that topic.

The first game is called Bug Driver 3D and was developed for Ludum Dare 58 with the theme "Collector". We worked in it with a team of five people including two programmers, one game designer, one sound designer and one artist. In the game you take over the role of the bug driver and have to rescue as many bugs as possible to bring them to safety because the temperature gets too low.

The second game called Timmy Dives was developed for Ludum Dare 57 that had the theme "Depths". We worked on the game with a total of six people that were on and off during the duration of the jam. In it you play a submarine that is able to shoot lasers to break surrounding rocks and have to reach the bottom by running away from enemy fish.