尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗A grid puzzle game about a salvage rigger whose body became a magnet.
Magnus can pull and push anything ferrous. Force is mutual: light things slide to him or away from him, heavy things move him. Unlike poles pull, like poles push, iron can only be pulled, and crystal is invisible to a field. Every puzzle is one of those facts, applied.
Chapter 1, The Clearing, is ten rooms of increasing difficulty. See
DESIGN.md for the storyline, the rules, the obstacle catalogue,
and a walkthrough of each room.
Version 0.3.0.
Open index.html in a browser. Nothing to install; Three.js is loaded from a CDN.
If your browser blocks scripts on file://, serve the folder instead:
python3 -m http.server 8765 # then open http://localhost:8765/
?level=7 in the URL jumps straight to a room.
The page opens on a title screen: field lines trace between two poles and
flip every few seconds. Enter the bay (or Enter) starts the game;
Play fullscreen (or F) starts it in fullscreen.
The board fills the window with no text on it. Info (or I) opens rules,
story, and level select; Fullscreen (or F) hides the browser chrome and
puts the pad on screen so the game is playable on a phone or in a kiosk.
The game is a static site (no server), so it fits Render's free static tier.
render.yaml describes the service; the level solver runs as the build step so
a broken room fails the deploy instead of shipping.
Or manually: Render Dashboard → New → Blueprint → pick this repo. Every push
to main redeploys; pull requests get their own preview URL.
| Key | Action |
|---|---|
| Arrows / WASD | Walk |
| Shift + direction | Pulse your field that way (or tap a tile in your row/column) |
| Space | Flip your pole N ⇄ S |
| Z | Undo |
| R | Restart room |
| F | Toggle fullscreen |
| I | Open / close info |
| H | Open info and toggle hint |
[ ] | Previous / next room |
Touch / fullscreen: on-screen d-pad on the left; Pulse, Flip, Undo, Restart on the right. Toggle Pulse to make the pad pulse instead of walk.
index.html page shell, splash screen, overlay controls, info panel
src/splash.js title-screen animation: traced field lines between two poles
src/engine.js the rules — pure logic, runs in the browser and in Node
src/levels.js the ten rooms as ASCII maps
src/render3d.js Three.js view: geometry, lighting, animation of engine events
src/main.js input, undo history, progress (localStorage), level flow
src/style.css
tools/solve.js breadth-first solver: proves every room solvable, computes par
The renderer never decides anything. engine.js produces a new state plus a
list of events for every action; render3d.js animates those events. The game
is deterministic and turn-based, which is what makes undo exact and levels
verifiable.
node tools/solve.js # all rooms: solvable? par correct?
node tools/solve.js 4 # one room, with an ASCII replay of the solution
The solver exits non-zero if a room is unsolvable or its recorded par is stale.
# rock / hedge / log = crystal (field passes, bodies don't)
. grass _ stone plate
~ water (pit) D wooden gate (open while every plate is held)
A iron-banded boulder X lantern / exit
N S heavy lodestones @ Magnus start
i crate n s light magnet blocks