JavaScript frameworks

Phaser, PixiJS, Three.js, Babylon.js and custom JavaScript games use Vapour's generic static web-export path. Set engine = "other". This is not a claim of a dedicated Vapour adapter or a tested engine-specific build service.

Shared build workflow

From your existing game project, use its pinned package manager and lockfile. For an npm project whose scripts define a production build:

npm ci
npm run build

Point build.dir at the actual static output, commonly dist:

[project]
title = "My Browser Game"
slug = "my-browser-game"
engine = "other"
version = "0.1.0"

[build]
dir = "dist"

If you use Vite, configure a relative asset base for the game subpath:

import { defineConfig } from "vite";
export default defineConfig({ base: "./" });

Other bundlers have different public-path settings. Inspect their output rather than assuming that every npm run build command produces dist/index.html. Publish only the generated static files, not node_modules, the dev server, or your source tree.

vapour publish --dry-run
vapour publish

Publishing uses the source-preview CLI.

Phaser

Include all assets referenced by your scenes and preload code. Check image, atlas, tilemap, font and audio paths under the hosted /play/<slug>/ prefix. Test pointer/keyboard focus and audio startup after a user gesture inside the iframe. Vapour does not infer a Phaser memory export; JS-only games can leave Wasm memory unsupported.

PixiJS

PixiJS provides rendering, not a complete publishing package. Bundle your game logic, renderer setup and asset manifests together. Confirm that texture/font loading uses the built asset locations. Do not depend on a local dev-server URL embedded in an asset manifest.

Three.js

Include models, textures and any loaders/decoder assets your application uses. For example, a project using compressed geometry or texture decoding must make its decoder resources reachable with the expected paths and MIME/worker rules. Check feature compatibility in the target browser; a successfully uploaded ZIP does not prove that a required GPU capability exists.

Babylon.js

Include the generated scene assets and optional decoder/worker resources used by your chosen packages. Test the actual WebGL/WebGPU path and any fallback your application provides. The telemetry rAF number is browser cadence, not a Babylon engine GPU timing query.

Profiling these games

Use the same authorized iframe integration. Do not patch a framework's renderer or replace its render loop just to measure frame cadence. Memory/function data is feature-detected; absent Wasm memory is normal for JS-only games. CSP, cross-origin assets and worker/isolation rules must be verified for the exported game, not assumed from the framework's name.

results matching ""

    No results matching ""