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_templates/phaser.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 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

Demóprojekt

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