OhMyGame
OhMyGame은 AI로 게임을 만들 수 있는 오픈소스 스튜디오로, 디자인·구축·플레이테스트·출판을 하나의 앱에서 모델 키와 함께 수행합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Daily football puzzle games on a player database built from Wikidata and Wikipedia.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A daily football puzzle drawn as a sticker album. Two or more famous players are on the page, with gaps between them. Name the missing players so that each neighbouring pair played for the same club, then seal the page and find out whether your chain holds.
Play it: https://ballknowledge-games.vercel.app
/collection, and the key to the grades is one tap away from every page.The same player database runs two party games for playing in a group with one phone:
/rondo): pass the ball to anyone who shared a club with the player on it. Each club can be used once per ball; run out of links and you lose the ball./slugger): football played as baseball. The pitcher names a club and the batter names someone who played for it. Big clubs are singles; small clubs are home runs.flowchart LR
WD[Wikidata SPARQL] --> P[Pipeline scripts]
WP[English Wikipedia infoboxes] --> P
P --> POOL[(data/pool.json<br/>11,741 players)]
POOL --> GEN[Daily board generator]
GEN --> BOARDS[(content/chains)]
POOL --> S[Next.js server]
BOARDS --> S
S -- board without its answer --> B[Browser]
B -- the filled chain --> SEAL["/api/seal judges it"]
SEAL -- result and reveal --> B
tests/pipeline/traps.test.ts, and the example queries in docs/superpowers/specs/queries/ prove each one.src/pipeline/overrides.ts./api/seal, which validates it and judges every link on the server.scripts/build-completion.ts builds the dailies from famous givens and is seeded, so a rerun writes the same boards. A test re-checks every board: on each plate, the intended answer must be a well-known fact (fame 50 or above) and the next-best candidate must be much less so (under 35). A board that stops meeting that rule, for example after the data changes, fails the test suite./credits lists the author and licence of every one.Next.js 15 (App Router) and React 19, TypeScript throughout, Vitest (1,363 tests), and tsx scripts for the data pipeline. There is no database: the pool is a committed JSON snapshot read once by the server. Drag and drop uses dnd-kit.
Tested on Node.js 24 (Next.js 15 needs 18.18 or later).
npm install
npm run dev # http://localhost:3000
npm test
npm run typecheck
The data is committed, so the app runs without fetching anything. The pipeline scripts (npm run fetch:pool, build:pool, fetch:careers, merge:careers, fetch:portraits, fetch:credits) rebuild it from the live sources.
| Path | What |
|---|---|
app/ | Routes: the album (/, /play/[id]), Rondo, Slugger, the API routes, and /credits |
components/ | The board, stickers, search sheet, reveal and Slugger UI |
games/rondo/ | Rondo, kept self-contained |
src/lib/chain/ | The rules: links, fields, results, the share line |
src/server/ | Loading the pool once, stripping answers, judging |
scripts/ | Data pipeline and board generator |
data/, content/ | The player pool and the boards |
tests/ | Unit tests, data-trap tests, and a test that holds every shipped board to its rules |
Code is © 2026 Jonno Millar, all rights reserved: public to read, not to reuse (see LICENSE). The data belongs to its sources: Wikidata (CC0), English Wikipedia (CC BY-SA 4.0), and the photographers and clubs listed on the app's /credits page. This is an unofficial fan project, not affiliated with any club, league or player.