# What would be the best way to do ai

Hi im currently developing a basic ai for my tank game found here

what i was thinking is raycast from the tank and if encounters a well it would turn and move away from it and if it finds the player shoot at it and just constanyly add a force to it apart from when shooting.

can you guys give me some ideas maybe some examples and stuff

Easily the best all-round reference to all aspects of game A.I.

State machines are my personal favorite for AI. Create a base class for Stats and the AI just has to have 1 (because it sounds like a simple game) state running at a time. Each state can reference other states to change to when conditions are(nt) met.

A good option for a basic bi-lateral movement ai would be a group of raycasts or spherecasts being projected by the tank object, to the front and rear. Just like a tank would move.

If one of this hits an bject, you can calculate the distance from this last one (or not) and use a proportion to add force to the tank. For example, if the tank has a rock 50 meters ahead, it doesn’t need to overdrive backwards instantly at full steam. But instead, if it has a rock 10 meters ahead, it should decrease it’s speed a lot more and in Unity terms, you should add a bigger force backwards.

This relation between the distance and the force can be, for example, 60 -distanceFromCollider, where the length of the raycasts/spherecasts is 50.

Lateral movement may be a little more complicated. If the tank detects an obstacle in front of it, you can make it backwards and, at the same time, rotate it right or left. This will create a realistic tank movement as you use the AddRelativeForce property. And after moving for a while backwards, you will be able to engage the player again.

To do this, you will need to set an angle between the tank’s cannon (or front) and the player position. If the angle is lower than a certain ammount of degrees, that means that the accuracy is enough to engage. You can go forwards, attack, as long as this angle is fine.

ok guys after reading alot more about ai i have come up with a solution that works like a charm i every second a empty game object drops out of from behind my player the ai is constanly searching for theese game objects and when it sees them it begins to follow them if it spots the player i call the shooting function and it works perfectly you can try it out on kongregate if you are interested in seeing it