Mobile & Web Support

This page documents the specific setups needed for non-desktop platforms. All platforms are experimental at best, and need Godot 4.2 or later.

Table of Contents

Android

As of Terrain3D 0.9.1 and Godot 4.2, Android is reported to work.

  • Use textures that Godot imports (converts) such as PNG or TGA, not DDS.

  • Enable Project Settings/Rendering/Textures/VRAM Compression/Import ETC2 ASTC.

The release builds include binaries for arm32 and arm64.

There is a texture artifact affecting some systems using the demo DDS textures. This may be alleviated by using PNGs as noted above, but isn’t confirmed.

Further reading:

IOS

As of Terrain3D 0.9.1 and Godot 4.2, iOS is reported to work with the following setup:

  • Use textures that Godot imports (converts) such as PNG or TGA, not DDS.

  • Enable Project Settings/Rendering/Textures/VRAM Compression/Import ETC2 ASTC.

  • Set Project Settings/Application/Config/Icon to res://icon.svg.

  • The Terrain3D release includes iOS builds, however they aren’t signed and may not work.

  • If needed, build the iOS library and make sure the binaries are placed where identified in terrain.gdextension:

     scons platform=ios target=template_debug
     scons platform=ios target=template_release
  • Select Project/Export, Add the iOS export preset and configure with App Store Team ID and Bundle Identifier, then export.

../_images/ios_export.png

Once it has been exported, you can open it in XCode, run locally, or on your device. Providing Apple support is out of scope for us.

Further reading:

Steam Deck

As of Terrain3D v0.9.1 and Godot 4.2, the first generation Steam Deck is reported working, running the demo at 200+ fps.

The user got it working with the following:

  • Use SteamOS 3.5.7

  • Install glibc and linux-api-headers in addition to the standard Godot dependencies

  • Build from source

Further reading:

WebGL

WebGL and the Compatibility Renderer are not fully supported yet. The terrain mesh builds and is reported to work fine.

The remaining issue is that the shader does not work because Godot does not fully support Texture2DArrays in the compatibility renderer. However it seems to work for some texture arrays, just not albedo. The exact problem isn’t fully tested or identified.

As an alternative, you can write your own custom shader. You can add texture samplers in the Terrain3DMaterial shader and in textures not in a TextureArray.

Further reading: