EN /HU | Belépés

Ebitengine

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


Makefile

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

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ó

Célok

SH
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

VS Code

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.

Előálló artifactok

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)

Követelmények

Csak helyben: make, go 1.11+, curl, zip, 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/ebitengine.yaml.erb).

A repóhoz három dolog kell:

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

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=ebitengine"

Lépések

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

Eredmény

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.