Loading works…
GameTemplate
A starter template that pre-wires the infrastructure every new mobile game repeats: ads, purchases, i18n, deep links, haptics. Copying it and running the init script gets the skeleton up, though native identifiers and store assets still need finishing by hand.
Overview
A starter template that pre-wires the infrastructure every new mobile game repeats. Ads, in-app purchases, i18n, deep links, haptics, storage and sharing, all the parts unrelated to the game itself that had to be rebuilt each time, are built once here. A new project starts as copy, initialize, then implement the game logic.
What's included
Monetization is wired up with AdMob (banner, interstitial, rewarded) and RevenueCat in-app purchases, including a remove-ads modal.
Platform integration is a Capacitor-based Android/iOS bridge covering deep links, haptics, status bar, device info, share and preferences.
There are five screens with a router: home, FTUE (first-run tutorial), game, result and settings. The i18n key structure and locale loading are in place too.
The init script init-project.mjs replaces app name, package id and deep-link scheme placeholders in one pass.
Usage
Copy the template into a new folder and run node tools/init-project.mjs --name … --package … --scheme … to substitute the placeholders. From there only core/engine.ts (game logic) and render/render.ts (rendering) need implementing.
Stack
Vite, TypeScript and Capacitor 6, with Vitest for unit tests and Playwright for E2E.
No screenshots on this entry. In template state the screens correctly show
TEMPLATE_APP_NAMEandTODOplaceholders, and the real screens live in the individual games forked from this template.