Lilita One lacks most of Latin Extended-A (Turkish s-cedilla, g-breve, dotted I ...), so Turkish titles were drawn with a silent browser fallback while shots check passed. shots fonts now reads the cmap of every face (pure TS, TTF/OTF/WOFF/WOFF2), adds a Noto fallback per missing character or fails with language + characters; render measures which face drew each character (CDP probes) and records it in report.json; check errors on fallbacks the config did not choose (shots.fonts.fallback) and on system-font glyphs. Default game title font: Paytone One. |
||
|---|---|---|
| .. | ||
| store | ||
| web | ||
| .gitignore | ||
| README.md | ||
| serve.ts | ||
| storebound.config.ts | ||
Prism Puddle (demo game)
A tiny fictional game made only to show storebound's screenshot and video pipeline end to end. Drops fall into
puddles; tap a puddle to switch its color so the next drop matches. Everything is drawn on a canvas (no image files),
and the game has the switches a real game needs for store captures: lang, seed, t (freeze at a moment),
scene and auto=1 (hands-free play for video clips). The ids in storebound.config.ts are placeholders; nothing
here talks to a store.
From this folder (needs Bun, ffmpeg, and Playwright's Chromium or Google Chrome):
bun serve.ts & # the game on http://127.0.0.1:8740
bun ../../cli/index.ts shots capture # raw frames: 4 languages x phone + tablet
bun ../../cli/index.ts shots fonts # title / body fonts + Noto subsets for Japanese and Arabic
bun ../../cli/index.ts shots render --variants # every store size, base + variant b (about 7 minutes)
bun ../../cli/index.ts shots record # gameplay clips (autoplay) for the previews
bun ../../cli/index.ts shots video # App Store preview + YouTube promo per language
bun ../../cli/index.ts shots check --variants # store rules, exit 1 on errors
bun ../../cli/index.ts shots gallery # store/renders/index.html, open it in a browser
bun ../../cli/index.ts icons # every icon from store/icon (artwork drawn in bg.svg + fg.svg)
Everything it writes (store/shots/frames, store/renders, store/video, store/icons, .storebound) is gitignored.
bun ../../cli/index.ts scan (offline rejection-risk scan) reports two findings, accepted on purpose in scan.ignore
of the config: the com.example package name is the repo placeholder and is never uploaded (a real game picks its
own), and there is no Play developer account type to set (a real game sets play.accountType). The game has no native project here, so the code checks (ATT, purpose strings, privacy manifest) have nothing
to read.