**Smaller Games (2018-2020)** Over the years I have made a bunch of smaller games with different technologies. They can be found on itch.io and GameJolt. # The Rhythm Dungeon (2020) This was a 2D rhythm game written in C++ made for a game jam that ran on Windows and used OpenGL 4 for rendering. I wrote a simple batching renderer that consumed draw commands issued by the gameplay code and executed them all in one go at the end of the frame in an optimal order. ![A rhythm hack 'n' slash game.](images/small_trd_animated.gif width="512px") # WebAssembly Games (2019-2020) I made multiple game jam games that were written in C and ran in the browser using WebAssembly. I opted to avoid Emscripten and interface with the browser myself. This was achieved by writing a small JavaScript layer containing functions to interact with a HTML5 canvas that were called from WebAssembly. All the graphics were software rendered in the C/WebAssembly code. Each frame, the JavaScript layer would call a WebAssembly function that rendered a frame to some shared memory which it would display on the HTML5 canvas. Avoiding Emscripten meant the C standard library was unavailable so I had to write string manipulation, math and memory allocation code myself. ![A platformer made for Ludum Dare 45.](images/small_chroma.png width="512px") ![A game made for Ludum Dare 46 where you have to place objects in a level to keep a little person alive as it runs around.](images/small_lh.png width="512px") # Hedgehogs Can Fly (2018) This was a 2D physics platformer written in C++ that ran on Windows using SFML. It was about flinging a hedgehog through various levels with different types of terrain and avoiding obstacles. I wrote the physics code from scratch and came up with a method of estimating the surface normal at any point in the level. This allowed the player to interact with arbitrarily shaped geometry. ![Terrain was rendered with a custom GLSL shader.](images/small_hcf.gif width="512px")