diff --git a/README.md b/README.md index 321bcdf..c61a3bb 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,41 @@ When you're ready to deploy new features or assets to players: 4. The **GitHub Actions Workflow** (`deploy_patch.yml`) will automatically detect the push, build the patch manifest (`version.json`), and deploy it to the public `gh-pages` branch. 5. Live game clients will detect the new version on boot, download the updated files, and apply the patch seamlessly. +### 4. Local Testing & Understanding the Patch System +When a player (or you) downloads an in-game patch, Godot downloads a `patch.pck` file to the system's `user://` directory. +- **Virtual File System:** Godot mounts this `.pck` file over the `res://` directory purely in memory. **It does not physically overwrite your local source files** (like `assets/data/version.json`). +- **Editor Bypass:** When testing locally in the Godot Editor, the `BootScreen` is configured to skip the remote network download and instead automatically parse your *local* `assets/data/version.json`. +- **Previewing Changelogs:** To preview how your changelog will look before pushing to GitHub: + 1. Add your notes under the `## [NEXT]` section in `CHANGELOG_DRAFT.md`. + 2. Run `py tools/generate_version_json.py` from the terminal. + 3. Run the `BootScreen` scene in the Godot Editor. It will instantly display the updated local UI! +- **Syncing:** After the GitHub Actions CI builds a release online, remember to run `git pull origin main` to sync your local project files with the CI-generated files. + +#### πŸ—ΊοΈ Architecture Flowchart +```mermaid +flowchart TD + %% Local Dev Flow + subgraph Local Dev Environment + A[πŸ“ CHANGELOG_DRAFT.md] -->|py tools/generate_version_json.py| B[(πŸ“„ version.json)] + B -.->|Test in Editor| C{BootScreen} + C -- Editor Bypass --> D[Reads Local version.json directly] + end + + %% CI Pipeline + subgraph CI/CD Pipeline + B -->|git push| E[⚑ GitHub Actions] + E -->|Compiles & Builds| F[πŸ“¦ patch.pck] + F -->|Deploys| G((🌍 Public Repository)) + end + + %% Live Client Flow + subgraph Player Client + G -.->|HTTP Download on Boot| H[πŸ“‚ user://patch.pck] + H -->|ProjectSettings.load_resource_pack| I[🧠 Godot Virtual File System] + I -.->|Overrides res:// in Memory| J[Game Starts Updated!] + end +``` + --- ## πŸš€ Ongoing Features (Incoming)