Sign in to follow this  
vbuser1338

Ai for racing type game

Recommended Posts

I am making a simple boat racing game where you race around a loop against other racers. I have the player going around but now I have to start working with the racers. I am trying to figure the best way to get a boat around the loop. The three I have are: Pathfinding: Use something like A-star to search to the next checkpoint/waypoint Rule Base System: Drive straight and check if we are going to crash and avoid it WayPoint: Go to the next waypoint and then continue to the next although I think this would look unrealistic and they would all be going the same way. Does anyone else have any suggestions on how to implement some sort of driving AI or any good articles I could read on driving AI because the only one I found Used the last option which I don't think would work too great. Thanks for any help or suggestions, vbuser

Share this post


Link to post
Share on other sites
The waypoint system doesn't have to be linear, you could just use it as a guideline to tell the AI the general direction it has to go in. The actual movement could be as erratic as you want it (by adding degree of randomness and error). It could be programmed to accept that it's touched a waypoint when it goes within a certain radius (this lets it do wide curves and such, without it trying to get to the exact point the waypoint is at)


(excuse the crappiness of my diagram...)

Red = waypoint
Pink = Area around each waypoint (error margin)
Cyan = AI path taken

Not sure how feasible this is but maybe you could use each waypoint along with an interpolation function to calculate a more curved path.

Share this post


Link to post
Share on other sites
Thanks for the reply. I think I am going to use a combimation of a rule-base system and the way-point system. The rule system will be for avoiding other racers and I think I will have the checkpoints all the way across since I already have them there for the players. I think the only problem I will have will to get it to go in somewhat reasonable path. Again thanks for the reply.
cya,
vbuser

Share this post


Link to post
Share on other sites
im about to do a racing game and had the same question, but seems like I found my answer without asking, but what is the interpolation function?

Share this post


Link to post
Share on other sites
That was a stupid idea actually. You're probably best calculating the angle between the waypoint and the car (atan2(car_y-wp_y, car_x-wp_x)) then just rotating the car gradually until it reaches that angle. That should simulate turning around corners

Share this post


Link to post
Share on other sites
I've only made one racing game (Hurryhover). However, I did make it in one weekend and it had AI which was fairly difficult to beat and didn't cheat.

The checkpoints for human players (and for scoring purposes) don't need to be the same as waypoints for the AI.

In fact, it probably won't work if they are.

I found that I had far more AI waypoints than checkpoints. Checkpoints were used by the game manager to determine who was winning (basically, to tell when you'd done a lap). AI waypoints were used by the AI (which was totally separate) to work out where it needed to go.

I used a sort of lookahead system, where I not only looked at the next waypoint, but also the one after, and worked out the angle between them.

This meant that on sharp corners, the AI could realise that it needed to slow down and do so as necessary.

I was going to implement different "personalities" for the different opponents, just by tuning the same AI algorithm slightly differently (one would be cautious, another reckless).

Bear in mind that you don't always need to wait until you reach a waypoint before moving to the next - you could look ahead a certain distance, which could make the AI better. It just needs lots of tuning.

AI on lots of racing games cheats. This is of course, a cop-out. But mine didn't :)

Mark

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this