DaemonEngine / daemonmap

Deprecated navmesh compiler for the Unvanquished game
https://unvanquished.net
Other
3 stars 1 forks source link

allow generation of ducked humans #7

Closed ghost closed 2 years ago

ghost commented 3 years ago

This should not be used until bots are able to duck, though.

illwieckz commented 3 years ago

Maybe you can rebase on current master, which has updated libRecast (and new assert code if I'm right).

slipher commented 3 years ago

So we'd just have to hope there isn't a map where a crouching passage is shorter in distance, but takes a long time to traverse.

ghost commented 3 years ago

So we'd just have to hope there isn't a map where a crouching passage is shorter in distance, but takes a long time to traverse.

Yes, this is an issue. Ideally, we would want to have the crouch information inside the navmesh, and while we would be there (just had the idea), have navmesh generated to note when a jump would be required, so that those informations could be used by the path finding code. Unfortunately, I do not (yet?) know how to put those info in navmesh, nor if it is even possible.

It is possible to workaround "jumpable areas" by manually adding navmesh connections (they suffer from the same problem about lack of metadata though), but this does not apply for "crouch areas", which effectively makes places unreachable at all. This is why I think this solution (generating navmesh for "crouch area") is worth the problems it might create (I know no map which would suffer from it, but I clearly don't know all the maps). If this is really a problem, I suppose we would have to re-patch daemonmap to re-change the value :S (ideally, this should be a parameter, I know, but same for the mins/maxs anyway: they should not be hard-coded).

Another solution would be to generate several navmeshes, but this would require more patching game-side, and would probably have other drawbacks.

slipher commented 3 years ago

OK, seems worth a shot.