Dynamic AI Project[Navigation Released]

Important note on help questions: I am very busy with many projects, and I run several threads. However, you are far more likely to get a response by simply sending me a PM right here on the Unity forums. Just specify which package and what your problem is.

DYNAMIC NAVIGATION 1.1 IS NOW RELEASED AND ON SALE!

Asset Store Dynamic Navigation | Behavior AI | Unity Asset Store

Welcome to the Dynamic AI project. This is an early look at the beta stages of this AI project. All of what you currently see will drastically improve and evolve.

NEW HELP/TUTORIALS PAGE! http://forum.unity3d.com/threads/159725-Dynamic-AI-Project-Help-Page?p=1092936#post1092936

The purpose of Dynamic AI Project, is to create the most powerful shooter based AI system the indie Unity community has ever seen. I strongly believe Indies should have access to AI at this sort of level, because it is just not plausible for an Indie to put this much focus and time into their AI while trying to build the entire game itself. I am very excited about this project, I decided to reveal this at a fairly early stage cause I need your input! I want to build this AI with the community. This will work with all versions of Unity, and hopefully most platforms.

DYNAMIC NAVIGATION 1.1 IS NOW AVAILABLE!

NEW VIDEO

Web Demos!

NEW DEMO!

Here is the new demo for verion 1.1! Its a very complex scene with both indoor and outdoor. The AI’s have jumpable areas, as well this entire map was made with a low resolution of just 150*150!. Command 3 units to follow you, go to a specified location, or explore the environment!

http://dl.dropbox.com/u/65183439/DynNavDemo1.1/WebPlayer/WebPlayer.html

Obstacle Course

Here is an obstacle course which is an older demo. It demonstrates just some of the possibilites of this Navigation engine. This course contains everything from, elevators, dynamic moving objects, to jumpable areas. Watch the AI Spaceman navigate all these complex areas!

https://dl.dropbox.com/u/65183439/Navigation%20Demos/Navigation%20demos.html

Stress Test

This is the same level as the Obstacle course, but a stress test. This demo contains 130 AI’s navigating to randomized targets around the level. I could have added more units to this, but things got too chaotic with the amount of space they had. Enjoy!

https://dl.dropbox.com/u/65183439/Navigation%20Demos/Stress.html

DeDust2 Demo

Try the new Navigation demo. This demo demonstrates follow navigation, and randomized patrolling/exploring navigation. There are 5 patrol points/areas the AI choose at random when exploring. The location is in Dust2 from Counterstrike!

PS, remember even the navigation is still in beta.

Instructions: WASD to move around, mouse to look around and fire. Order Units with num keys and top.

WebPlayer: https://dl.dropbox.com/u/65183439/dust2/WebPlayer.html

First Video Teaser!

New demonstration for dynamic obstacle and grid features

__**Dynamic Navigation**__

The pathfinding engine has been in the making for 3 months full time. I set my goals extremely high in this and have accomplished more than I ever dreamed I could.

Navigation Grid Generation

Generate infinite multilayer high resolution grids in the editor or in game. The size of the grid has very little to no effect on performance. I worked many hours designing smart algorithms for maximum performance. I have tested grids up to over one million nodes. The time it took to generate a grid of that size was still only in the seconds. It does not matter what geometry/terrain or how many layers, it just works.

Completely Dynamic?

Grids generated can be 100 percent dynamic. Objects of any size or shape without rigidbodys, can be moved, rotated, or scaled and the grid will update the footprint. This gives this navigation an upper hand over most navigation systems that exist for Unity engine. Many Navigation systems claim having dynamic features, but often these are limited to rectangular shapes that often cannot even be rotated or scaled.

400x400 High Res Navigation Grid(Generated in 3.5 seconds).

Multi-Layer Test.

Pathfinding Movement

The Pathfinding and movement is something I did not slack off on. All paths are dynamically generated through modified A* methods. In the AI Navigation inspector, the user has control over the speed at which the AI calculates his path to both moving targets and static targets. The user can also control the max node distance the AI will look for his target.
AI have smooth pathfinding with advanced movement. When the AI is in combat or has a strong focus, he will side strafe or run backwards in order to keep focus on the target. This enables massive flexibility in combat with player like movement. This is also something the user has control over.

New Portal Navigation Feature

In the picture below, you may ask, “What is the purpose of those purple cylinders?”. This is a very useful feature I came up with called, “Navigation Portals”. These purple cylinders, are the answer to many common problems in modern pathfinding. “What exactly do they do?”. Navigation portals create an extra connection between any 2 nodes you wish, but each side can be dynamicaly moved, opened, or closed. The uses for these are endless. Some of the many uses may be, portals, ladders, elevators, jump-able areas, roads/path preference, doors, steep stair cases, or areas which are too tight/small for the grid resolution you have chosen. I guarantee you will become addicted to this tool once you discover its true potential. :slight_smile:

Screen shot of demo scene included. AI uses an elevator in his navigation

Screen shot demonstrates a jump-able area.

Stress Test(240 AI 43 FPS, 54 FPS without debug)

Multiple AI pathfinding through complex terrain and indoor environment to a target.

**__Combat__**

I cannot give too much info in this area because it is in very early stages but heres a look at what I have so far.

The combat is designed with flexibility in mind. All the stats and general behaviours/characteristics of their combat, is all controlled through simple skill percentages. This gives the user a ton of flexibility for controlling the difficulty as well as tactics and movement amount.
The AI currently have the ability to fire while running by side strafing or running backwards(When needed) in order to keep focused and aimed at his target.
The AI also have the ability to use any weapon you put in his hands. You can specify how often he fires and what type of weapon he is currently using.

Multiple AI in team combat.

**__The Future Of Dynamic AI Project__**

Here, I’m going to give you a look at the features I am currently working on in this project, as well as other features I hope to accomplish.

Goals For Navigation

I have already started on ladder/elevator/portal Navigation. The user will be able to specify elevators or ladders or any form of transportation/shorcut that is not a physical connection, and the AI will be able to use these in his navigation.

And finally, dynamic cover system. I believe this is very important in a modern shooter and I am going to make sure this is accomplished. My goal in this area is for the AI to dynamically analize his environment with similar algorithms used for his pathfinding, to identify near by potential cover zones from his current enemy.

Goals For Combat Behaviour

There is still much work to be done in this area. One thing I feel is necessary is control for more unpredictable combat behaviour. I would also like the AI to be able to attempt to analize his enemy’s movement/aiming and dodge based on that.
Complex tatics are also something I would like to implement(Which includes team tactics).

More information coming soon.

Now this sounds interesting! Especially the dynamic grid creation. Can it be on the fly, like for procedural levels and the such?

Yes if the grid is not to large, this is possible. :slight_smile:

Sounds great, for procedural levels could you add in-game joining/welding of pre-generated grids? So when joining pre-made level pieces you could also join the pre-made pathfinding grids?

Also it would be great for navigation to include cover based navigation like mantle/vaulting over cover.

I’m verry interested in this system.

Yes I am in very early stages of building in many powerful features into the navigation(This includes cover). But to answer your first question, you likely wouldn’t need to do that. Because the grid generates so fast, it is possible for the grid to be generated in sections during gameplay. Just as long as these sections arent too large.
Its a bit early for me to be talking much in the dynamic area of this pathfinding, but I will have more info soon!

Nice, it would be cool to just generate the grid around the player in-game. Do you have an aproximate release date?

I would like to release this in less than a month. The first release might be a beta.

I would love to know your thoughts on things so far. Feel free to put any requests for behaviours or navigation. :slight_smile:

Sounds good with the dynamic path-finding as for the behavior’s stuff not sure its a large technical subject

user defined state machine: When Health < 10 pathfind to [tag] (Health pack) or pathfind to tag (Cover)

user defined state machine: When Ammo < 10 pathfind to [tag] (Ammo pack)

of course these two state’s would be on Hold overridden if the AI was under-fire

weapons probably need a user defined lookup table so the entity can select the best weapon on what they picked up from either dead AI or ones at ammo stash’s.

Oh yes, these are all things I will go into alot of detail with. I’m still in the ground work stage of most of the main features though.

Yes, generating the grid around the player on the fly would be amazing. And then have it take into account memory of course so if you walk in X direction forever on different terrain it just works. I think would be the future of A.I navigation, and also making really simple for beginners to prop their levels with A.I(not worrying about setting up any grids at all).

For sure. I mean there are always things you need to setup. Like the grid resolution, the cube sizes of the grid, as well as the capsule collider size for the collision detection of the grid. But yes setting up a grid is extremely simple and very fast. :slight_smile:

Bump!

It would be cool if you can release the navigation only component first, I’d definitely get it if it has:

-in-game generation of the grid around the player, update grid only around player, navigation only around player, can be based on a specified radius around the player
-navigation to include vault/mantle for low-cover points (sandbags,etc.)
-IOS/Android compatibility

First video teaser!

For sure, thanks for the interest!

If you purchase Fantasy AI, would you need this one, too? I’m doing a medieval game, not a shooter game.

This is a completely new AI system designed for shooters. If you want to be able to use the powerful navigation engine for Fantasy AI, theres a poll at the top where you can vote for that! :slight_smile:

I may have missed this in the thread, but there appears to be an option from the poll missing - I’m interested in having an AI subsystem which can make used of unity3d’s built-in navmesh API - is that going to be handled through an abstraction layer from a specific nav implementation to allow for different navigation apis or will your AI assume the use of your own nav grid implementation?

Yes I will do my best to make it possible to use other navigation systems. But the whole point of this navigation was to make one thats so powerful and well integrated with the AI you wont want to use another one. My goal is to make this one of the top Navigation systems for Unity. It still has a ways to go.