Helicopter AI (Welcome to try the demo)

Hey Level1

I made a new helicopter AI based on potential fields anyone has a need for it?
wanna see it?
should i share source code and everything ?
its in the middle of development but most things are done. should i finish it then publish it?
or should i just release it let people try it? its kinda siting on the shelf gathering dust. might never finish it.

Thanks

I would be honored if anyone would like to try it. Here is the link to the raw development build:

https://mega.nz/#!jVVhgTrY!AeMa4ghz6n1VtnCQP80pkFuamimqelLj_I85Te5g194

7-Zip is needed for extraction. as well as .net i guess 4 or 4.5 it will tell you if you don't have it.

I didn't strip anything, all the editors are included too. its fun to play around with i guess.
The source comes later. have to make it read friendly and all that.

Keys:
WASD is for pitch and roll,
Yaw is locked to mouse look.
Caps lock toggles stabilizer. C changes camera. Rightclick shoots.
Shift and CTRL, increases and decreases engine power in turn the altitude.(Basically collective.)
F11 for engine profiler, you can access many things as well as disable the debug lines if its annoying.

Text on the screen shows the weight of the target field for the AI heli.
Green arrow is the visualization of Drag force.

A potential field AI implementation is assigned to the test map. A*
implementation is also available if you want to see it change AI in the
"map editor" for the Blue helicopter spawn base. i hope its easy to
find.

All of helicopter, GUI and AI is mine everything else like the tanks on the ground and robots are engine assets.

The bar on the Left is the health, get back to spawn point to repair.
please don't mind the rotor not rotating. its physics collision is on.

If by any chance you tried it i would love to hear your thoughts on it.

Thanks :)

That basically told us... nothing helpful...
What do you mean by helicopter AI? Why is it specifically helicopter? What does "based on potential fields" actually means?
Explain the basic idea what it is and what it suppose to be.
I am making a small game atm and may need an AI later on... Not really helicopters or stuff like that in the game, but depends on the basic idea I may be able to use it in the game. I may not be. But I don't know what your AI is based on and what it does...

4 Likes

You are right sorry about the short post.

Ok so basically its agent intelligence for helicopter units in game. it has limitations for ground units and also planes as its movement is based on hidden blocks in 3D space.

Potential fields is a way for path finding and collision avoidance. Where targets emit a positive field and collision objects a negative one. All entities on a map can use the sum of these fields to go toward the target away form obstacles. This is possible by measuring the field value they are in and moving towards the next block with higher field value.

Why helicopters cuz they are quite sensitive to collision and its been shown even in high budget titles they suffer from random collision with various objects. This might be due to their use of A* for helicopters while it should be a no no as with A* the path is calculated once and followed regardless of dynamic nature of the game. IE another helicopter shows up on the path.

What this dose, it will scan the map for collision object, to have a static profile of map. While keeping a list of all dynamic object for collision avoidance and setting the fields (IE enemy targets positive, friendly units negative fields). In real-time any agent can ask for its own field value and the next best movement.

Log story short its capable of handling 50 enemy helicopters and 50 friendly helicopters in a small map with close to no collisions and providing navigation to all of them. With a fraction of resource usage compared to any A* implementation.

4 Likes

I will be honest - I don't understand something like half what you said... The other half o did though...
Anyways, this is not helpful for my project what so ever, since you are talking full 3D movement and my thing is more like cross reference behavior... thing...
Still this post explains much better what your thing does, so someone may see and actually use it...
Good luck :)

1 Like

Can you please define what A* means?

1 Like

Interesting. I'm not too into Game Dev so I didn't know 3d pathing was an issue for helicopters.
Do you have a running demo of your AI in some live game engine? If so how many updates can you do of the path in a second? Also are you using Octrees or some other spacial subdivision algorithm?

1 Like

A* is a search algorithm which is used a lot for path finding in computer games.
read more about it here https://en.wikipedia.org/wiki/A*_search_algorithm.
it works like this:

Exactly yet sometimes it is used and they wonder why the helicopters collide with each other all the time.

Indeed Neoaxis engine.

Here is the thing, the Fields are constantly changing if the map is alive and not empty. While its possible to construct a path at any moment its utterly useless because at any given position the next best movement is always live and available. If numbers are in mind then here is a table of an old experiment during the development.


Also note that in table "Tick time" is in micro seconds and represents the average thread time working on the path. For A* it includes the short time of getting the next node on a valid path and sometimes requesting a new path. DC is short for Death by Collision.

Nope, But for storing the static profile of a map (sometimes reaching close to 67 million blocks) i had come up with a tree like hierarchy to save space not storing empty spaces. Ended up using 2~3 MB for the same map. hierarchy looks like this:

4 Likes

That's a really interesting explanation, I've not looked at this stuff since university, interesting read.

1 Like

Well, that was a fascinating read.

A shame I'm not a smarter man and could do stuff like this.

1 Like

As a fan of many flight sims and ARMA I found your posts insightful and fascinating. Thank you for taking the time to share :-)

1 Like

Thank you all for your motivating comments.

I would be honored if anyone would like to try it. Here is the link to the raw development build:

https://mega.nz/#!jVVhgTrY!AeMa4ghz6n1VtnCQP80pkFuamimqelLj_I85Te5g194

7-Zip is needed for extraction. as well as .net i guess 4 or 4.5 it will tell you if you don't have it.

I didn't strip anything, all the editors are included too. its fun to play around with i guess.
The source comes later. have to make it read friendly and all that.

Keys:
WASD is for pitch and roll,
Yaw is locked to mouse look.
Caps lock toggles stabilizer. C changes camera. Rightclick shoots.
Shift and CTRL, increases and decreases engine power in turn the altitude.(Basically collective.)
F11 for engine profiler, you can access many things as well as disable the debug lines if its annoying.

Text on the screen shows the weight of the target field for the AI heli.
Green arrow is the visualization of Drag force.

A potential field AI implementation is assigned to the test map. A*
implementation is also available if you want to see it change AI in the
"map editor" for the Blue helicopter spawn base. i hope its easy to
find.

All of helicopter, GUI and AI is mine everything else like the tanks on the ground and robots are engine assets.

The bar on the Left is the health, get back to spawn point to repair.
please don't mind the rotor not rotating. its physics collision is on.

If by any chance you tried it i would love to hear your thoughts on it.

Thanks :)