Cutting a frame from 22 ms to 16 without new hardware
A profiler-led teardown of a stutter I chased for two weeks. Turned out to be a cache-hostile update loop, not the GPU. Numbers, flame graphs and the two-line fix.
Read the write-up →
game dev blog · szczecin
CodeNook is one developer's notebook on engine internals, gameplay code and tooling — postmortems with real frame times, architecture breakdowns with the actual code, and the mistakes I only understood in hindsight. No listicles. No hype. Just the detail I wish someone had written for me.
latest
Everything here started as a real problem in a real build. Read them free; members get the source, the project files and the follow-up Q&A.
A profiler-led teardown of a stutter I chased for two weeks. Turned out to be a cache-hostile update loop, not the GPU. Numbers, flame graphs and the two-line fix.
Read the write-up →
How I moved from naive per-frame overlap checks to a swept-shape approach that felt fair — including the edge cases players found within an hour of launch.
Read the write-up →
Building a tiny asset-import validator that caught the mistakes our whole team kept making. Small tools, big leverage — and why I stopped waiting for "official" ones.
Read the write-up →
Versioning, migration and the day a patch corrupted three hours of someone's progress. A design for save data that can change shape without breaking old files.
Read the write-up →grep -r ~/archive
A slice of what's in the archive. Titles are free to read; the src column marks the posts whose source, project files and benchmarks are unlocked with Pro.
| Date | Title | Tags | Read | src |
|---|---|---|---|---|
| 2026-07-14 | Cutting a frame from 22 ms to 16 ms | #profiling #engine | 18m | ◆ Pro |
| 2026-06-30 | Hit-detection that survived players | #gameplay #physics | 24m | ◆ Pro |
| 2026-06-12 | The tool that paid for itself in a weekend | #tooling #pipeline | 15m | free |
| 2026-05-28 | Save systems are harder than the game | #serialization #shipping | 21m | ◆ Pro |
| 2026-05-09 | A fixed timestep, explained line by line | #physics #engine | 19m | ◆ Pro |
| 2026-04-22 | Why my entity store got 3× faster | #data-oriented #perf | 17m | free |
140+ more where these came from — four years of write-ups with no gaps and no sponsored posts. Members read the whole thing in one place.
series
Some subjects don't fit in one post. These run over several, building on each other — start at part one and read forward.
From an empty main() to a rendering loop, an entity store and a frame allocator — every decision explained, nothing skipped.
7 parts · code includedCoyote time, input buffering, camera lag and screen shake — the tiny systems that separate stiff from satisfying.
5 parts · with demosCut lists, bug triage, the last-week freeze and the postmortem — how a project actually crosses the line.
4 parts · real timelinesWhat actually got faster when I restructured for cache locality — and where the pattern quietly made things worse.
6 parts · benchmarksthis month's deep dive
Our jumps felt different on every machine. The culprit wasn't the physics math — it was tying it to a variable frame rate. This one walks through the accumulator loop line by line, the interpolation that keeps rendering smooth, and the two bugs the change introduced.
tail -f ~/members.thread
Unedited replies from the Pro thread — the working programmers who read the write-ups, pull the source and argue the trade-offs in the comments.
cat README.md
140 posts is a lot to land on cold. If you're just arriving, this is the path most members say clicked for them — foundations first, then the fun.
membership
The writing stays free to read. Pro is for developers who want the working parts — source, project files and a place to ask. One tier, month to month, cancel whenever. Price in Polish złoty.
39 zł / month
Not a paywall on the ideas — those stay open. Pro funds the time it takes to write things properly: to profile twice, to strip the code down to something readable, and to answer the "but what about…" questions in the thread.
Prefer a year up front? Annual works out cheaper — mention it in the form and I'll set it up.
| What you get | Free | Pro · 39 zł/mo |
|---|---|---|
| Read every article | ✓ | ✓ |
| Downloadable source samples | — | ✓ |
| Full project files & benchmarks | — | ✓ |
| Members' Q&A thread | — | ✓ |
| Early access to new posts | — | ✓ |
| Vote on what I write next | — | ✓ |
| Sponsored posts | never | never |
man codenook
There's a person behind this, not a content team. Read the backstory or send a line — I answer my own inbox, usually within a day.
the changelog
A short email when something goes up — the title, why it might matter to you, and a link. No drip campaigns, no upsells. Unsubscribe in one click.
man codenook · questions
The common questions, laid out like a man page — read top to bottom, no clicking to expand.
git commit -m "joined"
Fill this in and you'll get a payment link and your login by email — nothing is charged on this page. Questions first? Write to [email protected] or call +48 693 876 543.