EN /HU | Belépés

Phaser

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

Tutorialok


Makefile

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ók

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

Célok

SH
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

VS Code

Másold az example-tasks.json fájlt .vscode/tasks.json néven. Feladatok: Serve (alapértelmezett, Cmd+Shift+B), Build Web, Make build.

Előálló artifactok

Fájl Leírás
dist/web/ Webes csomag (index.html, phaser.min.js, game.js)
phaserdemo-<verzió>.html.zip Webes build

Követelmények

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.


Pipeline

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/woodpecker/platforms/phaser/pipeline.yaml.erb).

A repóhoz három dolog kell:

YAML
# .woodpecker.yaml
platform: phaser
name: phaserdemo   # csak akkor, ha a szoftvernév eltér a repó nevétől
  • metadata.json
  • az application_token Woodpecker-secret: egy WarpEngine ApplicationToken az update + upload jogosultságokkal

A builder image-ek az update szerver ci_platforms konfigurációjából jönnek. A kiszolgált pipeline megtekintése:

SH
curl "https://teletypegames.org/build/config?platform=phaser"

Lépések

Lépés Mit csinál
1. version az engine közös lépése (a WarpEngine 1.7 óta): a verzió a metadata.json-ból; tagnél a verziótagnek egyeznie kell vele; a repó alapágán kívül és egy dev-<ág> tagen dev-<verzió>-<ág>, verzió nélkül dev-<commit>; megírja a .version fájlt
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 csak tagre: POST /build/upload, X-Update-Secret fejléccel
4. publish csak tagre: POST /build/publish?platform=phaser
5. tag az engine közös lépése (a WarpEngine 1.9 óta), csak push után: a forrás új verziója megkapja a v<verzió> tagjét, és annak pipeline-ja futtatja a csak tagre jelölt lépéseket; egy már tagelt verzió nem ad ki semmit; egy dev build az ág dev-<ág> tagjét a commitra helyezi, így mindig a legfrissebb dev build van kiadva. Lásd: Verziók és kiadások a WarpEngine oldalon

A verzió emelése maga a kiadás: a push buildel és tagel, a tag pipeline-ja tölt fel és publikál (WarpEngine 1.9). Egy push, amely nem emeli a verziót, csak buildel.

Demóprojekt

phaser-demo — animált „TELETYPE GAMES" hullámszöveg Phaser 3.90-en, ugyanaz a demó, mint az ebitengine-demo.