@joshuafolkken/game-kit is the reusable foundation extracted from Mnemecha. Instead of letting a one-off game rot in a single repository, I distilled the parts worth keeping into a package that bootstraps the next game in minutes.
The Challenge
Mnemecha contained dozens of small but hard-won solutions: a heads-up display, settings toggles, a splash screen, input controls and a retro rendering pipeline. Copying those by hand into a new project would be slow and error-prone, and improvements made in one game would never flow back to the others.
The Approach
I separated the genuinely reusable building blocks from the game-specific logic and packaged the shared Svelte and Threlte components together. A CRT/RETRO rendering pipeline with a VGA 3-3-2 palette and Bayer dithering gives every game a consistent look. The jgame CLI then installs and syncs the kit into a fresh project, keeping each game up to date with the latest fixes.
Tech Choices
TypeScript and Node.js power the CLI, while SvelteKit, Three.js and Threlte provide the runtime building blocks. pnpm manages the workspace, and Cloudflare Workers serve the demos. Claude Code helped automate the repetitive extraction and documentation work.
What I Learned
Extracting a kit clarified which abstractions actually earned their place — anything that resisted reuse was usually too coupled to a single game. Designing the sync command taught me to treat generated projects as living things that need ongoing updates, not snapshots frozen at creation time.