Hogwarts Legacy

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.

Source code here.

Troglodite

No beautiful renders yet – WIP.

Vulkan renderer written in C++.

Rayzigger

Rayzigger demo

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.

Source code here.

Ignoramus renderer

Simpleton's renderer demo

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”.

Source code here.

BSc thesis here.

Simpleton’s renderer

Simpleton's renderer demo

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.

Source code here.

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.

Source code here.

Seenes

Seenes demo

A simple NES emulator written in C. Not quite finished, but I’ll get to it one day.

Source code here.

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.

Source code here.