gamedev-skills/awesome-gamedev-agent-skills

godot-export

Export and build a Godot 4.7 project for distribution: install export templates, define export presets (Windows/macOS/Linux/Web/Android), run headless command-line exports for CI, and handle web (HTML5) COOP/COEP and dedicated-server/headless builds.

ソースを見る

使い方

  1. インストールコマンドをコピーし、自分の環境へ導入する前にソースを確認します。
  2. 必要なツール、認証情報、対応環境を原文で確認します。
  3. 入力と成果物を指定し、出力を資料と照合します。
npx skills add https://github.com/gamedev-skills/awesome-gamedev-agent-skills --skill godot-export

開始前の確認

  • 導入にはモデル契約、API枠、ファイルへのアクセス許可は含まれません。
  • スター数や導入数は活動の指標であり、独立した品質・安全性試験ではありません。
リポジトリの原文

見出し、例、コード、表、リンク、参照画像を含む原文を表示しています。

Godot Export & Builds (4.x)

Turn a project into runnable platform builds via export presets and the command line, and handle the web/dedicated-server gotchas. Targets Godot 4.7.

When to use

  • Use when producing a shippable build: installing export templates, creating/editing

export presets, exporting from the editor or headless CLI (CI), or troubleshooting web (HTML5) and dedicated-server exports.

When not to use:* storefront publishing flows → steam-publish/itch-publish; the networking code of a server → godot-multiplayer (this skill covers building it headless).

Core workflow

  1. Install export templates matching your engine version: Editor menu >

Manage Export Templates (download), or install the .tpz offline. Versions must match the editor exactly.

  1. Add export presets in Project > Export: pick a platform (Windows Desktop, macOS,

Linux, Web, Android, iOS), set the export path, icons, features, and resource include/exclude filters. Presets are saved to export_presets.cfg.

  1. Export from the editor with Export Project (release) or Export PCK/ZIP.
  2. Or export headless from the CLI for automation/CI using

--export-release "<preset name>" <output path>.

  1. Per platform: Web needs cross-origin isolation (COOP/COEP) for threads; Android

needs the SDK/keystore; macOS/iOS need signing for distribution.

  1. Smoke-test the build on the target before shipping — exported builds use res://

read-only; write to user://.

Patterns

1. Headless CLI export (CI-friendly)

bash
# Preset name must match exactly what's in Project > Export (quote it).
# Run from the project directory (where project.godot lives).
godot --headless --export-release "Windows Desktop" build/windows/game.exe
godot --headless --export-release "Linux/X11"       build/linux/game.x86_64
godot --headless --export-release "Web"             build/web/index.html

# Debug build (includes debug symbols / remote debug):
godot --headless --export-debug "Windows Desktop" build/windows/game_debug.exe

# Export only the data pack (no executable):
godot --headless --export-pack "Linux/X11" build/game.pck

2. Run a project headless (dedicated server / tests)

bash
# No window/GPU — for a server build or automated runs.
godot --headless --path . res://server_main.tscn
# Quit after N main-loop iterations (frames, NOT seconds) — handy for a headless smoke test:
godot --headless --path . --quit-after 600

3. Detect the build context at runtime

gdscript
func _ready() -> void:
    if OS.has_feature("dedicated_server") or DisplayServer.get_name() == "headless":
        _start_server_only()          # skip rendering/UI on a headless server
    if OS.has_feature("web"):
        _apply_web_tweaks()
    # Custom feature tags (added per preset) are also queryable:
    # if OS.has_feature("demo"): limit_content()

4. Choose write paths that survive export

gdscript
# res:// is READ-ONLY in exported games. Always write to user://.
func save_path() -> String:
    return "user://savegame.tres"     # resolves to the OS app-data dir

func _ready() -> void:
    print(OS.get_user_data_dir())     # where user:// actually lives

Pitfalls

  • "No export template found". Templates must match the exact editor version (incl.

beta/rc). Re-download via Manage Export Templates after upgrading Godot.

  • Preset name mismatch in CLI. --export-release "Windows" fails if the preset is

named "Windows Desktop". Names are case- and space-sensitive; quote them.

  • Web build shows a blank page / threads error. HTML5 builds that use threads require

the server to send Cross-Origin-Opener-Policy: same-origin and Cross-Origin-Embedder-Policy: require-corp (cross-origin isolation for SharedArrayBuffer). Must be served over HTTP(S), not opened as a file://. itch.io has a "SharedArrayBuffer support" toggle for this.

  • Writing to `res://` at runtime fails in exports (read-only, packed). Use user://.
  • Missing resources in the build. Non-resource files (e.g. external .json, .txt)

are not auto-included — add them via the preset's Resources > Filters to export non-resource files (e.g. *.json).

  • Android export needs setup: Android SDK/JDK paths in Editor Settings, a debug or

release keystore, and the INTERNET permission for networked games.

  • macOS/iOS distribution requires signing/notarization; unsigned macOS apps are

blocked by Gatekeeper.

  • Debug vs release. --export-debug enables remote debugging and debug checks; ship

--export-release.

References

  • For the export_presets.cfg structure, all useful CLI flags, custom feature tags,

PCK/expansion patching, encryption, and per-platform setup (Android keystore, macOS signing, web headers), read references/presets-and-cli.md.

Related skills

  • godot-multiplayer — the dedicated-server code you export headless.
  • steam-publish / itch-publish — getting the build to players.
  • prototype-fast / game-jam — quick web/desktop builds for sharing.

タスクに関連する項目

同じリポジトリから

関連する Skills

すべての Skills
gamedev-skills
コミュニティ

game-feel

Add "juice" and game feel that makes actions satisfying — screen shake, hit-stop/freeze frames, tweened/eased motion, squash & stretch, knockback, and layered audio-visual feedback — as engine-neutral techniques that pair with the detected engine's tween, particle, and camera APIs. Use when the user mentions game feel, juice, "make it feel good/punchy", screen shake, hit stop, screen freeze, easing, squash and stretch, impact frames, or feedback/polish on hits, jumps, pickups, and deaths.

導入数
16
GitHub Stars
4316
更新日
10月24日
gamedev-skills
コミュニティ

audio-design

Implement game audio practice — bus/mixer architecture and gain in decibels, ducking (sidechain), adaptive/dynamic music via layering and re-sequencing, SFX variation, and beat synchronization. Engine-neutral. Use when the user mentions audio mixing, audio buses, adaptive/dynamic music, ducking, SFX variation, music layers, or syncing gameplay to the beat.

導入数
13
GitHub Stars
4316
更新日
10月24日
gamedev-skills
コミュニティ

performance-optimization

Find and fix game performance problems methodically — measure with the engine profiler first, reason about the frame-time budget, locate the CPU-vs-GPU bottleneck, then apply the right fix: object pooling, draw-call batching, fewer allocations/GC spikes, and asset budgets. Engine- neutral method that pairs with each engine's profiler. Use when the user mentions performance, optimize, low/dropping FPS, frame drops, stutter, lag, profiler, frame budget, draw calls, batching, garbage collection/GC

導入数
13
GitHub Stars
4316
更新日
10月24日
gamedev-skills
コミュニティ

shader-programming

Write game shaders from cross-engine fundamentals — the vertex→fragment pipeline, coordinate spaces, UV math, and common 2D/3D effects (tint, UV scroll, dissolve, outline, fresnel rim, vignette) in GLSL with HLSL equivalents. Use when the user mentions shaders, fragment/pixel shader, vertex shader, UV, GLSL, HLSL, or effects like dissolve, outline, or rim light.

導入数
13
GitHub Stars
4316
更新日
10月24日