Jump to content

  • Log In with Google      Sign In   
  • Create Account


XNA 4.0 , AI Library


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
9 replies to this topic

#1 mrmohadnan   Members   -  Reputation: 278

Like
0Likes
Like

Posted 28 April 2013 - 02:26 PM

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  :)

 



Sponsor:

#2 belfegor   Crossbones+   -  Reputation: 2493

Like
1Likes
Like

Posted 28 April 2013 - 02:47 PM

...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.



#3 VladR   Members   -  Reputation: 722

Like
1Likes
Like

Posted 28 April 2013 - 05:33 PM

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

 


#4 mrmohadnan   Members   -  Reputation: 278

Like
0Likes
Like

Posted 29 April 2013 - 03:49 AM

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 ??



#5 VladR   Members   -  Reputation: 722

Like
1Likes
Like

Posted 29 April 2013 - 10:48 AM

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

 


#6 mrmohadnan   Members   -  Reputation: 278

Like
0Likes
Like

Posted 29 April 2013 - 04:19 PM

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 :)



#7 VladR   Members   -  Reputation: 722

Like
3Likes
Like

Posted 30 April 2013 - 12:45 PM

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

 


#8 mrmohadnan   Members   -  Reputation: 278

Like
0Likes
Like

Posted 30 April 2013 - 04:09 PM

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 .



#9 unbird   Crossbones+   -  Reputation: 4955

Like
1Likes
Like

Posted 30 April 2013 - 04:22 PM

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.



#10 mrmohadnan   Members   -  Reputation: 278

Like
1Likes
Like

Posted 03 May 2013 - 01:40 AM

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






Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS