System requirements¶
Short version: a desktop or laptop with a discrete graphics card from about 2019 onwards. Goanna is a visuals-first client and it asks for more than the vanilla Luanti client does, deliberately.
If your machine cannot run it, that is not a bug to be fixed later. Run the
vanilla client, which is faster, runs nearly anywhere, and is always the
reference. See docs/design/plan.md for why the project made that choice.
What is actually required¶
| Graphics | A GPU with a working Vulkan driver, and enough throughput for real-time global illumination. In practice a discrete card. |
| Graphics memory | 3 GB or more, dedicated. Measured use was about 2.4 GB. |
| System memory | 4 GB free for the client. Measured use was about 750 MB, but the Godot editor and a local server want their own. |
| Processor | Any modern x86-64. One core is doing most of the work. |
| Operating system | Linux. A Windows build is wired up but has never been run, let alone played. macOS untried. See docs/develop/building.md. |
| Disk | About 2 GB for a built checkout, more if you keep the build tree. |
There is no Compatibility or Mobile renderer path, on purpose. Forward+ and Vulkan only.
Integrated graphics start on the Low profile (2026-09-26): bounced light (SDFGI) and the parallax march through an authored pack are off, and it draws the least world. It exists for handhelds such as the Steam Deck. Nobody has run Goanna on a Deck or on any AMD graphics yet, so whether Low holds a playable frame rate there is unknown; it is the first thing to measure on one.
Measured, not guessed¶
These numbers come from one machine, so treat them as a single data point rather than a matrix. Anyone who runs Goanna on different hardware and reports back is doing the project a real favour.
The first measurement was taken on 16 August 2026: NVIDIA RTX 3090, AMD Ryzen 7 7800X3D, at 1600x900, connected to a local Mineclonia server, with about 1300 mapblocks received and 685 meshed.
| Average | Peak | |
|---|---|---|
| Graphics memory, above idle | 1.6 GB | 2.4 GB |
| Graphics utilisation | 62 % | 99 % |
| System memory | 694 MB | 757 MB |
| Processor | 84 % of one core | 99 % |
That was before frame-time telemetry and renderer batching landed. The later runs below are not a controlled benchmark suite, but they identify the bottleneck and show the scale of the improvement.
| Mineclonia run | Draw calls | Frame rate |
|---|---|---|
| Before array textures and surface merging, 541 block meshes | 9,197 | about 167 fps |
| After array textures and surface merging, 730 block meshes | 4,957 | 215 to 232 fps |
| View range 20, full detail | 4,858 | 118 fps |
| View range 20, coarse LOD beyond 6 mapblocks | 2,824 | 262 fps |
| View range 12, full detail, 234 blocks, fixed view above a jungle | 3,454 | 287 fps |
| Same view, tiers beyond 2 mapblocks: 15 full blocks, 220 in 10 region meshes | 306 | 377 fps |
The last two rows are from two runs of the same player at the same absolute
viewpoint on 2026-08-21, so the streamed set differs slightly between them;
the draw call ratio is the result and the frame rate is indicative. In
ordinary terms, array textures, merged surfaces and distant level of detail
moved the same class of scene from roughly 100 fps towards 300 fps. Draw calls,
not triangle count or mesh generation time, were the limiting factor. The
client now also bounds resident mapblocks and reports frame-time, queue,
draw-call, object and video-memory telemetry with GOANNA_PERF=1.
The measurements still use template_debug with RelWithDebInfo, so Godot's
debug checks are active. They come from one unusually powerful machine and
should not be read as a minimum-GPU result. SDFGI, SSAO, SSIL, volumetric fog
and real shadows remain deliberately expensive.
Will it run on a Raspberry Pi 5?¶
No, and not narrowly.
The interesting part is that the obvious objection is wrong. A Pi 5 does have Vulkan: its VideoCore VII runs Mesa's v3dv driver, which reached Vulkan 1.3 conformance in Mesa 24.3. So the API is there, and Godot's Forward+ renderer will not refuse to start on the grounds of a missing Vulkan version.
It fails on throughput instead, by a wide margin:
- Goanna keeps a high end desktop GPU busy 62 per cent of the time at 1600x900. The Pi 5's integrated graphics are far below that class, and the gap is orders of magnitude rather than a generation or two.
- SDFGI is the specific problem. It is a real-time voxel global illumination technique, it is the most expensive thing on the frame, and it is the single feature Goanna exists to use.
- There is no low specification fallback to drop back to, by design. Turning the effects off until a Pi 5 copes would leave you with a slower, less complete version of the vanilla client.
There is also a plain practical blocker: no ARM64 build exists. The build
system now derives the architecture correctly, so an arm64 binary is
possible, but none has been produced or tested, and the .gdextension file
lists only x86-64 libraries.
The good news is that the vanilla Luanti client runs well on a Pi 5, plays every
game, connects to every server, and is actively maintained. That is genuinely
the right answer for that hardware, and it is the answer docs/design/plan.md
committed to from the start.