Skip to content

Add experimental Godot terminal export target - #37

Closed
nicodes wants to merge 1 commit into
mainfrom
feat/godot-terminal-target
Closed

nicodes wants to merge 1 commit into
mainfrom
feat/godot-terminal-target

Conversation

@nicodes

@nicodes nicodes commented Oct 11, 2026 •

Copy link
Copy Markdown
Member

Godot projects can now export to a Termcade target and play inside terminal cells. A real Godot EditorExportPlatformExtension produces .tgd packages; a headless engine runs ordinary GDScript and physics while a software renderer converts supported 2D scene nodes into the existing terminal framebuffer. No browser, graphical window or GPU readback is used.

Adds godot init, export, play and agent-facing capture with JSON results and input replay. Includes a paddle example, compatibility errors, isolated export staging, bounded frames/logs, and owned-process watchdog/cleanup. CI and arcade Release share an artifact gate that exercises the shipping archive in a real PTY.

This is an experimental local developer target: supported sprites, solid polygons/lines/rectangles and transforms, not universal Godot compatibility. Native execution requires --trusted; .tgd is separate from sandboxed .tcade and is not accepted by the existing marketplace. General UI, cameras, shaders, autoloads, audio, durable saves, mouse/controller support and OS sandboxing remain outside this implementation.

Validation: canonical make install and final make check passed, including five-platform archives, lint, race/consumer tests, real Godot export/render/input/reset, a genuinely hung simulation, deterministic replay, PNG capture and shipping-archive PTY pause/resize/exit. Non-Linux binaries were compiled, not executed.

Private design and source-bound evidence are maintained in the companion nicodes/docs branch feat/termcade-godot-target; the public README is generated from its canonical usage source.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant