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.
Play a multiplayer maze crawler where you find keys and exit
AI summary · website content
GamesJavaScript · RustGitHub @kerminator-devOnlineOwner 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
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗A retro 3D maze crawler that runs in your browser. Find the key or pick the gate lock, reach the exit, and trade your loot on the way down.
There's no build step and nothing to install. Clone the repository and open index.html in a browser:
git clone https://github.com/kerminator-dev/Labyrinth.git
cd Labyrinth
open index.html # or just double-click it
| Key | Action |
|---|---|
| W A S D | move |
| Shift | run |
| mouse | look |
| E | open, search, pick a lock or the gate, pray |
| F | throw a coin: shadows nearby go to see what clinked |
| left mouse button | playing together: your frog points where you look, for the others to see |
| M | map (once you've found it): held low and tilted, so you can walk and read; press again to hold it up flat, once more to put it away |
| Esc | menu: continue, a new maze for this level, a new game, settings |
When lockpicking, move the mouse to position the pick, then hold W, E, Space or the mouse button to turn the lock. Press Q to back off.
The game runs only while it has the mouse: if the browser lets it go, everything stands still until you click the view. A new level is built behind a loading screen.
One of you runs the co-op server, everyone on the same network plays from a browser:
npm run build-server # once (needs Rust): dist/DungeonMasterServer, under 2 MB, the game is inside it
dist/DungeonMasterServer (double-click it, or run it in a terminal). It needs nothing installed. It opens the game in your browser and shows two addresses: one for this computer and one for the others, like http://192.168.1.20:7777. If the macOS firewall is on, it asks whether the server may accept incoming connections: allow it, or the others can't join.Not on one network: a tunnel such as ngrok (ngrok http 7777, the port the server shows) gives an https://… link; the others open it (past ngrok's warning page: Visit Site) and join as above. Every browser builds the very same level (Safari, Chrome and the rest), and everyone must have the same version of the game: a page from an older server is not let in.
The rules of a run together:
If a connection drops, the game joins again by itself, and a page that reloads comes back as the same player with its purse. The leader can end the run from the menu, sending everyone back to the lobby.
The server file can be copied to another Mac of the same kind (Apple silicon; --universal below makes one for Intel Macs too) and started there the same way. macOS asks to confirm a program from elsewhere the first time: right-click it and pick Open.
Server options: --port N (7777, or the next free one), --no-open (do not open the browser), --dir D (serve the game from folder D instead of the copy inside it, for working on the game: npm run server). The game is baked in when the server is built, so build it again after changing the game. node server/build.js --universal makes one file for both Apple silicon and Intel Macs.
The game is built to stay fast on modest hardware:
Settings has draw distance, pixel size, FOV, an FPS limit and a toggle for post effects.
Plain JavaScript and three.js. There's no bundler, every file is a plain <script>, and they load in order:
| File | What it does |
|---|---|
js/00-util.js | random numbers, Perlin noise, settings |
js/01-textures.js | procedural canvas textures |
js/02-themes.js | themes and weather |
js/03-maze.js | maze generation, collision grid |
js/04-walls.js | voxel walls, vaults, niches, burial alcoves |
js/05-world.js | floors, sky, terrain, lights, portals |
js/05b-props.js | props, remains, glowing crystals and mushrooms |
js/05c-audio.js | synthesised sound and music |
js/05d-gameplay.js | chests, key and gate, lockpicking, torch and Candlelight, shadows |
js/05e-creatures.js | pixel-art kit for the HUD icons and the tree sprites |
js/05k-mobs.js | low-poly mobs: the lantern wraith, the cave spider, the lost soul and the watcher |
js/05m-hero.js | the players' frog (the model, built once, a skeleton for each player, and its walk and run), the cloak in each player's colour, the light they carry |
js/05n-net.js | playing together: joining, the lobby, the others, the shadows' snapshots, the caught ones' view |
js/05f-ambience.js | banners, roots, light shafts, ground fog, rubble |
js/05g-hud.js | inventory panel |
js/05h-skyline.js | castles, towers, temples and villages on the horizon |
js/05i-beyond.js | the world behind the grates |
js/05l-decor.js | theme details: doorways, painted walls, sand, cistern water, wisps |
js/05j-trader.js | the trader between levels |
js/06-game.js | renderer, movement, culling, menu, loading screen, main loop |
js/07-post.js | bloom, colour grading, vignette |
The tests drive the real game in headless Chromium through Playwright:
npm install
npm test # walk-through, game mechanics, stress test over all themes, memory leaks, playing together
npm run test-server # the co-op server's rules (cargo test)
npm run test-live # the real server with three browsers joining it
npm run shot dungeon # screenshots of a level
npm run thumbs # the map pictures in the menu (img/maps)
server/| the co-op server, in Rust with no runtime to install: it serves the game and runs the room (who plays, which level, what is opened, who is through) |