OhMyGame
OhMyGame은 AI로 게임을 만들 수 있는 오픈소스 스튜디오로, 디자인·구축·플레이테스트·출판을 하나의 앱에서 모델 키와 함께 수행합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Emberblood: a top-down open-world action game in the browser. Relight the Wards and face your great x13 grandfather.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A top-down, open-world action game you play in the browser. No install, no downloads.
Play it: https://playemberblood.com
Every summer, on the shortest night of the year, the valley of Embermere hangs out paper lanterns, and nobody remembers why. In Emberhollow they are lit by Ash, who was born with horns, a tail and real fire. All he wants this year is to light three lanterns without setting anything else alight.
Then, in the middle of the festival, the North Gate swings open, and the old puppet show about the dragon on the mountain turns out to be more than a puppet show.
It is the start of a long way from home: over the rooftops of a city where every clock has stopped, into a winter that came in June, across the sea, and up a mountain that was not there the day before. And the whole time, back home, his mom keeps a light on.
| Keyboard and mouse | |
|---|---|
| WASD / arrows | Move (Ash faces the way he walks) |
| Shift | Sprint |
| Left click / J / Enter | Attack with the current weapon (it locks onto a foe in front of you). With no foe near, it talks, opens and uses instead |
| Right click / K | Fire breath (also lights lanterns) |
| Space | Dodge roll |
| C | Jump (once Ash learns how) |
| X / Z / 1 to 6 | Next weapon / previous weapon / pick a weapon |
| G | Call your companion (twice: wait here) |
| U | Skills |
| Q | Dragon Roar |
| R | Healing draught |
| E | Talk, open, rest |
| M / Tab | Map and fast travel |
| I | Quest journal |
| T | Switch which tracked quest the compass follows |
| N | Mute or unmute |
| Esc / P | Pause and settings |
| L | In a conversation: open the Log |
Mouse aiming (Ash faces the pointer) is an option in Settings: Aim with the mouse. Settings also has Handed: Left, which mirrors the touch buttons, switches the controller to southpaw, and shows a keyboard set for a mouse in the left hand (arrow keys move; Enter attacks or talks, Right Shift sprints, Right Ctrl rolls, / jumps, ' breathes fire, . drinks, ; roars, [ and ] switch weapons). Tips can be closed with their X or turned off in Settings.
| Controller (PlayStation, Xbox or Nintendo) | |
|---|---|
| Left stick | Move (push all the way to sprint, click to toggle sprint) |
| Right stick | Aim |
| Bottom button (A, ✕, B) | Jump (once Ash learns how) |
| Right button (B, ○, A) | Roll |
| Left button (X, □, Y) | Attack |
| Top button (Y, △, X) | Talk, open, use |
| RT / R2 and LT / L2 | Attack and fire breath |
| RB / R1 and LB / L1 | Next and previous weapon (both together: Roar) |
| D-pad | Up: drink. Down: call your companion. Left and right: switch the followed quest |
| Start / Menu | Pause (hold: Skills) |
| View / Select | Map (hold: Journal) |
Menus, dialogue and the skill tree all work with a controller too. On an Xbox the game runs in the Edge browser.
Touch controls appear automatically on phones and tablets. In Settings you can pick a two-thumb layout (stick on the left, a thumb arc of buttons on the right) or a one-handed layout for either hand, turn on auto-attack, and resize the buttons.
Saves always live in your browser. If you make an account, your story also syncs to the cloud so you can pick it up on another device, and your Arena best goes on the leaderboard.
The backend is a tiny Cloudflare Worker with a D1 (SQLite) database. It fits in Cloudflare's free tier and, unlike some free databases, it doesn't pause or get deleted when nobody plays for a while. Passwords are hashed with PBKDF2-SHA256, sessions are random tokens stored only as hashes, and there's no email or personal info.
game/src/ game code, split into modules (concatenated in order by build.mjs)
game/story/ the story as data: chapters, side quests, talk, clues and the world registry, act by act
game/*.html page markup and styles
tools/ the story checker, the story map, the world check and the old-text extractor
build.mjs builds docs/index.html (and runs the story checker first)
docs/ the published site (GitHub Pages serves this folder)
worker/ Cloudflare Worker API + D1 schema
node build.mjs # uses game/config.json for the API address
API_BASE=http://127.0.0.1:8787 node build.mjs # point at a local worker
Then open docs/index.html, or serve the folder (npx serve docs).
The story lives in game/story/ as plain data that one engine (game/src/e10_story.js) runs. Every build checks it first and stops if the story and the world disagree: a place the story mentions that isn't on the map, a key that opens nothing, a step that can't be reached with the powers you have by then, a scene that runs too long. The report goes to dist/check.md.
node tools/check.mjs # the story check on its own (--act 2 for one act)
node tools/storymap.mjs # dist/storymap.html: every act as a graph of chapters, clues and choices
python3 tools/worldcheck.py # boots the game headless and checks every place and gate is really there
cd worker
npm install
npx wrangler login
npx wrangler d1 create emberblood # copy the database_id into wrangler.toml
npx wrangler d1 execute emberblood --remote --file=schema.sql
npx wrangler deploy
A database made from an older schema.sql needs the migrations in worker/migrations/ once, in order (npx wrangler d1 execute emberblood --remote --file=migrations/0001_admin.sql).
Put the *.workers.dev URL it prints into game/config.json, rebuild, and push.
docs/admin.html (on the live site at /emberblood/admin.html) is for the accounts named in ADMIN_USERS in wrangler.toml. It lists every account with its journeys, last save and Arena scores, and lets an admin view, download or replace a save (the old one is kept as a backup, and backups can be restored), set a new password, pause or turn an account back on, delete an account, and "view as" any account. A view session is look-only: the server accepts its saves and scores but never writes them, it never renews, and it ends after 12 hours. Use it in a private window, because the game in that window loads the viewed account's journeys. The live game uses https://emberblood-api.muellercodes.workers.dev. Allowed browser origins are set by ALLOWED_ORIGINS in wrangler.toml (localhost is always allowed for testing).
The story and the art of Emberblood (the world, characters, writing, and every visual design, including the code that draws it) are © 2026 Andrew Mueller, all rights reserved. The rest of the code (the engine, build script, tools and backend) is MIT licensed. See LICENSE for the details.