Engine choice: Redot (Godot fork) #1
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Decision: Redot
Target: PCVR (SteamVR via OpenXR)
Later: Quest standalone — dropped until much later. Not a current goal.
Constraint: Pure native engine where possible. GDScript-equivalent + built-in features first. Native modules only if something truly can t be done in-script.
Why Redot over Godot
Godot (not chosen)
Unity ❌
Unreal ❌
Prototyping pipeline
Open questions
Engine choice: Godot vs alternativesto Engine choice: Redot (Godot fork)One important note is that of Redot turns out not to be the way to go, I am willing to consider other engines, however the main idea right now is to use redot for the reasons stated above,
One large question, is do we want to use Redot LTS 26.1 or latest release 26.3? This is an important decision of do we pin at the LTS release? or should we continue using the "latest" version?
Also should we stick to Redot native? or Redot Mono? this is important for various design implementations and performance changes.
Two questions, both worth answering deliberately. First a correction: the current LTS isn't 26.1 -- 26.2 LTS went stable June 30, 2026, so the real choice is 26.2 LTS vs 26.3 latest.
26.2 LTS vs 26.3: 26.3 stable only dropped October 15 (five days ago) -- headliners are WorldScape3D (built-in terrain editor, actually relevant to us), plus Structs, Traits, and nullable static types, which are the biggest GDScript upgrade in a while. Tempting, but it's fresh: the VR stack we'd depend on (OpenXR vendor plugin, godot-xr-tools compatibility) is unverified on it, and Redot is volunteer-maintained, so latest carries more churn risk than on upstream Godot. LTS is Godot 4.5-based, bugfix-focused, backward-compatible. My lean: pin 26.2 LTS now, re-evaluate 26.3 deliberately once the VR pieces are proven on it -- don't ride latest on a fork while we're still prototyping.
Native vs Mono: lean native (GDScript). The VR ecosystem -- godot-xr-tools, OpenXR examples, nearly all tutorials -- is GDScript-first; iteration is faster with no compile step; and you skip the .NET SDK + separate export templates toolchain. The traditional argument for C# (raw speed, mature IDEs like Rider, strong typing) got weaker with 26.3's typed GDScript features. One Redot-specific caution: Mono builds have historically lagged standard releases (4.3.1 shipped with no Mono build at all; it only returned in the 4.4 alphas) -- verify a 26.x Mono build actually exists before treating it as an option. Escape hatch: in a .NET build you can mix both (GDScript calling C#), so starting native doesn't lock the door if one subsystem later needs C# speed.
My vote: 26.2 LTS + native GDScript, revisit 26.3 after VR verification. Your call though -- if WorldScape3D terrain turns out to be load-bearing for the Region's geography, that could flip the version question.
Decision: version pin + Mono rule
Version pin: Redot LTS 26.2. We pin to the LTS line. Newer releases (26.3+) get re-evaluated after the VR stack is verified working on the pin — not adopted on release day.
Mono vs native rule: Mono/.NET is fine to use — but if something can be remade into native script (GDScript), native is the way to go. This gives us the ability to reach for Mono/dotnet code when it's genuinely needed, with a standing reason to prefer native whenever native can reasonably do the job.
In short: native by default, Mono by justification.
Editor build refinement (Zach, 2026-10-20): we use the Mono build of Redot LTS 26.2 as the standard editor — even when not using Mono features, so the capability is there when needed. The native-first Mono rule above is unchanged (GDScript by default, Mono by justification).
Practical note from verification on my VM: the Mono editor requires the .NET SDK 8.0+ installed — without
dotnetavailable it fails to load hostfxr and crashes outright on project load (it does not degrade to GDScript-only mode). With .NET SDK 8.0.426 present, the Mono build imported the game skeleton cleanly (14 framework classes, zero errors) and its MCP server works headless, same as the non-Mono build.Reflected in the skeleton PR (dead-air/da-game#1) README pins.
Terrain3D — compatibility report & possible uses (researched 2026-10-22)
Zach asked whether the "terrain tools in newer Godot" are real and mature, and to track the answer here on the engine tracker. Short version: Godot core has no terrain system (not in 4.6/4.7; 4.8 is in feature freeze without one). What circulates as "Godot terrain" is Terrain3D by Tokisan Games — a third-party plugin now featured in the new Asset Store. Below is the full check against our stack, then what we could use it for.
Compatibility report
gl_compatibilitypath — this was the make-or-break itemWhat DEAD AIR could use it for
Risks / open questions (why this is a spike, not an adoption)
gl_compatibilityon the target rig is our number to measure, not the docs'. Needs a spike: ~1km sculpted terrain in the sandbox, fog on, frame times checked flat + estimated for stereo before any headset commitment.Recommendation
Track, don't adopt yet. Proposed next step (on Zach's go): a throwaway spike branch — Terrain3D dropped into the sandbox level, ~1km of sculpted terrain, fog enabled, frame-time measurements, and a fog-behavior check — reported back here before any decision. If adopted: pin the version, vendor it under
addons/alongside xr-tools, and add it todocs/external-resources.md.— Lantern
Update 2026-10-22 (later): integrated. Zach directed integration now, unused or not. Terrain3D 1.0.2 is vendored unmodified at
addons/terrain_3d/(official release;demo/not vendored), the editor plugin is enabled, andtests/terrain_check.gdguards the load: da-game PR #7 (merge is Zach's call, as always).Verified on the pinned Godot 4.6.3 standard build, headless: import clean, terrain classes register, terrain + data instantiate, empty-terrain height query returns the NaN no-data sentinel; smoke/arms/addon suites still pass.
The spike questions from the report above (VR frame budget under stereo +
gl_compatibility, fog interplay with its shader stack) remain open for when a level first wants terrain — integration changes nothing about them.— Lantern