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.
Live logic-game tournaments for IEDC events. Works fully offline on the event Wi-Fi.
GamesTypeScript · JavaScriptGitHub @ajayda24OnlineOwner 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 ↗Live, offline, tournament-style logic games for college events.
The host taps Start and every connected phone gets the same puzzle at the same moment. Speed and correctness feed a live leaderboard that every device can see, along with a department-vs-department board. It all runs on one laptop's Wi-Fi hotspot with no internet, so nobody can ask an AI for the answer.
| Big screen (projector) | Host console |
|---|---|
Games, all generated from a seed and checked on the server. Each has an easy, medium and hard level.
| Game | What students do | Fairness |
|---|---|---|
| Anagram Blitz | Unscramble 6–8 words from themed packs (Tech, Campus, Food, Science), or from the host's own custom words | Dictionary anagrams also count (notes → stone) |
| Mini Sudoku | 6×6 (easy and medium) or 9×9 (hard), with pencil marks, undo and conflict highlighting | Every puzzle has exactly one solution |
| Word Hunt | Wordle-style: 5 letters, 6 tries, the same word for everyone | Colours are computed on the server, so the word never reaches phones |
| Number Crunch | Reach the target with + − × ÷ by tapping tiles, Countdown style | Every target is guaranteed reachable |
| N-Queen | Classic N-Queens on 6×6 (easy), 8×8 (medium) or 10×10 (hard), with a fixed queen and blocked cells, ✕ notes and clash highlighting | Every board has exactly one completion, so a memorised textbook answer doesn't help |
Scoring:
Formats: Classic (total points) and Knockout (the bottom X% is out after each round and spectates).
Every device sees the leaderboard:
Anti-cheat:
Student ID + PIN:
Monthly leaderboard (/leaderboard):
config/leaderboard/monthly.json: download it from the Monthly tab, commit, push, and Vercel rebuilds (how). No Student IDs are published.Host console:
Robustness:
Design: a "back-bench notebook" look:
Vibe Hackathon (team competition) at /competitions/vibecoding/: teams of 2–4 build a real one-page site on their phones by asking an AI (Google Gemini), tile by tile, with hidden automated checks; then they solve a sliding puzzle, publish their site on the event network and handle a "client's change request". Save Points, Go Back, Project Notes, hints, a live projector wall, voting and awards. Friendly words at first; the real ones (prompt, commit, revert, deploy) are revealed at the end. See docs/competitions/ and the event-day runbook.
All wording (titles, descriptions, buttons, funny messages), the department list, scoring numbers, timings and word lists live in config/. Edit a file there and every screen updates. No app code to touch. config/README.md has a "change X → edit file Y" table.
👉 Read docs/EVENT_DAY.md. It's the checklist for hosts.
Short version (Windows laptop):
pnpm pack:arena on a dev machine, then copy dist/brain-arena/ to the laptop. The laptop only needs Node.js 20+.setup-hotspot.ps1. It raises the Mobile Hotspot limit to 128 (WifiMaxPeers), keeps the hotspot awake, opens the firewall and sets up the loopback adapter, so the hotspot has no internet.start-arena.bat. It turns on the hotspot and starts the server.http://192.168.137.1:4000 (the address never changes, so print the QR).http://localhost:4000/host/ (the PIN is in the terminal). Projector: http://localhost:4000/screen/.For more phones than the laptop's Wi-Fi card can handle, you can add Wi-Fi sharing repeater phones (same URL) or USB Wi-Fi dongles (one QR per network). The guide covers both.
The web app is a static export, so Vercel can host the online half: the landing page, solo practice and the installable PWA. Live events still run on the laptop. Vercel can't host the arena server, because it needs a long-running WebSocket process.
ajayda24/iedc-hub-tournaments.apps/web and leave "Include files outside the root directory" on. Everything else comes from apps/web/vercel.json: a pnpm workspace install, next build --webpack and output out/, deployed as a plain static site (framework "Other").routes-manifest.json couldn't be found, set Settings → Build & Deployment → Framework Preset to Other and redeploy.main redeploys.pnpm install
pnpm dev # arena on :4000 + Next dev server on :3000
# open http://localhost:3000/host/ (PIN printed by the arena), /screen/, /play/
pnpm check # typecheck + unit tests: run before every push
pnpm test # engine + arena unit tests (Vitest)
pnpm build # static web export (apps/web/out, precompressed) + arena bundle
pnpm start # arena serving the built app on :4000
pnpm test:e2e # Playwright: real arena + browsers (needs `pnpm build` first)
pnpm bots --n 80 # 80 simulated students who actually solve puzzles (dry run / load test)
pnpm pack:arena # dist/brain-arena: single-folder build for the event laptop
pnpm vibecoding:bots # Vibe Hackathon load test: 15 simulated teams + a forced restart (mock AI)
pnpm vibecoding:models # which Gemini models your key can use
pnpm vibecoding:quality # can the real models build every tile? (24 beginner prompts)
Measured locally with pnpm bots --n 80 over four rounds:
config/ ✏️ ALL text, settings, word lists and the published leaderboard (edit here, no code)
copy/ words on every screen, one file per screen
leaderboard/ monthly.json, what the website's /leaderboard shows
words/ Word Hunt and Anagram word lists
apps/
web/ 📱 everything on a screen: phones, host console, projector, practice, leaderboard
app/ one folder per URL (/play, /host, /screen, …)
src/screens/ the page screens src/games/ one view per game
src/ui/ shared pieces src/net/ connection to the arena
arena/ 💻 the laptop server: rounds, scoring, PINs, history, crash safety
src/competitions/ team competitions (Vibe Hackathon): AI gateway, check runner, published sites
packages/shared/ 🧩 game engines + rules shared by both: protocol, scoring, monthly board
src/competitions/ the pure rules of each competition (Vibe Hackathon: tiles, checks, scoring, puzzle)
scripts/ 🛠️ build helpers; scripts/event-kit/ holds the .bat/.ps1 files for the laptop
e2e/ ✅ end-to-end tests (a real arena + browser)
docs/ 📖 EVENT_DAY.md (host checklist), ADD_A_GAME.md, screenshots
dist/brain-arena/ 📦 the built event kit (gitignored). Its arena-data/ is the real event data
Each folder has a short README with a file-by-file map: config, apps/web, apps/arena, packages/shared, scripts.
Where does a change go?
| I want to… | Go to |
|---|---|
| Change wording, departments, points, timings | config/ |
| Change how a page looks or behaves | apps/web/src/screens/ (page) or apps/web/src/ui/ (shared piece) |
| Change a game's puzzles or answer checking | packages/shared/src/games/<id>/ |
| Change a game's look on the phone | apps/web/src/games/<Name>View.tsx |
| Change round flow, scoring rules in play, PINs, history | apps/arena/src/ |
| Add a game | docs/ADD_A_GAME.md |
| Change Vibe Hackathon's tiles, scoring, AI models | config/competitions/vibecoding/ (tasks, scoring, models .json) |
| Add a team competition | docs/competitions/ADD_A_COMPETITION.md |
| Change the laptop start/hotspot scripts | scripts/event-kit/ |
Keeping it working: run pnpm check before pushing (GitHub also runs it on every push, see .github/workflows/ci.yml). For bigger changes, also pnpm build and pnpm test:e2e.
http on the LAN, so phones need nothing pre-installed.ws:// from https pages, and service workers need HTTPS.packages/shared/src/games/<id>/ plus a view in apps/web/src/games/. The full checklist is in docs/ADD_A_GAME.md.config/ (see above). Word lists come from the MIT word-list package. Edit config/words/wordhunt-answers.txt or config/words/anagram-packs.source.json, then run pnpm content:build.More games:
Spice:
Platform:
--upstream) for a second laptop,setup-hotspot.ps1 / start-hotspot.ps1 are written for Windows 10/11 and need a quick test on your laptop.