All Projects → samuelbigos → godot_2d_navmesh_generator

samuelbigos / godot_2d_navmesh_generator

Licence: MIT license
Godot plugin that generates a 2D navigation mesh from collsion nodes.

Programming Languages

GDScript
375 projects
GLSL
2045 projects

Projects that are alternatives of or similar to godot 2d navmesh generator

surfacer
AI and pathfinding for 2D-platformers in Godot.
Stars: ✭ 56 (+60%)
Mutual labels:  navigation, godot
godothub
Multiplayer and network messaging for Godot.
Stars: ✭ 19 (-45.71%)
Mutual labels:  godot
navigator
Annotation processor that eliminates navigation and Bundle boilerplate
Stars: ✭ 13 (-62.86%)
Mutual labels:  navigation
godot-cpp-cmake
CMake scripts to build cross-platform GDNative C++ bindings
Stars: ✭ 20 (-42.86%)
Mutual labels:  godot
vscode-tree-view
VSCode extension that probvides mail symbol overview of the currently opened file
Stars: ✭ 26 (-25.71%)
Mutual labels:  navigation
bottom-nav
Material Design bottom-nav https://material.io/guidelines/components/bottom-navigation.html
Stars: ✭ 25 (-28.57%)
Mutual labels:  navigation
Router
Router is a library that assists with SwiftUI view transitions.
Stars: ✭ 68 (+94.29%)
Mutual labels:  navigation
diractions
👨‍💻 Doing Anything, Anywhere, from Here [zsh] 🚏
Stars: ✭ 30 (-14.29%)
Mutual labels:  navigation
GodotProjects
Random projects made in Godot 2 and Godot 3
Stars: ✭ 12 (-65.71%)
Mutual labels:  godot
vue-bottom-navigation
Vue bottom navigation
Stars: ✭ 56 (+60%)
Mutual labels:  navigation
hipsbarjs
Hipsbarjs is a javascript plugin for easily creating drawers in web apps
Stars: ✭ 17 (-51.43%)
Mutual labels:  navigation
path planning GAN
Path Planning using Generative Adversarial Network (GAN)
Stars: ✭ 36 (+2.86%)
Mutual labels:  navigation
navigation array
Helper function for building navigations for REDAXO cms
Stars: ✭ 22 (-37.14%)
Mutual labels:  navigation
motion-planner-reinforcement-learning
End to end motion planner using Deep Deterministic Policy Gradient (DDPG) in gazebo
Stars: ✭ 99 (+182.86%)
Mutual labels:  navigation
godot-portal-demo
Experimenting with portals in Godot Engine
Stars: ✭ 66 (+88.57%)
Mutual labels:  godot
godot-radial-menu
A radial menu for Godot, supports Mobile & Desktop
Stars: ✭ 88 (+151.43%)
Mutual labels:  godot
UnityScreenNavigator
Library for screen transitions, transition animations, transition history stacking, and screen lifecycle management in Unity's uGUI.
Stars: ✭ 488 (+1294.29%)
Mutual labels:  navigation
godot-blank-starter-template-3d
Godot 3.x basic starter project with some predefined settings to achieve an high quality look
Stars: ✭ 28 (-20%)
Mutual labels:  godot
jquery-scrollwatch
jQuery plugin for determining active sections on the page based on scrolling
Stars: ✭ 18 (-48.57%)
Mutual labels:  navigation
vox nav
A project to develop/adapt a navigation system for outdoor robotics in rough uneven terrains
Stars: ✭ 101 (+188.57%)
Mutual labels:  navigation

Godot 2D Navmesh Generator

Preview Image

A tool for generating a navigation mesh from collision data in a 2D scene. Implemented and tested in Godot 3.2.3.

PRs are welcome, no guarantees on a swift review though.

Installation

If your Godot project is tracked with Git, it is recommended to install this as a Git submodule. This means you can easily pull down updates. From your project root:

git submodule add https://github.com/samuelbigos/godot_2d_navmesh_generator addons/godot_2d_navmesh_generator

If you're not tracking on Git, download the repo and place into the 'addons/godot_2d_navmesh_generator' directory.

Usage

  1. Add a NavigationPolygonInstance to your scene (see documentation).
  2. In the Inspector menu, add a new NavigationPolygon and make sure it's selected.
  3. In the bottom panel you should see a tab NavmeshGen. Click it.
  4. Use this menu to generate a mesh for your NavigatonPolygon.

Demo

A demo project is included (2d_navmesh_generator_demo.zip), it includes basic navmesh agent and some collision shapes to generate a navmesh from.

Known Issues and Gotchas

  • 'Holes' in topology are not supported (yet). This means if you have a donut shape, the hole will be filled in. The solution for now is to leave a gap somewhere (and make it big enough for your agent width), then fill in the gap manually.
  • After generating, re-select the NavigationPolygonInstance node a few times in the editor to bring up the polygon editing interface.
  • Settings are not saved and will reset to default when re-selecting the node.
  • Generation time cost increases with square of scene size, which can be unoptimal for large scenes. Try and split your scenes up into multiple navmeshes if possible.
  • Works better if most straight lines are axis-aligned. This is because the scene is rasterized before being converted to a mesh, and diagonal lines introduce aliasing.
  • Only tested on Godot 3.2.3 and GLES3, might not work on other versions.

Next Steps

  • Fix known issues.
  • Create an API to generate programatically (for procedurally generated scenes).
  • Port to GDNative for performance.
  • Clean up and properly comment code.
  • Suggestions welcome!

Changelog

v0.1: Initial release for Godot 3.2.3

  • Initial release.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].