TITLE=Ebitengine ROUTE=/platforms/ebitengine LOCALE=hu MODIFIED=1792476547 URL=https://wiki.teletypegames.org/hu/platforms/ebitengine Az Ebitengine (korábban Ebiten) gyors és hordozható 2D játékmotor Góhoz. bWeboldal:0 https://ebitengine.org bEzzel a motorral készült projektek:0 Rabbit Roller r────────────────────────────────────────────────────────────────────────────── 1Makefile 1════════ A Go natív binárisra vagy WebAssemblyre fordít. A webes buildhez három fájl kell: cgame.wasm0, cwasm_exec.js0 és cindex.html0. 2Változók 2──────── t┌────────────────┬───────────────────────────────────┬───────────────────────┐ t│h Változó t│h Leírás t│h Alapérték t│ t├────────────────┼───────────────────────────────────┼───────────────────────┤ t│0 cPROJECT0 t│0 A kimeneti fájlnevekben használt t│0 cebitenginedemo0 t│ t│0 t│0 név t│0 t│ t├────────────────┼───────────────────────────────────┼───────────────────────┤ t│0 cBIN_DIR0 t│0 Natív futtatható állomány t│0 cbin0 t│ t├────────────────┼───────────────────────────────────┼───────────────────────┤ t│0 cDIST_DIR0 t│0 WASM és csomagolt artifactok t│0 cdist0 t│ t├────────────────┼───────────────────────────────────┼───────────────────────┤ t│0 cWASM_NAME0 t│0 A WebAssembly fájl neve t│0 cgame.wasm0 t│ t├────────────────┼───────────────────────────────────┼───────────────────────┤ t│0 cVERSION_FILE0 t│0 Verziófájl a CI-hez t│0 c.version0 t│ t├────────────────┼───────────────────────────────────┼───────────────────────┤ t│0 cINDEX_HTML_URL0 t│0 index.html sablon t│0 ebitengine-tools repó t│ t└────────────────┴───────────────────────────────────┴───────────────────────┘ 2Célok 2───── p make build # go build -> bin/ az aktuális OS-re p make wasm # dist/game.wasm + wasm_exec.js p make export VERSION=1.0.0 # wasm + index.html ebitenginedemo-1.0.0.html.» p zip néven becsomagolva p make watch # a natív bináris újraépítése a . alatti változ» p ásra (fswatch kell hozzá) p make clean # a bin/ és a dist/ törlése 2VS Code 2─────── Másold az cexample-tasks.json0 fájlt c.vscode/tasks.json0 néven, és cseréld az cebitenginedemo0 nevet a saját cPROJECT0 értékedre. Feladatok: bRun (alapértelmezett, cCmd+Shift+B0), bBuild & Run0, bBuild WASM0, bMake build0. 2Előálló artifactok 2────────────────── t┌──────────────────────────────────┬─────────────────────────────────────────┐ t│h Fájl t│h Leírás t│ t├──────────────────────────────────┼─────────────────────────────────────────┤ t│0 cbin/ebitenginedemo0 t│0 Natív futtatható állomány az aktuális t│ t│0 t│0 OS-re t│ t├──────────────────────────────────┼─────────────────────────────────────────┤ t│0 cdist/game.wasm0 t│0 WebAssembly bináris t│ t├──────────────────────────────────┼─────────────────────────────────────────┤ t│0 cdist/wasm_exec.js0 t│0 A Go WASM-futtatókörnyezetének t│ t│0 t│0 segédfájlja t│ t├──────────────────────────────────┼─────────────────────────────────────────┤ t│0 cebitenginedemo-.html.zip0 t│0 Webes build (index.html + WASM + t│ t│0 t│0 runtime) t│ t└──────────────────────────────────┴─────────────────────────────────────────┘ 2Követelmények 2───────────── Csak helyben: cmake0, cgo0 1.11+, ccurl0, czip0, watch módhoz pedig cfswatch0. A CI-image-ek hozzák a saját eszközeiket. r────────────────────────────────────────────────────────────────────────────── 1Pipeline 1════════ 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 c/build/config0 végponton szolgálja ki (sablon: clib/warp_engine/ci/woodpecker/platforms/ebitengine/pipeline.yaml.erb0). A repóhoz három dolog kell: p # .woodpecker.yaml p platform: ebitengine • cmetadata.json • az capplication_token0 Woodpecker-secret: egy WarpEngine ApplicationToken az cupdate0 + cupload0 jogosultságokkal • cname: 0 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 cci_platforms0 konfigurációjából jönnek. A teletypegames.org-on a builder az cebitengine-ttg0: az cebitengine-builder0 image, előtöltve az összes TTG-s Go-projekt moduljaival, így a build, a binaries és a test lépés nem tölti le őket újra (egy új függőséget a build ugyanúgy letölt). A segédlépések (version, upload, publish) a cci-tools0 image-ben futnak, amelyben a git, a jq, a curl és a zip előre telepítve van, így semmit nem telepítenek. A kiszolgált pipeline megtekintése: p curl "https://teletypegames.org/build/config?platform=ebitengine" 2Lépések 2─────── t┌─────────────┬──────────────────────────────────────────────────────────────┐ t│h Lépés t│h Mit csinál t│ t├─────────────┼──────────────────────────────────────────────────────────────┤ t│0 1. version t│0 kiolvassa a verziót a cmetadata.json0-ból, különben a git t│ t│0 t│0 rövid hash-t használja; a cmain0/cmaster0 ágon kívül t│ t│0 t│0 cdev--<ág>0 előtagot kap t│ t├─────────────┼──────────────────────────────────────────────────────────────┤ t│0 2. build t│0 cGOOS=js GOARCH=wasm0, hozzáadja a cwasm_exec.js0 és cindex.html0 t│ t│0 t│0 fájlokat, majd becsomagolja t│ t├─────────────┼──────────────────────────────────────────────────────────────┤ t│0 3. binaries t│0 keresztfordítás cwin-x860, cwin-x640, clinux-x640 célokra, t│ t│0 t│0 mindegyikhez egy verziózott zip t│ t├─────────────┼──────────────────────────────────────────────────────────────┤ t│0 4. artifact t│0 átmásolja a cmetadata.json0 fájlt a verziózott nevére, majd t│ t│0 t│0 cPOST /build/upload0 az cX-Update-Secret0 fejléccel t│ t├─────────────┼──────────────────────────────────────────────────────────────┤ t│0 5. publish t│0 cPOST /build/publish?platform=ebitengine0 t│ t└─────────────┴──────────────────────────────────────────────────────────────┘ 2Eredmény 2──────── 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.