Skip to content

Latest commit

 

History

History
43 lines (38 loc) · 4.93 KB

project_status.md

File metadata and controls

43 lines (38 loc) · 4.93 KB

Project Status

Terrain3D has been available and usable since the alpha was released in July, 2023. We have hundreds of users and are using it in our game, Out of the Ashes. It is stable and just needs advanced features.

The status of various features are shown in the table below.

See the Roadmap for priorities. See Contributing if you would like to help the project move faster.

Feature Status
Platforms Terrain editing and exported games work on Windows, Linux, macOS. Mobile and web platforms are experimental.
Languages GDScript, C++, C# all work, as should any language Godot supports. See Integrating With Terrain3D
Editing
Sculpting Operations Raise, Lower, Flatten, Expand (Multiply away from 0), Reduce (Divide towards 0), Slope and Smooth. It can be improved over time.
Painting Operations Texture, Color, Wetness (roughness) with Height blending.
GPU Sculpting Pending. Currently painting occurs on the CPU in C++. It's reasonably fast, but we have a soft limit of 200 on the brush size, as larger sizes lag.
Advanced texturing Pending and this. eg. Paintable uv scale / slope / rotation, 2-layer texture blending, 3D projection. We intend to implement all of these and adopt techniques provided by The Witcher 3 team. (See System Architecture)
Environment
Foliage Pending. Paintable meshes will be instanced via MultiMeshInstancer. Collision may also be generated. Alternatives are using MultiMeshInstance3D or a particle shader, or see 3rd party tools below.
Object placement Out of scope. See 3rd party tools below.
Holes Supported since 0.9. See #60
Water Use WaterWays for rivers, or Realistic Water Shader or Infinite Ocean for lakes or oceans.
Destructibility Real-time modification is technically possible by fetching the height and control maps and directly modifying them. That's how the editor works. But most gamedevs who want destructible terrains are better served by Zylann's Voxel Tools.
Non-destructive layers Used for things like river beds, roads or paths that follow a curve and tweak the terrain. It's possible, but low priority.
Physics
Godot Works within regions you define in your world. No collision outside of those.
Jolt Godot-Jolt v0.6+ works as a drop-in replacement for Godot Physics. The above restriction applies.
Navigation Server Supported. See Navigation
Data
Large terrains 8k^2 works, maybe a little more, though collision will take up ~3GB RAM. 16k x 8k up to 16k^2 works in memory, but cannot be saved due to an engine bug.
Importing / Exporting Works. See Importing data
Double precision floats Supported.
Rendering
Frustum Culling The terrain is made up of several meshes, so half can be culled if the camera is near the ground.
Occlusion Culling Supported.
SDFGI Works fine.
Lightmap baking Not possible. There is no static mesh, nor UV2 channel to bake lightmaps on to.
3rd Party Tools
Scatter For placing objects algorithmically, with or without collision. We provide a script that allows Scatter to detect our terrain. Or you can enable debug collision and use the default Project on Colliders.
AssetPlacer A level design tool for placing assets manually. Works on Terrain3D with debug_show_collision turned on. Native support is pending.
Simple Grass Textured A foliage painter. Add as a child and enable debug_show_collision.
Spatial Gardener A foliage painter. Add as a child and enable debug_show_collision.