Start playing with GamePKG.

Inspect the creator and permissions, build the game on your machine, then play through the host’s scoped runtime.

Inspect the source and declared permissions before building. Creators host their packages; GamePKG verifies the packages you choose and builds them in isolation.

Set up the host

Download the Linux or Windows CLI and desktop app, verify its checksum and extract it. Follow the installation instructions to install Rust, the Wasm target, isolation tools and the pinned Slang compiler. Windows uses a matching Linux compiler in WSL 2; follow the Windows setup guide.

./bin/gamepkg-gui

To build the host from source instead, follow the repository build instructions.

In Settings, enter your Slang 2026.19 installation folder. New configurations use GLSL so supported shader games can render in the desktop player. Set your library folder, memory ceiling, sound volume, and update-check interval, then choose Save settings.

Try the signed demos

Enter the demo catalog URL in Library and choose Import .gamepkglist. It adds signed sample packages as Not downloaded. Select a game, approve its creator, then Build and Play. Some packages require player-provided ROM files; review their requirements before playing. Players need no signing key. The portable demo store includes signed packages for offline import.

Follow the package’s controls when playing. Choose Back to library to return. The signed demo manifests include working update URLs.

Inspect, install, build, play

  1. In Library, enter a local .gamepkg path or a creator’s HTTPS download URL. Choose Download / inspect.
  2. Review the verified creator fingerprint, version, permissions, resource limits, and ROM requirement. You do not need to enter a signing key. Confirm the creator before choosing Trust this creator and install.
  3. Choose Build in the game’s row. Compilation runs in an isolated environment. A failed initial build leaves the game unbuilt and displays an error. A failed rebuild preserves the earlier build.
  4. Choose Play when the build succeeds. Use Rebuild after changing build options or shader backend.

A signature proves key ownership and integrity; it does not prove the creator’s real-world identity or guarantee harmless code. Games receive scoped host operations, not general access to your folders or network.

Games that need your ROM

Select a game and add each named ROM file in manifest order using Add ROM file. Games can require up to eight files. Only read-only session snapshots are shared; the host does not fetch ROMs or grant folder access. Changing the package revision, creator or library clears the previous file selections. In the CLI, repeat --rom FILE for each required file.

Add several games

Import a .gamepkglist to add catalog entries without downloading games. Choose a game’s Download / inspect action when ready. Catalog claims remain unverified until its package is checked.

For a .gamepkgstore, choose Inspect .gamepkgstore bundle, review the listed games and creator keys, then approve installation. A store bundle includes its required shared assets. Inspection and cancellation install nothing.

Updates and Tor

Use Check for updates or enable periodic checks in Settings. Checks verify candidate updates while the library is idle; updates require your installation choice and must keep the game’s approved creator key.

For onion URLs, run Tor separately and enter its loopback SOCKS proxy in Settings. DNS resolves through the proxy. Missing Tor connectivity fails the download; it never falls back to a direct connection.

Try a source example

Creators can build a local example into a signed source package. Keep the private key private; players need no key entry.

./target/release/gamepkg keygen -o creator.key
./target/release/gamepkg build examples/minimal \
  -o /tmp/example.gamepkg --key creator.key

Inspect /tmp/example.gamepkg in the desktop library, then follow the install, build, and play steps above. The creator build checks compilation before publishing the package; it does not install it automatically.

Download from a GitHub project

Enter https://github.com/owner/repository to download its latest published stable release. The release must contain exactly one .gamepkg file. A /releases/tag/version link selects a specific release; use a direct asset link when the project hosts multiple packages. GitHub project links also work in game catalogs and signed update URLs. For list or store imports, the app selects one matching .gamepkglist or .gamepkgstore release file. Package signatures, creator approval, and update checks still apply.

Integrity checks and repair

Use Check integrity in Library to verify signed package contents, shared assets and compiled game checksums. Fix / rebuild recompiles verified source. Damaged archives can be restored from the verified local recovery copy. If that copy is missing or damaged, supply a verified replacement original. Player saves and history are preserved.

For missing or damaged shared assets, enter the original local .gamepkgstore path in the package field and choose Repair assets. The host requires the exact signed package before restoring its blobs. The CLI equivalent is gamepkg integrity-fix GAME_ID --store original.gamepkgstore.