Skip to content

Split into engine, preservation port and Community Edition - #3

Merged
hazeliscoding merged 14 commits into
mainfrom
split/three-repos
Oct 15, 2026
Merged

hazeliscoding merged 14 commits into
mainfrom
split/three-repos

Conversation

@hazeliscoding

Copy link
Copy Markdown
Owner

This repo goes back to being a faithful preservation port of the original 20 stages.

  • The rules, and the shared board, Jack, camera, timing and asset-reading code, now live in puzzle-boy-engine, pinned as a submodule at external/puzzle-boy-engine.
  • The game plays exactly the original's 20 stages in its order. Bonus stages, the C switch key and PageUp/PageDown skipping move to Puzzle Boy Community Edition.
  • The moved rendering and reading code differs only in namespace, visibility and citation lines (ROADMAP M6).
  • Tags v0.1.0, v0.2.0 and the M0–M4 history are unchanged.

See ROADMAP.md, M5 and M6, for the evidence and test accounting.

The rules now come from puzzle-boy-engine, pinned as a submodule at
external/puzzle-boy-engine (99eaf06). src/PuzzleBoy.Rules and the nine
rule-only test files are deleted here; they live in the engine with the
same tests. The original order moves to OriginalStageOrder in the game.

Behavior is unchanged: the bonus list sits in GameAssets until the next
commit restores the original twenty stages. CI checks out submodules and
fails early with a clear message when the engine is missing.
The game loads exactly the original's 20 stage files again. The C switch
key, the PageUp/PageDown stage skip and the switch's controls bar are
gone; Hud.cs is back to v0.1.0. Everything else plays as before, and
after stage 20 the board stays cleared, as in v0.1.0.

Pressed now only reads keys from a table, so tests can prove there's no
switch or skip key. A metadata scan proves the game never references
Board.Switch, with Board.Step as its positive control. The bonus stages
and the switch move to Community Edition.
The README now leads with what this repo is: a faithful preservation
port that needs your own Nocturne data and plays the original 20 stages.
It points to Community Edition for play without Nocturne. AGENTS.md and
the docs cover the engine submodule, OriginalStageOrder and the keys
without the switch or the skip. The bonus stages page stays as history.
ROADMAP.md records the split's decisions and closes M5.
- refactor: move bundle reading into PuzzleBoy.Nocturne
- refactor: move board and character rendering into PuzzleBoy.Rendering
- docs: describe the shared presentation libraries
The install reader, texture and mesh decoders, board and character
drawing, camera, move timing and sounds now come from the engine's
PuzzleBoy.Nocturne and PuzzleBoy.Rendering, which hold the same code
with only namespace, visibility and citation changes. Their tests moved
with them; the Board.Switch scan now also covers PuzzleBoy.Rendering.

The game drops its direct AssetsTools.NET, Fmod5Sharp and NVorbis
references, which now come through PuzzleBoy.Nocturne.
AGENTS.md, the architecture and topic docs point at the engine's PuzzleBoy.Nocturne and PuzzleBoy.Rendering. ROADMAP.md records the decision and M6, with the diff evidence that the moved code is unchanged.
- docs: record versioning by commit SHA and close E3 with its CI runs
The engine and Community Edition are on GitHub, so the submodule fetches from there and CI passes (PR #3 run 38757831224, release start checks 38757945948). M5 is done with the right test count, 51, and Community is described as the minigame expanded.
@hazeliscoding
hazeliscoding marked this pull request as ready for review October 15, 2026 17:04
@hazeliscoding
hazeliscoding merged commit b197eb1 into main Oct 15, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant