EN /HU | Belépés

Godot

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

Tutorialok


Makefile

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.makeMakefile, majd állítsd be a PROJECT értékét
  • example-export_presets.cfgexport_presets.cfg (előbeállítások: Web, Windows x86, Windows x64, Linux x64, Mac universal)
  • a Mac universal beállításban add meg az application/bundle_identifier értékét

Két beállítás, amit könnyű elfelejteni:

INI
# project.godot — enélkül az arm64-es macOS-szelet exportja elbukik
[rendering]
textures/vram_compression/import_etc2_astc=true
INI
# 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ók

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

Célok

SH
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:

  • A Godot bármely hosztról keresztexportál minden asztali platformra, beleértve a linuxos CI-image-et is.
  • A macOS egyetlen univerzális (intel + arm) build. Az architektúránkénti exporthoz egyedi sablonok kellenének.
  • A .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.
  • A Windows és a Linux a .pck fájlt beágyazza a futtatható állományba, így mindegyik zip egyetlen fájlt tartalmaz.
  • Minden zip a ReleaseAsset-konvenciót követi: egy gyökérmappa, plusz a LICENSE és a README.md, ha van.

VS Code

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.

Előálló artifactok

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

Követelmények

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.


Pipeline

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:

YAML
# .woodpecker.yaml
platform: godot
  • 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 (pl. godot-builder:4.7.1) 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=godot"

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; 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.

SH
curl -X POST -H "X-Update-Secret: <SECRET>" \
  "https://teletypegames.org/build/publish?name=godotdemo&platform=godot&version=1.0.0"

Eredmény

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.