Skip to content

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.

  1. Check that you have the following:

    • Node 24.2 or later. Run node --version to see yours.
    • pnpm 11.9.0. To install it, run npm install -g corepack, then corepack enable. Corepack then runs the pnpm version the repository names.
    • On Windows, Developer Mode turned on, because the repository holds symbolic links.
  2. Clone the repository and install its packages:

    Terminal window
    git clone https://github.com/daniel-zarinski/game-platform
    cd game-platform
    pnpm install

    On Windows, clone with symbolic links turned on instead:

    Terminal window
    git clone -c core.symlinks=true https://github.com/daniel-zarinski/game-platform
  3. Build the MCP server, which your agent runs to build and test games:

    Terminal window
    pnpm nx build @daniel-zarinski/mcp
  4. Install Chromium once. The playtest tools run your game in it, with no window:

    Terminal window
    pnpm exec playwright install chromium

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.com
Terminal window
pnpm add @daniel-zarinski/engine react react-dom @react-three/fiber koota zustand three

The 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.