Redis is greatIntroduction I've used Redis for a lot of things over the years. Rate limiting, caching, distributed locking, tracking peak concurrency, ephemeral counters, queues, deduplication, leaderboards. Every May 3, 2026·8 min read
How spatial audio works in gamesIntroduction A while ago I started wondering how games make sound feel like it's coming from a real place. Like in Counter-Strike when you can hear someone walking through a room two corridors over, oApr 29, 2026·8 min read
A visual guide to voxelsWhat's a voxel? A voxel is to 3D what a pixel is to 2D. A pixel is a tiny square in a 2D image. A grid of pixels makes a picture. Your screen is a grid of pixels. Zoom into any photo and you see them.Apr 26, 2026·4 min read
Does my KTX2 texture need to be square?Introduction I hit an error like this: KTX2 texture decoded to 512x286, which is incompatible with block size 4x4 I assumed the texture needed to be square (width = height). That was wrong. Where theApr 26, 2026·2 min read
Indirect draws in WebGPU and why they're so powerfulIndirect draws in WebGPU 1. The two kinds of passes Every frame, CPU records commands grouped into passes. Two kinds matter here. Render pass = pixels come out. Runs the standard graphics pipeline: VApr 26, 2026·9 min read
Trigonometry for game devs, starting from zeroIntroduction This guide assumes you know nothing. We're starting from the actual beginning. By the end, you'll understand what trig is, why it matters for games, and you'll know the handful of formulaApr 24, 2026·8 min read
Signed Distance Functions (SDFs) and why they are coolFirst, what problem are we even solving? Before we talk about SDFs, let's talk about how 3D graphics normally work. Take a round ball in any video game. Looks smooth, right? It's not. If you zoom in cApr 23, 2026·6 min read