Az Ebitengine (korábban Ebiten) gyors és hordozható 2D játékmotor Góhoz.
Weboldal: https://ebitengine.org Ezzel a motorral készült projektek: Rabbit Roller
A Go natív binárisra vagy WebAssemblyre fordít. A webes buildhez három fájl kell: game.wasm, wasm_exec.js és index.html.
| Változó | Leírás | Alapérték |
|---|---|---|
PROJECT |
A kimeneti fájlnevekben használt név | ebitenginedemo |
BIN_DIR |
Natív futtatható állomány | bin |
DIST_DIR |
WASM és csomagolt artifactok | dist |
WASM_NAME |
A WebAssembly fájl neve | game.wasm |
VERSION_FILE |
Verziófájl a CI-hez | .version |
INDEX_HTML_URL |
index.html sablon | ebitengine-tools repó |
make build # go build -> bin/<PROJECT> az aktuális OS-re
make wasm # dist/game.wasm + wasm_exec.js
make export VERSION=1.0.0 # wasm + index.html ebitenginedemo-1.0.0.html.zip néven becsomagolva
make watch # a natív bináris újraépítése a . alatti változásra (fswatch kell hozzá)
make clean # a bin/ és a dist/ törlése
Másold az example-tasks.json fájlt .vscode/tasks.json néven, és cseréld az ebitenginedemo nevet a saját PROJECT értékedre. Feladatok: Run (alapértelmezett, Cmd+Shift+B), Build & Run, Build WASM, Make build.
| Fájl | Leírás |
|---|---|
bin/ebitenginedemo |
Natív futtatható állomány az aktuális OS-re |
dist/game.wasm |
WebAssembly bináris |
dist/wasm_exec.js |
A Go WASM-futtatókörnyezetének segédfájlja |
ebitenginedemo-<verzió>.html.zip |
Webes build (index.html + WASM + runtime) |
Csak helyben: make, go 1.11+, curl, zip, 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/ebitengine.yaml.erb).
A repóhoz három dolog kell:
# .woodpecker.yaml
platform: ebitengine
metadata.jsonapplication_token Woodpecker-secret: egy WarpEngine ApplicationToken az update + upload jogosultságokkalname: <szoftver> a jelölőben, de csak akkor, ha a szoftvernév eltér a repó nevétőlA 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=ebitengine"
| Lépés | Mit csinál |
|---|---|
| 1. version | kiolvassa a verziót a metadata.json-ból, különben a git rövid hash-t használja; a main/master ágon kívül dev-<verzió>-<ág> előtagot kap |
| 2. build | GOOS=js GOARCH=wasm, hozzáadja a wasm_exec.js és index.html fájlokat, majd becsomagolja |
| 3. binaries | keresztfordítás win-x86, win-x64, linux-x64 célokra, mindegyikhez egy verziózott zip |
| 4. artifact | átmásolja a metadata.json fájlt a verziózott nevére, majd POST /build/upload az X-Update-Secret fejléccel |
| 5. publish | POST /build/publish?platform=ebitengine |
Egy verziózott webes build, valamint Windows- és Linux-binárisok, feltöltve és publikálva. A nyilvános játékindex magától frissül.