Quick answer: Document for the person who returns after six months (it's you): comments that explain why — the weird workaround, the tuned constant, the order dependency — never what the code already says; one NOTES file for project-wide decisions and gotchas; and a one-page map per major system. Anything more rots; anything less costs you a week of re-discovery per absence.

Document for the person who returns after six months (it's you): comments that explain why — the weird workaround, the tuned constant, the order dependency — never what the code already says; one NOTES file for project-wide decisions and gotchas; and a one-page map per major system. Anything more rots; anything less costs you a week of re-discovery per absence. That's the short version — the sections below get into the how, the why, and the mistakes worth dodging.

Comment the why; let code say the what

A comment restating the line below it ('// increase speed') is noise that rots into lies when the code changes. The comments that pay rent explain what code can't show: '// 0.12 not 0.1 — playtesters clipped corners at 0.1', '// must run before physics or wall-jumps eat inputs', '// API returns ms despite docs saying seconds'. Workarounds, tuning rationale, ordering constraints, and external quirks — the archaeology your future self would otherwise repeat.

Naming is documentation with enforcement: time spent renaming apply_thing() to apply_knockback_decay() outperforms any comment, because names can't drift out of date silently.

The NOTES file is the cheapest insurance you'll ever write

One file at the repo root for what spans the codebase: decisions made and why ('save files are JSON not binary because moddability'), gotchas ('the boss scene must load additively or audio cuts'), fiddly procedures (release steps, cert renewal), and the things that look deletable but aren't. Five minutes a week, appended as things happen.

Its value is brutal at the boundaries: returning from a break, onboarding a contractor, or debugging at 2am. Every team that keeps one wishes they'd started sooner; the contents are precisely the knowledge that otherwise exists only in a head that forgets.

System one-pagers, written at the right moment

For each major system — saves, input, enemy AI — one page: what it does, the core flow (a rough diagram beats prose), what it touches, and the landmines. Write it just after the system stabilizes, when understanding is total and the details still feel obvious; that's the moment documentation is cheapest and truest.

Keep docs next to code (repo markdown, not a distant wiki) so editing is one keystroke from the change that invalidates them — proximity is the only anti-rot mechanism that works. And when docs and code disagree, fix one immediately; a wrong doc is worse than none.

Your future self is a stranger — leave notes

Six months from now you will not remember why that magic number is 0.73 or which scene is safe to delete. Project knowledge that lives only in your head evaporates on contact with a break, a jam, or a day job crunch.

Keep one running NOTES file: decisions made, things that look unused but aren't, how to do the fiddly release steps. Five minutes of writing per week buys you days of re-discovery later.

Boring tools are a superpower

Every hour spent fighting your own pipeline is an hour not spent on the game. The goal of tooling isn't sophistication — it's that builds, backups, and versioning become so boring you forget they exist. Set them up once, automate them, and let them run.

The test is simple: if your machine died tonight, how long until you're working again? If the answer is 'an hour', your tooling is good. If it's 'I'd lose a week', fix that before adding any feature.

Close the loop with real players

Advice gets you to a sensible starting point; only real player behavior tells you if it worked. Ship the change, then watch what actually happens — the reports that come in, the errors that spike or vanish, the place sessions end.

Make that loop short. When a player can report a bug in ten seconds and you see it with logs attached, you stop guessing what to fix next. Tight feedback loops are the closest thing indie development has to a cheat code.

Putting it to work

Don't try to act on all of this at once. Pick the one change that costs you the least and pays the most this week, do it, and see what actually happens before reaching for the next.

Most of this rewards steadiness over intensity. A small improvement made every week, checked against how real players respond, outruns any single burst of effort — in this corner of game development and every other one.

If your machine died tonight, you should be working again by morning. Build toward that.