After some days off this project is back on track. Here little something to get you across to the new year: Navigation Splicing. The last time I showed navigation blockers carving out form existing navigation meshes. Now the last piece is into place. Navigation spaces can now have integrated blockers. This way they do not only carve out other navigation spaces they also splice in their own into the resulting holes. While doing so edges are automatically split to allow proper snapping together. This allows to dynamically upgrade navigation meshes by not only blocking existing path but also opening up new path for the AI. It's all working automatically without extra work, especially no re-casting of nav-meshes for example.
So what will this be used for in Epsylon? Actually for two things. First it helps to speed up creation of maps. Locations can be quickly created by placing a generic nav-space like rooms in LEGO style and placing in them various other objects. Navigation is automatically calculated at run-time to produce believable AI. The second use is for dynamic story telling. For example if you have to snoop around a place (or rescue somebody) the "location" is dynamically modified before first use to give you a unique experience with every play-through. This applies also to other situations. With this the final word is spoken for the navigation system in connection with meshes.
Another little upgrade happened in the conversation system. The conversation window received some touch-ups and has been reworked. The conversation control stay now out of your view while a conversation part is running showing up only when you need them. Furthermore scripting has been modified to allow for more game mechanics to be implemented later on using the conversation system. The entity display has now colored icones so the player better finds what he's looking for. Filtering has been also experimented with but will not be finalized until later on with more content to test what is really needed.
So here is the video. It shows the navigation splicing in action in the editor (shows how the path adjusts itself) and in-game (how AI can use dynamically altered navigation spaces). Furthermore the reworked conversation window in action.
Besides this there had been some other changes here and there:
- Added "Limit" animator rule. Allows to clamp dynamic animations to avoid strange positions.
- Added OpenAL speaker management to deal with hardware limitations.
- NPC activation/deactivation work in progress on distance and zone based switching (trying to get more performance out of it)
More to come in January.