尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證3d marble game
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗A Marble Madness-style 3D racer. You roll a glass marble down courses that hang in the dark, with a single clock running against you. You can roll off the edges, drop too far, get flattened by a hammer or dissolved by acid, and get shoved off by black steelies along the way. Whatever time is left at a goal carries over into the next race.
The marble is Alan's eye: the same sphere of clear glass, drawn by the same engine. Where Alan has an iris, the marble has the Claude spark made three-dimensional: a burst of terracotta strands out every way from the middle, each one fuller toward its rounded tip. It tumbles inside the glass as the marble rolls.
git clone https://github.com/h1ddenpr0cess20/madness
cd madness
npm install
npm run dev # → http://localhost:5173
No server and no keys: it's a static page. npm run build puts it in dist/,
which runs from any folder or path.
| ←↑↓→ or WASD | Roll. The courses run diagonally across the screen, so hold two at once. |
| Hold the mouse or a finger | Roll toward the pointer. The further it is from the marble, the harder the push. |
| Q E, or drag with the right mouse button | Turn the board round the marble. Dragging up and down tilts it, from a skim across the tiles to nearly straight down. |
| Mouse wheel, or + − | Zoom in and out. |
| Two fingers | Pinch to zoom, twist to turn the board, drag up or down to tilt. |
| C | Put the view back where it started. |
| Gamepad | Left stick or d-pad rolls; right stick turns and tilts; shoulder buttons zoom; A starts, Start pauses. |
| P / Esc | Pause. You can still turn and zoom to look around. |
| M | Sound on or off. |
The controls follow the view: up always rolls the marble up the screen, however the board is turned.
There are eleven races: Practice, Beginner, Intermediate, Crossroads, Twister, Aerial, Silly, Marathon, Gauntlet, Odyssey and Ultimate. Crossroads and Odyssey split along the way: a short way that is narrow, full of holes or under the hammers, or a long way round that is safer but costs you seconds. Marathon and Odyssey are the long ones, back and forth across the biggest boards in the game. Each one adds its own time to whatever you had left. Losing the marble puts it back on the last safe ground it crossed while the clock keeps running, so a fall costs a couple of seconds and nothing more. The title screen lets you start from any race you have reached before, and it keeps your best score.
What's out there:
madness-engine | The Madness Engine, pinned to a commit in package.json: the renderer (WebGPU where the browser has it, WebGL 2 where it doesn't, ?renderer=webgl pins it), the ball physics, the controls, the arcade view, and the glass marble (heroes/marble: Alan's glass with the 3D spark inside it), the haze and the studio the glass reflects. |
src/stage.js, src/audio.js, src/effects.js, src/storage.js | The engine's stage, sound, flying bits and saved slot, with the game's own on top: its lens, its knocks, shattering, fizz and tune, its shards, bubbles and confetti. |
src/course.js | A course is a grid of tiles, each with four corner heights. That one structure gives flat ground, ramps, banks, half-pipes, bowls and bumps, with walls wherever neighbouring tiles differ. It builds both the mesh and the collision triangles. |
src/levels.js | The eleven races, written with flat, slope, chute, bend, bowl, surface and the hazards. |
src/race.js | One race with nothing drawn: the rules for losing the marble, reaching the goal and where it goes back to. The game draws it; the tests drive it. |
| Script | |
|---|---|
npm run dev | Vite dev server |
npm run build | Bundles to dist/ |
npm run preview | build, then serves dist/ |
npm test | node:test: the engine's physics, view and marble as the game uses them, the course builder, the hazards, and an autopilot that has to finish every race well inside its time without losing the marble |
npm run lint | ESLint |
The renderer is three.js-shaped but isn't three.js; see the engine's
src/gfx/LICENSE for what it ports from it.