Coder Social home page Coder Social logo

godot_terrain's Introduction

Godot Engine + Custom Terrain Module

simple_scene Custom Godot Engine Build with Terrain Module

You can purchase the source code and export templates at Gumroad

To start testing, download or clone this repo grab the compiled engine in the release section and open one of the projects.

Description

Over the last year I have worked in this project. My idea was to create a Terrain system inside godot that worked under both backends GLES3 - GLES2.

What you get:

  • Full In Editor terrain editor
  • Endless Patched terrain
  • Complex Biomes Rendering
  • AND THE BEST: It works under GLES2 the same way as it does under GLES3 so you can target low end devices ( that was my most important objective all the time )
  • More to come ...

Where are the export templates?

I am releasing the editor for free. The export templates and the source code are available for purchase at Gumroad however my advice is that you compile the module your self, doing that is easier than you think, even if you are not a programmer, just do EXACTLY what the godot build pages tell to do. Depending on your machine, it could only take you some minutes to compile the engine.

Where are the Tutorials?

00 - Godot Engine Custom Terrain Module - Introduction

01 - Godot Engine Custom Terrain Module - The First Terrain

02 - Godot Engine Custom Terrain Module - The Terrain Node Properties

Where can I report Issues?

Use this Page.

In what platforms does it work?

  • Windows - TESTED
  • Android - TESTED
  • HTML5 - SHOULD WORK (if threads are disabled) - UNTESTED
  • Linux - TESTED
  • Mac - SHOULD WORK - CANT TEST PERSONALLY ON THIS PLATFORM
  • iOs - SHOULD WORK - CANT TEST PERSONALLY ON THIS PLATFORM
  • Any Other Platform - SHOULD WORK - The module is made entirely of Godot internal classes and resources so in theory it should work wherever Godot does.

Important!

I am releasing the editor sooner so you can enjoy, or test, I still have some utilities to add and methods to expose to gdscript. Also, you should notice that terrain rendering is not a cheap task, so, target your low end devices wisely.

Getting Started:

  1. Add a Terrain Node into the Scene
  2. Save the TerrainData as a separate File (is in the Storage group)
  3. Go to the Terrain Menu (it is the Terrain Icon in the top left of the new side bar that appeared in your Spatial Vieport View) and Hit "Bake Globalmap"
  4. Decide beforehand what sizes do you want for the textures. Downscaling is fine but when upscaling you get artifacts in the textures and the borders will no longer match. Use with care.
  5. The new tool bar has a lot of buttons, hover them to know what they do. At the bottom of the column there are popup buttons: Brush Selector (B), Color Selector (C), Paint Texture Selecttor (T), Biome Selector (I), Simulation Selector (R). Test each one of them.
  6. Good luck! I will release a Tutorial Video Soon

ROADMAP

Stage 0

  • Add SmartTexture class (I love this class is everywhere in the module)
  • Add TerrainRenderer abstract class
    • Add Subrenderers:
      • CDLODRendrerer
  • Add Erosion Simulation and Filters
    • Hydraulic Erosion
    • Thermal Erosion
    • Wind Erosion
    • Gaussian Blur Filter
  • Add Biomes
    • Add PoissonGenerator and PoissonMixer classes for "pretty" entity placement
    • Add BiomeItem types: DECAL, GRASS, SHRUB, OBJECT, TREE
  • Add BiomeRenderer abstract class
    • Add Subrenderers:
      • GridRendrerer
  • Overhaul TerrainEditor class
    • Add capability to export the images stored inside the Terrain Data to the file system with acustom .import attatched (Use it before releasing the game. The Terraindata class is really heavy in size and can and will slow down your load times)

Stage 1

  • Add a Terrain Material class ( used by the BiomeItems to access each patch texture independently)
  • Add Biome Blocker Node
  • Add Surface Editor Node ( To edit the shadows heightmap and block biomes with custom meshes
  • Write Documentation
  • Release Initial Tutorials

Stage 2

  • Add Surface Regional Texture Proxy ( Just something to read more than one patch texture as one) (Maybe use a viewport?)
  • Add Navigation
  • Add Path Painter
    • Add Roads
    • Add Rivers
  • Update Documentation

godot_terrain's People

Contributors

ozzr avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.