File size: 4,317 Bytes
3ce1a40 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | # Repoverse / SNAPKITTY game
## Play the Windows build
The native game opens the SNAPKITTY menu. Enter or Space starts Bifrost Runner.
A/D or arrows move, Space/W jumps, E talks near the Architect, F5 saves, F9
restores the disk save (including after restarting), and Escape returns to the menu.
F9 on the title screen continues the saved game. I opens the about panel. R opens the
repository browser; Left/Right selects a repository and Escape returns.
Build from the repository root with PowerShell:
./tools/Build-Snapkitty.ps1 -Play
After building, run python tools/package-snapkitty.py to create
out/Snapkitty-Windows.zip. Extract it and double-click Play.cmd.
The package includes runtime assets, original artwork, notices and checksums.
Requires CMake, MinGW GCC/G++, and network access for the first SDL2 download.
The script pins SDL 2.32.10 and verifies its SHA-256. The runtime has no network
dependency. Generated sprites and audio remain part of the existing Unify build.
## What is shared
The title, repository browser, gameplay, physics, WASM compute, saves and artwork
are shared Unify Lua/assets. The SDL backend provides a desktop window. Unreal
provides a Canvas renderer, input and audio through the existing Unify backend.
This is a native 2D game hosted inside Unreal, not a new browser simulation.
The existing demo remains available with --scene title. The new default is
snapkitty, which opens snapkitty_level. The player uses the original kitten
cutout; motion uses the existing run/jump state machine and procedural squash,
not invented sprite-sheet frames. The Architect is an interactive NPC near the
start. Event pickups, obstacles, moving platforms, the finish trigger and
save/restore use the existing platformer systems.
## Repoverse data bridge
The C# core remains the authority for world generation. Export a snapshot and
manifest using the existing CLI, then generate the read-only repository scene:
dotnet run --project src/Repoverse.Cli -- ingest-local . --owner SNAPKITTYWEST --out out/snapshot.json
dotnet run --project src/Repoverse.Cli -- generate --snapshot out/snapshot.json --out out/manifest.json
python tools/export-unify-world.py out/manifest.json
The exporter accepts schema 1 and encodes text as Lua string bytes, never as
executable source. It does not modify the manifest or run repository code.
The checked-in menu data is a snapshot of this repository, not live GitHub data.
The browser shows category, district, activity, construction, rooms and seed.
It is not yet the streamed 3D voxel district described in HANDOFF.md.
## Unreal project
See unreal/README.md. The project enables the UnifyUnreal plugin, assigns the
Unify GameMode, creates a host automatically, and stages ordinary files as
NonUFS assets because the engine opens them through its file loader.
## Artwork and provenance
Originals and the upstream AGPL license are under assets/snapkitty. Four QOI
runtime copies were converted losslessly, with pixel equality checked.
The source and runtime SHA-256 hashes are in runtime-manifest.json.
No original was recolored, resized or overwritten; scene tint is applied at
runtime for readability. Both original JPGs and transparent PNGs are retained.
The upstream source commit is recorded in source-manifest.json. This does not
replace the licensing terms of unrelated Repoverse code.
Regenerate texture files with python tools/import-snapkitty.py (Pillow required).
The checked-in QOI files make Pillow unnecessary for ordinary game builds.
## Validation
CTest runs the engine suite, the original demo playthrough and the SNAPKITTY
playthrough. The latter exercises the actual game rather than a mock scene.
An additional engine test covers the about panel, repository scene, play
transition, original textures and Architect interaction. Screenshots are
written under unify/build-game/snapkitty-evidence.
The Unreal Editor is not installed in the inspected locations on this machine.
Its C++ integration therefore still needs compilation and a PIE check with the
user's engine version. SDL/headless results do not establish Unreal compilation.
## 3D district integration
See [REPOVERSE-3D.md](REPOVERSE-3D.md) for the new C# sidecar, Unreal client,
launcher and the remaining Unreal compilation/playtest boundary.
|