Blog
-
Every Game I Made Since 2019 had a Lighting Bug —
-
Setting up WinGet for the First Time —
-
Restoring my Childhood Family Computer: Part 3 —
-
Restoring my Childhood Family Computer: Part 2 —
-
Restoring my Childhood Family Computer: Part 1 —
-
Frustrating Interactions with the OCaml Ecosystem while developing a Synthesizer Library —
-
Component Pinouts and Notes —
-
Programming an Arduino the Hard Way —
-
Chargrid SDL Frontend —
-
Playing sound on the NES by directly setting its DMC output —
-
Demystifying Floating Points —
-
If you use a custom linker script, _start might not be your entry point —
-
Reverse-Engineering NES Tetris to add Hard Drop —
-
2020 Recap —
-
NTFS on FreeBSD —
-
dmenu_histogram —
-
Make sure your terminal emulator runs in the expected environment —
-
Why you need a .bashrc and .profile —
-
Simple Wolfenstein-3D-esque renderer —
-
Boss fights in traditional roguelikes —
-
Conway's Game of Life on the NES in Rust —
-
Zelda Screen Transitions are Undefined Behaviour —
-
NES Emulator Debugging —
-
Procedural Generation with Wave Function Collapse —
-
2018 Recap —
-
Pathfinding on a Grid —
-
Modifying Entity Component System for Turn-Based Games —
-
Programming Languages Make Terrible Game Engines —
-
Even Separation Algorithm —
-
Encoding Rules for Turn-Based Games —
-
Visible Area Detection with Recursive Shadowcast —
-
Cellular Automata Cave Generation —
-
2D Phong Illumination in WebGL —
-
Post Mortem of an Abandoned Game —