OhMyGame
OhMyGame is the open-source studio for making games with AI. Design, build, playtest, and publish games in one app, with your own model keys.
A Marble Madness-style 3D racer: roll a glass marble with the Claude spark inside it down isometric courses against the clock.
GamesJavaScript · CSSGitHub @h1ddenpr0cess20OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
3d marble game
Translation pending
Taken from the repository README
Loading the full README.
Read the full 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.