THOUGHTS & INSIGHTS

Blog

Exploring the development of projects, applications, and video games. Reflections on design, productivity, and life as a developer.

Recent Articles

Marching Cubes: From Voxels to Smooth Meshes

Marching Cubes: From Voxels to Smooth Meshes

Cubic voxels are easy; smooth terrain is not. How Marching Cubes turns a density field into a triangle mesh, why interpolation is the whole trick, and what breaks when you add chunks and LOD.

The Journey of an Error: From a Backend 500 to the Message the User Sees

The Journey of an Error: From a Backend 500 to the Message the User Sees

An error crosses four layers before it reaches the user: the HTTP interceptor, the mapping to domain errors, the default behavior policy, and the render safety net. Three implementations (TypeScript, Kotlin and Swift) of the same pattern.

The Roster as a Resource: Darkest Dungeon's Economy of Scarcity

The Roster as a Resource: Darkest Dungeon's Economy of Scarcity

In Darkest Dungeon heroes are consumables and the hamlet is the real protagonist. A breakdown of roster management, opportunity cost, and an economy designed so you never have enough.

Darkest Dungeon's Stress: Designing for Attrition

Darkest Dungeon's Stress: Designing for Attrition

Stress is Darkest Dungeon's second health bar, and the one that actually matters. How a resource running parallel to HP turns every expedition into attrition management, and why the game is designed for you to lose.

Strangler Fig: Migrating a System Without Shutting It Down

Strangler Fig: Migrating a System Without Shutting It Down

The strangler fig grows around its host tree until it replaces it completely. The same trick works for migrating a legacy system: feature by feature, with no big bang and nothing switched off.

Dash, Jump, and Movement: Tuning the Feel of Control

Dash, Jump, and Movement: Tuning the Feel of Control

Acceleration, friction, and curves that make movement feel good.

Dark Mode Without a Single if

Dark Mode Without a Single if

If your dark mode is a chain of ternaries, you've already lost. How a theme provider and semantic tokens make theming almost free and erase if (isDark) from your code.

Sensors and Perception: How an NPC Sees and Hears

Sensors and Perception: How an NPC Sees and Hears

How to give game AI its senses: vision cones, sound events, and a memory that remembers what the NPC has perceived.

Unity Profiling: Finding the Real Bottleneck

Unity Profiling: Finding the Real Bottleneck

Bumping up the FPS blindly is a waste of time. How to use the Unity Profiler to find the real bottleneck (CPU, GPU, draw calls or GC) before touching a single line of code.

Repository Pattern: Your UI Shouldn't Know Where Data Comes From

Repository Pattern: Your UI Shouldn't Know Where Data Comes From

An interface that hides whether data comes from the network, cache, or disk. How to swap the source without touching a single screen.

Showing 1-10 of 19 articles