---
title: Godot
url: 'https://wiki.teletypegames.org/hu/platforms/godot'
markdown: 'https://wiki.teletypegames.org/hu/platforms/godot.md'
lang: hu
date: '2026-08-03'
description: '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 12 Popular Games Made With The Godot Engine Alapozó | Godot Engine alapok – I. Pong Enjoyable Game Architecture | Chickensoft — Open Source Too…'
taxonomy:
  tag:
    - howto
---

# 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

- [*12 Popular Games Made With The Godot Engine*](https://www.thegamer.com/godot-engine-popular-games-best/#getting-over-it-with-bennett-foddy)
- [*Alapozó | Godot Engine alapok – I. Pong*](https://jatekfejlesztes.online/tutorials/godot-kezdoknek-i-pong/tpages/alapozo)
- [*Enjoyable Game Architecture | Chickensoft — Open Source Tools for Godot and C#*](https://chickensoft.games/blog/game-architecture/)
- [*I Used Godot For 100 Hours, Here's What I Learned*](https://www.youtube.com/watch?v=YVjT0OeE4P0)
- [*Godot Game Development – Crash Course for Beginners*](https://www.youtube.com/watch?v=S8lMTwSRoRg)
- [*Game Development Basics in Godot Engine*](https://www.youtube.com/watch?app=desktop&v=1LXukLw93uQ)
- [*How To Structure Your Godot Project (so You Don't Get Confused)*](https://new.pythonforengineers.com/blog/how-to-structure-your-godot-project-so-you-dont-get-confused/)

---

# 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](https://git.teletypegames.org/build/godot-tools) repóban vannak:

- `example-makefile.make` → `Makefile`, majd állítsd be a `PROJECT` értékét
- `example-export_presets.cfg` → `export_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/woodpecker/platforms/godot/pipeline.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 | az engine közös lépése (a WarpEngine 1.7 óta): a verzió a `metadata.json`-ból; tagnél a verziótagnek egyeznie kell vele; a repó alapágán kívül és egy `dev-<ág>` tagen `dev-<verzió>-<ág>`, verzió nélkül `dev-<commit>`; 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 | **csak tagre:** á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 | **csak tagre:** `POST /build/publish` a `name`, `platform`, `version` paraméterekkel |
| 5. tag | az engine közös lépése (a WarpEngine 1.9 óta), **csak push után**: a forrás új verziója megkapja a `v<verzió>` tagjét, és annak pipeline-ja futtatja a *csak tagre* jelölt lépéseket; egy már tagelt verzió nem ad ki semmit; egy dev build az ág `dev-<ág>` tagjét a commitra helyezi, így mindig a legfrissebb dev build van kiadva. Lásd: *Verziók és kiadások* a [WarpEngine](https://wiki.teletypegames.org/hu/engines/warp-engine) oldalon |

A verzió emelése maga a kiadás: a push buildel és tagel, a tag pipeline-ja tölt fel és publikál (WarpEngine 1.9). Egy push, amely nem emeli a verziót, csak buildel.

A builder image a [godot-ci](https://github.com/abarichello/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.

'; var prevLevel = 2; for (var i = 0; i < headings.length; i++) { var h = headings\[i\]; var text = h.textContent.trim(); var slug = text.toLowerCase() .replace(/\[áàâä\]/g,'a').replace(/\[éèêë\]/g,'e').replace(/\[íìîï\]/g,'i') .replace(/\[óòôöő\]/g,'o').replace(/\[úùûüű\]/g,'u') .replace(/\[^a-z0-9\]+/g, '-').replace(/^-|-$/g, ''); if (!slug) slug = 'heading-' + i; if (used\[slug\]) { slug += '-' + i; } used\[slug\] = true; h.id = slug; var level = parseInt(h.tagName.charAt(1)); var cls = level > 2 ? ' class="toc-child"' : ''; html += '- [' + text + '](#'%20+%20slug%20+%20')
'; } html += '
'; toc.innerHTML = html; // Scroll-spy: highlight current heading var links = toc.querySelectorAll('a'); var ids = \[\]; for (var j = 0; j < links.length; j++) ids.push(links\[j\].getAttribute('href').slice(1)); function updateActive() { var current = ''; for (var k = 0; k < ids.length; k++) { var el = document.getElementById(ids\[k\]); if (el && el.getBoundingClientRect().top <= 80) current = ids\[k\]; } for (var m = 0; m < links.length; m++) { links\[m\].parentNode.classList.toggle('active', links\[m\].getAttribute('href') === '#' + current); } } window.addEventListener('scroll', updateActive, { passive: true }); updateActive(); })();

---

## Navigation

- Parent: [Platformok](https://wiki.teletypegames.org/hu/platforms.md)
- Previous: [Ebitengine](https://wiki.teletypegames.org/hu/platforms/ebitengine.md)
- Next: [Löve](https://wiki.teletypegames.org/hu/platforms/love.md)
