Work projects
Hogwarts Legacy⌗
Was an interesting journey that definitely had it’s ups and downs. But generally was a fun ride! Many lessons learned, much much more to learn in the future.
Personal projects Not an exhaustive list - all of my projects can be found on Github.
Degrugger⌗
Very much a WIP project riddled with spaghetti.
An experimental ELF/DWARF debugger drawing inspiration from reverse engineering tools. Currently I am not planning it to become a production ready debugger, more of an experimental tool to try out innovative debugger functionality like:
- Inline stacks (demo in the video above).
- Multi-context watch window.
- Basic-block like view for program flow inspection / codepath-sensitive breakpoints.
- Etc.
Troglodite⌗
No beautiful renders yet – WIP.
Vulkan renderer written in C++.
Rayzigger⌗
Software pathtracer written in Zig (wonderful language!). Still a lot of features missing, but having a CPU pathtracer enables testing various ideas without having to involve the GPU. Since it has the potential of introducing oh-so-fun seizure inducing debugging sessions.
Ignoramus renderer⌗
OpenGL renderer written from scratch in C++. Uses tiled-deferred rendering pipeline and supports various different methods of transparency:
- forward transparency;
- depth peeling;
- dual depth peeling;
- order-independent transparency;
- A-buffer (per-pixel linked list) transparency.
Initially started off as first-contact with a “real” graphics API, but eventually was turned into basis for my BSc thesis “Transparent geometry rendering in deferred pipelines for real-time applications”.
Simpleton’s renderer⌗
Software rasterizer written in C++. Draws directly to Linux framebuffer without having to involve any graphics API whatsoever. Served as a great introduction to graphics programming – there’s no better way of learning how things work but implementing them yourself.
Quester⌗
After getting really frustrated with a frankly ridiculous undebuggability of a quest system on a certain project I decided to see if I can do better in a few evenings. It ended up having 90% of the features (+ some additional ones), better extensibility and a better editor. Not to mention it was like 1/20th of the size.
Big mistake that prevents it from being usable in my eyes is the decision of writing this in C99 and heavily leveraging macros. It’s not a huge issue in C or C++ projects (except for bloated compile times), but it prevents it from being FFI’d into from other languages like Zig, etc.
Additionally, to avoid the pains of building C / C++ projects it’s written as a single header lib.
Unfortunately, I do not have a game to add it to, so it simply remained as a few-evening-exercise.
Seenes⌗
A simple NES emulator written in C. Not quite finished, but I’ll get to it one day.
SPH fluid sim⌗
Simple Smoothed Particle Hydrodynamics fluid simulation using compute shaders. Based on this whitepaper. Served as an intro to compute shaders. This uses a rather old technique by presented by Simon Green (NVIDIA) at GDC 2010 called screen-space fluids.
In fairness to the authors, I did not do the screen-space fluids technique justice. However, that was not the goal of the project - learning about compute shaders was.
Was a fun project nevertheless, I am sure to come back to particle sims in the future.