docs: reconcile the GDD, README and TODO with the code - #18
Merged
Conversation
The GDD is the design source of truth and it had drifted from the build. Every claim below was checked against the code, not guessed at. GDD (docs/VERSION 0.4.0 -> 0.5.0): - Dead-end ore cited FALL_TICKS, item_begin_fall and world_update_falls. None of the three exist. The sim kills the ore on the tick it dead-ends and emits a World_Event; the renderer turns that into a real-time Effect. That sim/visual split was a deliberate design decision the doc never recorded, so it is written down now. - Claimed real sprites ship for the machines and the ore. assets/sprites/ is empty. What shipped is the pipeline: a PNG dropped in is baked into the binary, and the ore already asks for its sprite and falls back to the procedural diamond. Everything draws as a block today. - Said the region starts at 2x2. It starts at 4x4 and caps at 128x128. The 2x2 example was dead on its own terms: the starter chain is 3 cells wide. - Sold belt tiers as one of "three axes today". There are two. Belt speed is still the one global sim tick, so a belt cannot have a tier until the per-entity cadence rework lands. - Listed four object types in the color, visual-design and tick sections. The splitter makes five. (The GDD did already describe the splitter correctly elsewhere; these lists were just never updated.) - Said the save format was "binary or simple text, human-editable" with "periodic auto-save". It is a versioned binary blob, and there is no auto-save. - Controls listed keys 1-5. They are 1-6, plus T, E, -/=, K, L and backtick, and Escape pauses rather than quitting. - Shop costs are always on screen, not shown on hover, and the placement ghost has a third state (affordable-but-broke). Delete is a tool, not a click gesture. - Milestone 3 was still "in progress" and Milestone 4 still listed save/load and viewport culling as future work. All three shipped. - Recorded the two invariants the audit made real: every running total saturates rather than wrapping i64, and "once per distinct upgrader" is a per-ore bitmap whose width is the cap on upgraders in the world. README: Esc pauses (it said Quit); the controls table was missing 6, T, E, -/=, K and L; the Entity_Upgrader and World samples no longer matched the structs (the upgrader sample did not even compile); the source tree omitted effects, sprites, menu and save; "everything else lives behind the debug overlay" was false; and "Playing with it" never mentioned money, the shop, expansion, the splitter, saving or the menus, while telling you to build a loop that without a splitter jams. TODO: UPGRADER_MULT never existed; the debug overlay is backtick, not F3; the GDD is v0.5.0, not v0.2.0; interactive UI, Continue and viewport culling are done; and the Docs item described a stack fix (SDL3) that had already happened. CHANGELOG: one factual error, F3 -> backtick, which the file already contradicted one section later.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The GDD is the design source of truth and it had drifted. Every claim below was verified against the code, not guessed at. Docs only, no code changes, so this is independent of #16 and #17 and can merge in any order.
GDD (
docs/VERSION0.4.0 -> 0.5.0, PDF regenerated)FALL_TICKSviaitem_begin_fall/world_update_fallsWorld_Event; the renderer turns that into a real-timeEffect. That sim/visual split was a deliberate decision the doc never recorded, so it is written down nowassets/sprites/is empty. The pipeline shipped (a PNG dropped in is baked into the binary, and the ore already falls back to the procedural diamond). Everything draws as a block today-/=, K, L, backtick. Escape pauses; it only quits from the title screenAlso recorded the two invariants the audit made real: every running total saturates rather than wrapping
i64, and "once per distinct upgrader" is a per-ore bitmap whose width is the cap on upgraders in the world.README
Esc pauses (it said Quit). The controls table was missing 6, T, E,
-/=, K and L. TheEntity_UpgraderandWorldsamples no longer matched the structs (the upgrader one would not even compile). The source tree omittedeffects,sprites,menuandsave. "Everything else lives behind the debug overlay" was false. And "Playing with it" never mentioned money, the shop, expansion, the splitter, save/load or the menus, while telling you to build a loop that, without a splitter, jams.TODO / CHANGELOG
UPGRADER_MULTnever existed; the overlay is backtick, not F3; the GDD is v0.5.0, not v0.2.0; interactive UI, the menu's Continue and viewport culling are done; and the Docs item described an SDL3 stack fix that had already happened. The CHANGELOG's one factual error (F3) is corrected, which the file already contradicted a section later.Verification
Grepped the docs for every stale symbol and number and checked each against the source:
PLAYABLE_START_SIDE= 4 vs "starts at 4x4",PLAYABLE_MAX_SIDE= 128 vs "128x128 cap", zero PNGs inassets/sprites/.typst compileclean. GameVERSIONdeliberately untouched at 0.7.0; onlydocs/VERSION(the GDD's own) moves.