Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Collision Avoidance Library Menge discussion. #20193

Closed
pgruenbacher opened this issue Jul 16, 2018 · 4 comments
Closed

Collision Avoidance Library Menge discussion. #20193

pgruenbacher opened this issue Jul 16, 2018 · 4 comments

Comments

@pgruenbacher
Copy link

pgruenbacher commented Jul 16, 2018

This is a discussion thread for using Menge library with godot. It's a very good collision avoidance library from what I can tell. I've included two demo videos. One is a demo of using it from within godot, the other is a video of the collision test examples being run. As you can see the library and collision avoidance in general is a much better way of doing agent-to-agent collision and navigation when certain scales are needed. Think of games like RTS, total war, sim city pedestrians, or anything that involves mobs of enemies.

https://www.youtube.com/watch?v=zBjK3BzUu5A
https://www.youtube.com/watch?v=AQEJqnopt60

At the moment I'm just writing my own custom module that links to the Menge third-party library. I'm curious from this dicussion thread if we think that Menge CrowdSim would be a valid thirdparty to be included and mantained in the godot repo, or if it is something that should be a separately maintained module repo.

This is related to this large discussion on engine bloat and addon bloat.
#19486
Personally, I'd like to see Menge in thirdparty godot. I suppose it could be a compile option so that mobile developers can avoid bloat, but I think agent avoidance is a very nice standard out-of-the-box feature to have. Optional addon downloads with c++ libraries is not ideal (or at least I haven't experienced a good workflow of it yet).

@Calinou
Copy link
Member

Calinou commented Jul 16, 2018

Optional addon downloads with c++ libraries is not ideal (or at least I haven't experienced a good workflow of it yet).

Unless I'm mistaken, if you're using GDNative and are releasing pre-built binaries for each platform, users should be able to download and use them without having to do anything special (they don't even need to install a C++ compiler).

There are many ways to automate binary releases; continuous integration platforms such as Travis CI are often used for this.

@pgruenbacher
Copy link
Author

@Calinou you know of any good example plugins that do this? Fwiw I'm not using GDNative for my c++ code, I'm just recompiling a fork of godot with my custom modules cause I prefer referencing the codebase itself instead of the C bindings.

@pgruenbacher
Copy link
Author

pgruenbacher commented Jul 16, 2018

@reduz I'm guessing you'll want this as a plugin instead of as a standard thirdpary but I think you'd be interested in the 2nd video. It's 13,000+ unit movement and navigation on a heightmap at 60 fps. The Menge library uses all available cores when processing. There's a Behavior state machine being used too so the behavior can be made to be pretty complicated other than just navigating while still taking advantage of the parallelism and kd-tree being made.

@pgruenbacher
Copy link
Author

I'll reopen this discussion when I have a better demo to get more attention.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants