Jump to content
  • Advertisement
Sign in to follow this  
hoffman_jwr

AI Technique (for a game) - YOUR OPINION!

This topic is 2875 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi there, I am developing an action shooter that requires some simple AI. I have some ideas about some potential design patterns, however I am interested in grabbing some other people's suggestions about a plan of attack. Let me tell you a few things about what is required:

The AI is constrained to an area on the one axis (they can only move left and right). Opposite this is the player who is also confined to a single axis. In the area between the AI and player, there are obstacles that provide cover / shielding. The AI can rotate and shoot using a variety of weapons. I need to have varying behaviours for the AI e.g. defensive, aggressive, etc to give the illusion of varying personalities.

At this stage, I am thinking a simple finite state machine as a starting point.

Perhaps fuzzy logic may be suitable? What do you think? Are there any other AI techniques that you think would be appropriate? Thanks in advance.

Share this post


Link to post
Share on other sites
Advertisement
1. Build a prediction and aiming system so the enemy can use each weapon, predict where the player is moving to, plot an intercept, check the line of sight of the weapon to ensure it won't hit any shielding.

2. Build a dodging system for the AI to use cover and avoid incoming fire.

3. Once you have those working 100% then you can start working on the higher level decision making stuff. Basically each 'personality' you want to implement will have different parameters to those two systems. You will also need to build in weapon switching logic.

Share this post


Link to post
Share on other sites
Quote:
Original post by Noggs
1. Build a prediction and aiming system so the enemy can use each weapon, predict where the player is moving to, plot an intercept, check the line of sight of the weapon to ensure it won't hit any shielding.
I think you are combining two concerns in this item: predicting enemy movements, which sounds like a good task for various heuristics and/or for rather black-box learning, and knowing how to shoot any weapon at any location and any time, which seems suitable for straightforward computations of line of sight, bouncing, etc.
The interface between the two parts of shooting is, of course, the prediction result: the enemy will be at place x at time t with a certain probability.
Quote:

2. Build a dodging system for the AI to use cover and avoid incoming fire.
This is the same problem as aiming, applied to the opponent. The result of both could be combined into a map of places that are good to shoot certain regions of the map or offering cover from certain regions of the map, ready for the higher level decision of where to go.
Quote:

3. Once you have those working 100% then you can start working on the higher level decision making stuff. Basically each 'personality' you want to implement will have different parameters to those two systems. You will also need to build in weapon switching logic.
I think the main variations would be weapon choice, propensity to shooting vs staying in cover, use of suppressive fire, and artificial degradation of accurate aim and movements.

Wouldn't the game degrade into a boring standoff if both parties keep cover indefinitely, or a trivial slugfest if enough obstacles are destroyed? Will the player be able to do something clever?

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!