Interested in participating

Join the team. This area is for people who want to participate in OpenMW's development in one way or another.
User avatar
duststorm
Posts: 8
Joined: 02 Sep 2012, 09:25

Interested in participating

Post by duststorm »

Hello all,

I'm writing to express my interest in participating on the openMW project.
Some of you might already know me from the Ogre3D forums, where I am active as well.

Currently I'd be more than willing to participate in designing and coding part of the AI system for the game. I've understood that this is the right time to chime in on this subject as it's coming up on the roadmap.
If you are interested in a cooperation, I think it would be beneficial if I can be included in the discussions regarding this subject.

I see the opensource recast navigation library as a very good candidate for including in the engine to do the pathfinding. At least the navmesh building part (be it in the engine or the editor), it still remains to be seen whether the vanilla pathfinding and following code can be used in the engine.

I'm the author of a Recast integration wrapper for Ogre3d and have already built up a good understanding of the library and its workings. I'm also familiar with a good bit of recent developments and literature in the game AI area and would love to apply this to the openMW engine.

Currently I'm in the progress of incorporating the recast library in a project of mine, and doing this I'm gaining some useful insights on how it can be used in an actual application.

I would love to hear from you guys.
Cheers.
User avatar
scrawl
Posts: 2152
Joined: 18 Feb 2012, 11:51

Re: Interested in participating

Post by scrawl »

Howdy, duststorm. Great to see you here :D

Here's my understanding of how pathfinding works in Morrowind (others may correct me).

The main thing responsible for the pathfinding in dungeons and towns is the path grid, created manually in the editor. If an NPC wants to get from A to B, he picks one point on the grid that is near A and one near B.

However this pathgrid is not available in the wilderness, which leads us to the major drawback: Escorting AI.
The NPC that follows you remembers every one of your moves and takes exactly the path that you took. If you run in circles for a minute and then continue, the NPC will do the same. If the NPC somehow gets interrupted (e.g. by a fight), then it will try to walk up to you. And it does that by simply walking to you, ignoring any obstacles in the way. Of course they get stuck a lot this way.

recast looks really cool. You can throw any geometry at it, and it builds a navmesh?
User avatar
duststorm
Posts: 8
Joined: 02 Sep 2012, 09:25

Re: Interested in participating

Post by duststorm »

scrawl wrote:recast looks really cool. You can throw any geometry at it, and it builds a navmesh?
Yes, exactly. This process can be incorporated into the editor, so an artist can auto generate a navmesh and then manually edit. Or you can trust recast completely (not that crazy an idea, as it performs really well) and let it auto generate the navmeshes on the fly (for example when loading an area, load times are mostly hindered by I/O delay, so the CPU probably won't have that much to do anyway, on multi core systems this is even more the case).
As a matter of fact, recast already seems integrated in the original Oblivion creation kit.

There are two ways it could be integrated:
- only use it to generate navmeshes (it's primary purpose and merit), use a custom pathfinding implementation on these navmeshes in-game.
- also use the pathfinding component (modified or vanilla) that comes with recast, especially the RVO steering can be very nice to improve crowds behaviour in cities.

scrawl wrote:However this pathgrid is not available in the wilderness, which leads us to the major drawback: Escorting AI.
I'm not that familiar with the pathgrid yet, so I should investigate the concept a bit more.
From how I know the ES engine, apart from a local navmesh grid, we would also need to have a more coarse grained waypoint graph with weights that symbolize distance to do navigating of NPCs over large distances (areas that are not currently loaded), as well as for calculating the time needed for player auto-travel.
User avatar
Zini
Posts: 5538
Joined: 06 Aug 2011, 15:16

Re: Interested in participating

Post by Zini »

However this pathgrid is not available in the wilderness
That entirely depends on if the creator of the wilderness cell placed one.


Anyway, we are not quite ready yet to tackle AI and pathfinding, but we should be in 2-3 weeks. It's definitely on the list for 0.19.0.
User avatar
duststorm
Posts: 8
Joined: 02 Sep 2012, 09:25

Re: Interested in participating

Post by duststorm »

Would be nice if the openMW AI could deal with troubles like this more gracefully:
http://www.youtube.com/watch?v=5LFxP4i9hX4
http://www.ai-blog.net/archives/000152.html
User avatar
Lazaroth
Posts: 220
Joined: 30 May 2012, 05:04

Re: Interested in participating

Post by Lazaroth »

Welcome! This sounds very cool! The pathfinding in Morrowind was horrendous. I would love this implemented since baby sitting followers is high on my Morrowind problems list.
User avatar
duststorm
Posts: 8
Joined: 02 Sep 2012, 09:25

Re: Interested in participating

Post by duststorm »

I made a demo of recast where you can try out the following behaviour.
You can find it here: https://bitbucket.org/duststorm01/ogrer ... o/overview
(in the downloads section there is a windows binary)
User avatar
sirherrbatka
Posts: 2159
Joined: 07 Aug 2011, 17:21

Re: Interested in participating

Post by sirherrbatka »

I love to see new developers! Welcome! :-)
corristo
Posts: 495
Joined: 12 Aug 2011, 08:29

Re: Interested in participating

Post by corristo »

Zini wrote: That entirely depends on if the creator of the wilderness cell placed one.
I think scrawl means exactly original Morrowind.esm.

duststorm
Hi there!

Regarding path grid — use tpg command in game, and you'll see what data available in vanilla MW. I think it's sufficient for interior pathfinding (I hope there's pathgrid in any interior) and for AI Wander package (i.e. for NPC to move around cities without any purpose :)

But for travels & escort yes, there's no existing pathfinding data, so Recast should fit for it's generation.

Anyway we need another high-level method to select cells in our path (so NPC won't go through Ghost Fence even if it's located on direct path from his position to destination), and only then use navmeshes or whatever to build accurate path through given cells to given point.
User avatar
greye
Posts: 47
Joined: 21 Jul 2012, 16:00

Re: Interested in participating

Post by greye »

Don't forget about water and air movement, so we also have to adopt any pathfinding to octree or similar approach.
Post Reply