Writing
RSSNotes on front-end work, TypeScript, and the overlap with games and audio.
Hundreds of Draw Calls Down to a Handful with BatchedMesh
7 min read
How Typo's Voyage draws every tile and every 3D letter through four three.js BatchedMeshes, poses a whole treadmill on the GPU with one vec4 a frame, and what breaks when you move instances in the vertex shader.
Stamp DEV on the Debug Icon
4 min read
My Debug builds are their own app: a .dev bundle ID, a Dev name, and the real icon with a DEV ribbon a small script draws across the corner. They install beside the App Store version and never touch its data.
Your Shader Stutter Happens at First Draw
8 min read
A three.js hitch the first time an effect appears is usually a WebGL program link. It blocks at the first draw, not at compile, and a warm-up only fixes it if it links the same program variant your frames use.
Roll It Has No Outline Pass
9 min read
The ink lines in Roll It aren't a post-process. Each material finds its own edges: the median of three distances on a box, crease barycentrics on a mesh, and a view-angle band on the ball.
Soundscapes for Web Games: A Pluggable Howler Implementation, Part 2
12 min read
The soundscape engine is one class under a hundred lines. A six-function adapter is the seam.
Soundscapes for Web Games: The Layer Beneath Your SFX, Part 1
8 min read
Most web games go silent the moment the player stops moving. A soundscape is the quiet layer underneath your SFX that keeps the room alive.
switch(true) in React: First True Wins
5 min read
switch(true) runs the first case that is true, which makes it a tidy way to write ordered conditions. It is the right tool less often than it looks. Here is when it earns its place.
Conventional Comments: Say What It Is and Whether It Blocks
5 min read
Most code review friction comes from not knowing whether a comment blocks the merge. Conventional Comments is a short prefix that says what kind of feedback it is and whether you have to act on it.
Yak Shaving: Shave It, Stash It, or Skip It
5 min read
Yak shaving is a chain of reasonable tasks that walks you away from the thing you sat down to build. Three questions tell you whether to follow it.
Turn on skipLibCheck
4 min read
skipLibCheck in tsconfig tells TypeScript to skip type-checking .d.ts files. Your own code is still fully checked, so turn it on and leave it on in CI.
No posts match that tag.