The Game Assemby Specialization

Engine: Metronome(Custom) | 5 Weeks 50%

An implementation of marching cubes and a simple voxel engine in C++

The Game Assemby Projects

Engine: Metronome(Custom) | 15 Weeks 50%

During the project i wrote a completely custom ECS system for our engine and worked on a node graph allowing the other disciplines to create gameplay without involving a programmer. I also added even more editor tools and features, worked on improving prefab/level loading, and worked on fixing our broken rendering system.

Engine: Metronome(Custom) | 14 Weeks 50%

During the project i wrote a Entt ECS system for our engine, Many editor panels and features, Worked on the lighting and graphics rendering, and wrote user-friendly exporters for both Unity and Unreal to let the level designers compose levels and prefabs to be loaded in our engine without involving a programmer.

I also worked closely with our then new technical artists to help them learn hlsl, understand the engine structure and added features allowing data-driven customization of the shader parameters and pipeline without needing to write any C++ code.

Engine: TGA2D | 8 Weeks 50%

During the project i greatly improved on my rendering system from "Descent" and worked on the camera system, level loading, tile rendering, cutscenes, and a enemy "finite state machine" system.

I also wrote a shader that dithers the foreground when the player is occluded.

Engine: TGA2D | 8 Weeks 50%

During the project i worked on a threaded rendering system, level loading, and a player camera system with support for frame and dead zones as well as moving "level bounds".

I also worked on a automatic sprite batching system and animated background paralax.

Engine: TGA2D | 8 Weeks 50%

During the project i worked on the sprite and animation systems, level loading, triggering music/sfx, particle systems, and collision detection.

I also wrote a level preview/debug tool to speed up iteration speed for the level designers.

Engine: Unity | 6 Weeks 50%

During the project i worked on the underlying event-based grid/voxel system and the complicated interactions it spawns as the player interacts with the environment.

I also wrote a number of shaders and worked on UI, player movement, puzzle elements and touch input.

Engine: Unity | 6 Weeks 50%

During the project i worked on many tools for the level designers and artists to preview and iterate faster on level designs.

I also wrote a number of shaders and worked on player movement and feedback.

Personal Projects

Engine: Metronome(Custom) | Live Profiler for Proprietary Engine

A tool to monitor performance live as you play and test your game.

Engine: Unity | 3D Sandbox Space Game

This is a truly long-running project of mine. It's a space game with a quite mature voxel engine at it's core. It can handle fluid realtime voxel deformations, multiple voxel materials and blending between them, chunk LODing, save/load worlds and more.

Custom Language Compiler

Coming up with programming languages and writing my own compilers and transpilers for them is a minor obsession of mine.

I've written both simple assembly languages for my own CPU architectures as well as more high-level ones like my own flavor of Lua.

Older Projects

Engine: Unity | 3D Puzzle Game

This is my thesis project from LBS and was made as a solo project. The game is based around "non-Euclidean" game mechanics such as seamless portals, relative gravity, the player growing/shrinking, and time travel.

During the project my main objective was to learn more about matrix math and how to abuse the rendering pipeline to render the portals as perfectly as possible.

Engine: Unity | 3D Rougelike-Soulslike

Rouge Souls is a group project i did at LBS. During the project i was responsible for player movement, system design, menus among other things... But i also developed a fully featured behavior tree system with a UI for non-programmers with live behavior debugging features.

I also built a full multiplayer and remote server system to remove the hassle of setting up a local server from the players.