The Friction Inventory: Why Your Platformer Feels Wrong
We ran acceleration curves through three different feel frameworks before we understood that the problem wasn't the numbers — it was the question we were asking about them.
Every post here started as a problem on a whiteboard at 1 AM — a collision detection bug that turned into a conversation about spatial hashing, a shader that wouldn't cooperate until we understood why the math was lying to us.
We write for the developer who already knows how to Google. We write for the moment after the Stack Overflow answer, when you're staring at working code and still don't know why it works.
“The interesting part of game development isn't the solution. It's the decision tree that led there.”
Long-form builds published
avg 14 min read
Editorial threads
Mechanics · Shaders · Perf · Philosophy
Average publication hour
when the build finally compiles
The jump arc in your platformer is a philosophical position about player agency. The reload animation in your shooter is a statement about pacing and tension. We unpack the reasoning.
“A mechanic that doesn't communicate its intention is a mechanic that will be patched out.”
We ran acceleration curves through three different feel frameworks before we understood that the problem wasn't the numbers — it was the question we were asking about them.

I spent six months avoiding finite state machines because they felt like engineering homework. Then I shipped a boss fight with 40 hand-written if-else chains.

The hitbox is not the character. Understanding that gap — the space between visual representation and physical truth — is where game feel actually lives.
Performance budgets shape what your game can be. The developers who understand this ship tighter, stranger, more intentional work. The ones who don't ship patches.
“The frame budget is not a ceiling. It's a constraint that forces you to decide what matters.”

Sixteen milliseconds is not a constraint — it's a canvas. Every draw call you cut is a decision about what your game is actually about. We profiled 200 scenes to prove it.

At 400 entities, my naive O(n²) collision check hit 8ms. At 4 AM with 6 hours left in the jam, spatial hashing was the only friend I had.

The performance argument for pooling is real, but it's the wrong argument. The right argument is about predictability — and that's a design value, not an engineering one.
GLSL is a language for describing how light behaves when it decides to lie. Understanding the math behind visual effects doesn't make you a graphics programmer — it makes you a better storyteller.
“When you understand what the noise function is doing, you stop copying and start composing.”
I copy-pasted noise functions for two years before I understood what `fract(sin(dot(uv, vec2(12.9898,78.233))))` was actually doing. This is that story.

You can follow tutorials. You can ship games. But eventually the shader breaks in a way the tutorial didn't cover, and then you have to actually understand vectors.
Exponential fog with a custom falloff curve doesn't just hide draw distance. In the right game, it's the difference between mystery and emptiness.
On the culture of game development — the decisions made in boardrooms, the conventions that calcify into dogma, and the indie devs who quietly ignore all of it.

It doesn't appear on a résumé. You can't test for it in a code review. And yet the difference between a game that ships and a game that matters often comes down to one developer who had it.
Publishers want a vertical slice. Your team wants a proof of concept. These are different things, and confusing them is how you end up with a polished demo nobody wants to keep playing.

Every developer I respect has shipped something they're not proud of. The ones I admire most are the ones who did it deliberately, with full knowledge of what they were leaving on the table.
“The archive is where the real conversations live.”
47 long-form builds spanning collision systems, narrative state machines, GPU particle budgets, and why the most important game design decisions happen in a spreadsheet.