A Godot nyílt forráskódú 2D és 3D játékmotor vizuális szerkesztővel. Szkriptelés GDScriptben vagy C#-ban.
Weboldal: https://godotengine.org
A Godot szerkesztő headless módban futtatható, és exportálja a webes buildet (HTML5/WASM), valamint az asztali binárisokat. A sablonok a godot-tools repóban vannak:
example-makefile.make → Makefile, majd állítsd be a PROJECT értékétexample-export_presets.cfg → export_presets.cfg (előbeállítások: Web, Windows x86, Windows x64, Linux x64, Mac universal)Mac universal beállításban add meg az application/bundle_identifier értékétKét beállítás, amit könnyű elfelejteni:
# project.godot — enélkül az arm64-es macOS-szelet exportja elbukik
[rendering]
textures/vram_compression/import_etc2_astc=true
# export_presets.cfg, Web előbeállítás — szálak nélkül a játék COOP/COEP fejlécek nélkül is fut
variant/thread_support=false
| Változó | Leírás | Alapérték |
|---|---|---|
PROJECT |
A kimeneti fájlnevekben használt név | godotdemo |
GODOT |
A Godot szerkesztő binárisa | godot |
EXPORT_PRESET |
Előbeállítás az export_presets.cfg fájlból |
Web |
DIST_DIR |
Artifact-könyvtár | dist |
WEB_DIR |
Nyers webes export | dist/web |
VERSION_FILE |
Verziófájl a CI-hez | .version |
make build # godot --headless --import, létrehozza a .godot/ gyorsítótárat
make run # godot --path .
make web # a Web előbeállítás exportja a dist/web/ könyvtárba
make export VERSION=1.0.0 # a webes export godotdemo-1.0.0.html.zip néven becsomagolva
make binaries VERSION=1.0.0 # az összes asztali cél
make binary-win-x64 VERSION=1.0.0 # csak egy cél
make watch # újraimportálás .gd / .tscn változásra (fswatch kell hozzá)
make clean # a dist/ és a .godot/ törlése
A build egyben gyors ellenőrzés arra, hogy „betöltődik-e a projekt". Friss checkout után futtasd le bármilyen export előtt.
Asztali tudnivalók:
.app fájlt a Godot ad hoc módon aláírja (codesign/codesign=1); az arm64-es macOS visszautasítja az aláíratlan binárisokat..pck fájlt beágyazza a futtatható állományba, így mindegyik zip egyetlen fájlt tartalmaz.Másold az example-tasks.json fájlt .vscode/tasks.json néven. Feladatok: Run (alapértelmezett, Cmd+Shift+B), Edit, Export Web, Make build.
| Fájl | Leírás |
|---|---|
dist/web/ |
Nyers webes export (index.html, .js, .wasm, .pck) |
godotdemo-<verzió>.html.zip |
Webes build |
godotdemo-<verzió>-win-x86.zip |
Windows 32 bit |
godotdemo-<verzió>-win-x64.zip |
Windows 64 bit |
godotdemo-<verzió>-linux-x64.zip |
Linux 64 bit |
godotdemo-<verzió>-mac-universal.zip |
macOS univerzális .app, ad hoc aláírva |
Csak helyben: make, egy Godot 4.x bináris exportsablonokkal (web + asztali), export_presets.cfg, zip, unzip, watch módhoz pedig fswatch. A CI-hez semmi nem kell a repóban.
A játékrepókban nincs pipeline-YAML és nincsenek CI make-célok. 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/godot.yaml.erb).
A repóhoz három dolog kell:
# .woodpecker.yaml
platform: godot
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 (pl. godot-builder:4.7.1) 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=godot"
| 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; megírja a .version fájlt |
| 2. build | a godot-builder image-ben: import, a Web előbeállítás exportja, majd a négy asztali cél; mindegyiket saját zipbe csomagolja |
| 3. upload | átmásolja a metadata.json fájlt godotdemo-<verzió>.metadata.json néven, majd fájlonként POST /build/upload az X-Update-Secret fejléccel |
| 4. publish | POST /build/publish a name, platform, version paraméterekkel |
A builder image a godot-ci (headless szerkesztő és a hozzá illő exportsablonok), kiegészítve a make, zip, unzip és jq eszközökkel, így egyik lépés sem futtat apt-get-et. A godot-tools builder.Dockerfile fájljából épül.
curl -X POST -H "X-Update-Secret: <SECRET>" \
"https://teletypegames.org/build/publish?name=godotdemo&platform=godot&version=1.0.0"
Egy webes build és négy asztali cél, mindegyik saját zipben, a kiadáshoz ReleaseAssetként csatolva, és a katalógusoldalról letölthetően. A nyilvános játékindex magától frissül.