Skip to content

TheDuckCow/godot-road-generator

Repository files navigation

Godot Road Generator

A godot plugin for creating 3D highways and streets.

demo road gen

⚠️ This project is not feature complete yet!

See upcoming milestones.

Godot version support

The alpha version of this addon is supporting godot 3.5, the public 1.0 release will target Godot 4.0+.

The Godot 3.5 builds shared before v1.0 will be provided as-is and without further maintenance after the 1.0 launch.

Credits

This addon is developed by Moo-Ack! Productions as a part of the "Wheel Steal" game project. We poured a lot of effort, time, and money into making this an intuitive, highly functional addon - and we chose to give it away for free to the Godot community.

You can share you appreciation by:

  1. Following or sharing the game project on Twitter or Instagram.
  2. Joining the Wheel Steal discord.
  3. Becoming a Patreon of the project (coming soon)

Logo specially designed by Kenney for this project.

How to install

Follow the Getting Started tutorial here.

What problems this addon solves

Without this plugin, Godot users can create road ways in one of three ways:

  1. Use a CSGPolygon following a path
    • While this works well and requires no plugins, it has many limitations
    • You need a custom material for every combination of lane sequences (1 way street, 2 lane road, multi lane highway). Additionally, there's no way to transition from one lane count to another without highly custom workarounds.
    • Editing road points using native curve point handles is awkward and not precise, which is not great for trying to finely tune road placements.
    • No easy way to create intersections without fiddly geometry placement.
  2. Custom model roads in a 3D modelling software
    • This adds an extra barrier to entry, and not being dynamic, greatly limits the way you can create roads layouts in Godot.
  3. Write their own code to create road meshes
    • It should go without saying, this is extra work! And this is exactly what this plugin aims to provide.

In addition to the specific points to each method above, in all cases you would need to write extensive custom code in order to create AI traffic that can follow lanes. Furthermore, even when comparing to road generators for other game engines, they lack features to create fine tuned lane shapes (like a road with 2 lanes one way, and only 1 in another). They also tend to not be well suited for dynamically adding new roadways during runtime as all roads are updated simultaneously and assumed to be defined in the editor.

How to use

Check out the wiki pages on detailed usage.

Demos

See the first preview and auto lane texturing demos from the early days of this project.

Future plans

All development ideas are added as enhancement issues here. All prioritized issues are part of milestones defined here

Contribution

Contributions are welcomed! See the contributing guide for all the details on getting started.