OhMyGame
OhMyGame은 AI로 게임을 만들 수 있는 오픈소스 스튜디오로, 디자인·구축·플레이테스트·출판을 하나의 앱에서 모델 키와 함께 수행합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Open index.html in Chrome/Edge/Safari (double-click works; no server needed).
js/answer.js → diagnose): wrong direction, didn't move, counted the starting square, skipped 0, close, far off, or past ±50. The 2nd wrong answer also lights up the path; the 3rd switches to counting together (tap to hop, one tap per square).index.html – markup for all screenscss/style.css – look + static screen layoutsjs/layout.js – single source of truth for every HUD rectangle (landscape 1920×1080 and portrait 1080×1920 stages)js/board.js – board numbering, ladder/snake placement (LADDERS, SNAKES), canvas drawing, layout validationjs/game.js – tokens and the turn state machinejs/ui.js – 3D dice, Roll/Hop button and nudges, hop bubble, banner, cards, toastjs/cinema.js – camera zoom/follow during movesjs/fx.js – splashes, sand puffs, bubbles, sparkles, confetti, ambient clouds/birds/fishjs/audio.js – sound hooks (placeholder synth now; add files to audio/ and list them in AVAILABLE)js/asset-sizes.js – auto-generated logical (original) sizes of every shipped imageassets/ – the shipped art as WebP: only the images the game uses, downscaled to about 2× their largest on-screen size_source-art/ (git-ignored, local only) – full-resolution PNG/JPG originals, including unused kit parts.
After changing art there, run node tools/optimize-assets.js (needs Playwright). The shipped list is tools/used-assets.json?play – skip the start screen and tutorial?tutorial – jump straight into the live tutorial?fast=4 – speed everything up 4×?debug – show every token anchor and HUD rectangleISL.game.force([1,6],[-1,3]) queues dice results; ISL.board.validate() checks the board layout.After the dice land, the camera (js/cinema.js) zooms in so the character fills the view, and follows every hop, snake slide and ladder climb.
Each hop plays a note that climbs for + moves and falls for − moves, and a running count (+1, +2, …) pops over the token. With reduce motion turned on, the camera stays still.
The dice are CSS 3D cubes built in js/ui.js from the face art (dice/sign-kit/plus-face, minus-face, dice/digits/digit-01…06): four plus faces and two minus faces on the sign die, and 1–6 on the number die (opposite faces add to 7). A roll tumbles each cube to its result face. To restyle them, replace those images.
Every screen change runs under the wave wipe (transition() in js/main.js): Play, How to play, Skip tutorial, the end of the tutorial, Play again, Restart, and Home.
The swap happens while the wave fully covers the stage, so resets never show, and modal fades are switched off under the wave. Extra clicks are ignored mid-transition, and Pause, Help and Esc wait until the wave has passed.
Every load opens with a ~7 s intro: you rise from the deep sea, a ladder bursts out of the water, snakes appear, the title slams in, both explorers land on the jetty, and an integer ticker counts −50 → +50. Then an SVG wave sweeps you to the start screen. Skip › (or ?nointro) jumps past it. Code: js/intro.js.
The first time you press Play, a coach walks you through four real scripted turns (+4, crossing zero with −6, a ladder, a snake). How to play on the start screen replays it. You can also replay it from the ? help panel. Use Skip tutorial to jump straight into a game.
js/voice-lines.js: numbers −56…+56 spoken as "negative three" / "positive four", the gameplay prompts, and the tutorial script.audio/voice/*.ogg, Opus 32 kbps) were made with gemini-2.5-pro-preview-tts, voice Puck, directed as a friendly explorer guide (numbers and the words "plus" and "equals" are read evenly so they splice into equations).GEMINI_API_KEY=... node tools/generate-voice.js (--force remakes everything, --only id,id remakes chosen lines, --voice and --model override). It needs ffmpeg. Keep the key in the environment and never commit it.gemini-3.8-flash-tts reads the direction (and [tags]) aloud, so it isn't suitable.tools/voice-generator.html in Chrome or Edge, paste your key, press Choose the game folder & generate, then pick this game folder.audio/sfx/*.ogg): generated with ElevenLabs Sound Effects (eleven_text_to_sound_v2). Each was picked from 2–4 variations, trimmed, level-matched and encoded as Ogg Opus 64 kbps. intro_* files are the intro's cue sheet (deep-sea bed, bubbles, surface splash, water burst, ladder creak, hiss, whoosh, title boom, shimmer, dice pops, dock landings, +50 bell, the wave); the rest are gameplay (dice, dice landing, hop boing, sand step, water plip, splash, camera whoosh, nudge, ladder climb, snake slide, turn, win, lose, click).audio/music/): made with Gemini Lyria 3. intro.ogg is a 12 s cue whose big hit is lined up with the title slam (2.75 s into the intro); loop.ogg is a calm 3-minute island loop, crossfaded end-to-start so it loops seamlessly. The loop starts on the start screen and plays through the game.js/audio.js): effects and music run on separate Web Audio buses; big effects and the voiceover briefly lower the music. Pause suspends all audio. The pause menu has Sound (everything) and Music (music only, remembered) switches.file:// it falls back to <audio> elements. A missing file falls back to a small synth sound.js/intro.js (search for "sound design"); per-event volumes are EVENTS in js/audio.js.