Install
This page sets up the repository on your computer. Each step is one command, so a coding agent can run them for you. When you finish, connect your agent.
-
Check that you have the following:
- Node 24.2 or later. Run
node --versionto see yours. - pnpm 11.9.0. To install it, run
npm install -g corepack, thencorepack enable. Corepack then runs the pnpm version the repository names. - On Windows, Developer Mode turned on, because the repository holds symbolic links.
- Node 24.2 or later. Run
-
Clone the repository and install its packages:
Terminal window git clone https://github.com/daniel-zarinski/game-platformcd game-platformpnpm installOn Windows, clone with symbolic links turned on instead:
Terminal window git clone -c core.symlinks=true https://github.com/daniel-zarinski/game-platform -
Build the MCP server, which your agent runs to build and test games:
Terminal window pnpm nx build @daniel-zarinski/mcp -
Install Chromium once. The playtest tools run your game in it, with no window:
Terminal window pnpm exec playwright install chromium
Install the packages from GitHub Packages
Section titled “Install the packages from GitHub Packages”A game inside the repository, under games/, needs no more setup. A game in its own folder installs @daniel-zarinski/engine and the other packages from GitHub Packages, because they are not on npm. Only accounts with access to the private repository can install them.
To make a game outside the repository, put a GitHub token with the read:packages scope in your ~/.npmrc once:
//npm.pkg.github.com/:_authToken=<token>To add the engine to a project you already have, point the scope at GitHub Packages in an .npmrc beside package.json, then install the engine and its peers. A project that the CLI’s create command writes carries that .npmrc already.
@daniel-zarinski:registry=https://npm.pkg.github.compnpm add @daniel-zarinski/engine react react-dom @react-three/fiber koota zustand threeThe engine’s peers are react, react-dom, React Three Fiber, koota, zustand and three. Your game imports them too, and a second copy of any of them would hold its own context. The engine pins their exact versions, and pnpm names any that are missing. The engine brings everything else it needs, including drei, rapier, recast and three-vrm.