A Phaser nyílt forráskódú HTML5 keretrendszer 2D játékokhoz, JavaScriptben/TypeScriptben. WebGL- és Canvas-renderelés, arcade és matter.js fizika, tweenek, részecskék, rengeteg plugin. Egy Phaser-játék egyszerű weboldal — nincs mit fordítani —, így a pipeline-ja a legegyszerűbb az összes motorunk közül.
Weboldal: https://phaser.io
Nincs bundler, nincs node_modules. A rögzített verziójú phaser.min.js és a HTML-váz buildidőben töltődik le, a src/*.js fájlokat pedig fájlnév szerinti sorrendben fűzi össze egy game.js-be — ha számít a betöltési sorrend, tegyél a fájlnevek elé számot. A repó csak a játékkódot tartalmazza.
A sablonok a phaser-tools repóban vannak: másold az example-makefile.make fájlt Makefile néven, és állítsd be a PROJECT és PHASER_VERSION értékeket.
| Változó | Leírás | Alapérték |
|---|---|---|
PROJECT |
A kimeneti fájlnevekben használt név | phaserdemo |
PHASER_VERSION |
A Phaser kiadás a jsDelivrről | 3.90.0 |
SRC_DIR |
A játék forrásai | src |
DIST_DIR |
Exportált artifactok | dist |
WEB_DIR |
Az összeállított webes csomag | dist/web |
VERSION_FILE |
Verziófájl a CI-hez | .version |
INDEX_HTML_URL |
HTML-váz | phaser-tools web/index.html |
make build # node --check a src/ minden fájljára
make web # phaser.min.js + index.html letöltése, a src/*.js összefűzése
make serve # a webes csomag a http://localhost:8000 címen (python3 http.server)
make export VERSION=1.0.0 # a dist/web/ phaserdemo-1.0.0.html.zip néven becsomagolva
make watch # újraellenőrzés a src/ alatti változásra (fswatch kell hozzá)
make clean # a dist/ törlése
Másold az example-tasks.json fájlt .vscode/tasks.json néven. Feladatok: Serve (alapértelmezett, Cmd+Shift+B), Build Web, Make build.
| Fájl | Leírás |
|---|---|
dist/web/ |
Webes csomag (index.html, phaser.min.js, game.js) |
phaserdemo-<verzió>.html.zip |
Webes build |
Csak helyben: make, git, jq, zip, curl, node, a make serve-höz python3, watch módhoz pedig fswatch. A CI-image-ek hozzák a saját eszközeiket.
A pipeline nincs benne a játékrepóban. A Woodpecker az update szervertől kéri el, a WarpEngine pedig a teljes konfigurációt a /build/config végponton szolgálja ki (sablon: lib/warp_engine/ci_templates/phaser.yaml.erb).
A repóhoz három dolog kell:
# .woodpecker.yaml
platform: phaser
name: phaserdemo # csak akkor, ha a szoftvernév eltér a repó nevétől
metadata.jsonapplication_token Woodpecker-secret: egy WarpEngine ApplicationToken az update + upload jogosultságokkalA builder image-ek az update szerver ci_platforms konfigurációjából jönnek. A kiszolgált pipeline megtekintése:
curl "https://teletypegames.org/build/config?platform=phaser"
| Lépés | Mit csinál |
|---|---|
| 1. version | alpine-on: verzió a metadata.json-ból, különben gitből |
| 2. build | a phaser-builder image-ben (Node + make/zip/curl, a phaser-tools builder.Dockerfile fájljából): szintaxisellenőrzés, a runtime és a váz letöltése, összeállítás és becsomagolás |
| 3. upload | POST /build/upload, X-Update-Secret fejléccel |
| 4. publish | POST /build/publish?platform=phaser |
phaser-demo — animált „TELETYPE GAMES" hullámszöveg Phaser 3.90-en, ugyanaz a demó, mint az ebitengine-demo.