XNA 4.0 , AI Library

Started by
8 comments, last by MohammadAhmed 10 years, 12 months ago

Hello ,

I have physics in my game and Animation , and all I need next is do some AI ( enemy wanting me so when I am closer to him he attack ) that's it , any suggestions ??

I try SharpSteer , but I don't know yet how to use it for my 3D Models and add AI for them based on sharpSteer ?

So say what you know about this and I will be happy for all suggestions :)

Advertisement

...and all I need next is do some AI ( enemy wanting me so when I am closer to him he attack ) that's it , any suggestions ??

Learn about vector length and dot product and thats it. Example.

Look into creating your own Finite State Machine.

Basically, each enemy has a bunch of possible states (enum EStatus { Standing, Walking, Attacking, Dead, Searching } and you query his state each frame and based on the state apply the logic - e.g. if he is Dead - don't do anything. If he is Standing, you want to check if the distance between him and player is within certain threshold, at which you will switch his state to Seaching (e.g. approaching player until he is within shooting distance - e.g. Attacking state).

Just make sure you have all states planned out on the paper beforehand (and especially the transitions between states).

VladR My 3rd person action RPG on GreenLight: http://steamcommunity.com/sharedfiles/filedetails/?id=92951596

Thanks belfegor :) you are always great I had studied Linear algebra before so I am good with it but I want suggestions on how to do some AI for example using SharpSteer , by the way I will check it out :).

VladR , Thank you so much , yeah I know what you mean and I have all the status {Attak , Run , Idel ........ } , but for example can you provide me some code on how can enemy follow me or chase me ?? ( if you know SharpSteer can you give example ) if you don'e know sharp steer , can you give some code for attacking or chasing ??

yeah I know what you mean and I have all the status {Attak , Run , Idel ........ } , but for example can you provide me some code on how can enemy follow me or chase me ?? ( if you know SharpSteer can you give example ) if you don'e know sharp steer , can you give some code for attacking or chasing ??

Well, if you want some up&running, I'd start with the Attack State - e.g. approach the enemy who is in Idle state and let him switch to Attack state automatically when is close enough to attack you and reduce your health.

For the Searching/Chasing State - well this is the realm of Pathfinding and there are quite a lot of different ways how you can tackle it. It all depends on your internal representation of the walkable area in your level - do you use artist-made navigation meshes ? Or perhaps your level structure can be represented as lots of quads - in this case you can look into the A* algorithm.

Do a search on pathfinding and figure out what would work best for your game.

VladR My 3rd person action RPG on GreenLight: http://steamcommunity.com/sharedfiles/filedetails/?id=92951596

Ok , thank you VladR , I am now doing some AI ( Attacking ) so I will post code to show you the result , so I hope you will check out my posts from from time to time :)

I forgot to mention one thing.

It is immensely helpful, if you can bring up (upon some keypress) an overlay with debug info on current enemy, especially the current state and other important variables.

Once you start testing whether the code behaves, you don't want to browse through logs figuring out and guessing what hapenned when.

You wanna see it right there when it happens, that exact frame, when enemy switched from Idle into Attack (or other) state.

It will be helpful when you expect him to switch to other state, yet you can see right away that his state didn't change - this helps during debugging the state machine a lot.

VladR My 3rd person action RPG on GreenLight: http://steamcommunity.com/sharedfiles/filedetails/?id=92951596

Thanks so much :) brother , do you have resources or websites doing this ? , I am doing what you said VladR and I will soon post some code .

You could start with simply writing text to the screen (XNA does support that with the SpriteFont class), different colors for different states, positioned over your models. Draw lines for vectors (where is he heading?). Probably also useful if you can freeze your game and move around with the camera freely.

thanks unbird for your great advice :) I am doing all what is being said before and also what you said ? I will post the results soon .. so I hope you will keep in touch

This topic is closed to new replies.

Advertisement