Lukas’s PortfolioSelf-taught Systems Developer |
Version | v0.1.2 | |
---|---|---|---|
Updated | 2024-08-29 |
Welcome to my page! My name’s Lukas. I’m a self-taught Systems Developer located in Berlin, Germany. On this site you can find my past experience and some of the projects I’ve worked on.
Company | Role | Description | End Date |
---|---|---|---|
Highscore | Software Engineer |
|
Present |
One Dawn Studios, LLC | Co-Founder |
|
Present |
Journee | Systems Developer |
|
Aug. 2023 |
Journee | Software Dev Intern |
|
Dec. 2020 |
I created this project with the goal in mind of integrating it into Journee’s tec stack. Sadly during my time at Journee we didn’t find time for this.
Zig-Patch is a tool that creates and applies binary patches of game builds. It is based on the wharf spec.
It simply tries to find 64kb blocks that didn’t change in between two versions. If it finds a matching block in the previous build it can use that instead of serializing the data.
To make the patching process as fast as possible I used async-io to read / write data while worker threads handle diffing and compression or decompression of changed blocks.
In the following video I built two versions of Unreal’s lyra project. The only difference being a change to a single level.
The build of the lyra project was 872 MB in total. The patch was created in 0.46 seconds, was 5.65 MB large and took 1.23 seconds to be applied.
Operation Valor is a 54 player Unity multiplayer game that I built with my two co-founders at One Dawn Studios.
When we started working on the Project Unity didn’t really have a solution for non-casual Multiplayer games. But luckily for us Unity just released their fps sample which we then used as a base of the Project.
Of course the fps sample is rather opionated so we had to tweak / change a lot of things.
But Unity then released Netcode for DOTS which we then started migrating towards.
This project originated by the need for low latency frame capturing of games running under proton during my time at Journee.
The core of the project is a vulkan layer that is loaded by the vulkan loader during game startup.
A client that wants to get the frames of the game can then use the SDK that is part of the project.
This SDK then communicates with the target app using a shared memory object. The frames are exported using opaque file descriptor handles and can be imported by the client without having to move the data to the CPU.
Structure 2D was supposed to be a framework for creating 2D cell based games.
But I never got to properly release it.
It supported dynamic cell lighting, a save system, parallax background, map editing tools, procedural map generation as well as a collider system.
Rendering happened in a single fullscreen rendering pass.
Thanks to Oskar Wickstroem for the template this page is based on!