Any suggesgions for a racing car AI?

820ce9018b365a6aeba6e23847f17eda
0
geon 101 Oct 14, 2009 at 17:18

I’m working on the AI for my racing game. Does anyone have any suggestions or advice? Google doesn’t turn up much.

So far, I have a basic waypoint system set up, so the AI caes follow the track. I also implemented a system of raycast “whiskers”, so the cars can do some simple obsacle avoidance.

The proble is, they get stuck in corners way too easily, and generally look stupid.

Any ideas, hints or links would be appriciated.

6 Replies

Please log in or register to post a reply.

8676d29610e6c98d6dd2d9c38528cd9c
0
alphadog 101 Oct 14, 2009 at 18:09

There’s some old stuff here:

http://www.aiwisdom.com/bygenre_racing.html

There’s Craig Reynold’s stuff online on flocking/swarming.
http://www.red3d.com/cwr/steer/

Also check:

http://www.gamasutra.com/view/feature/2484/using_particle_swarm_optimization_.php?page=1

This should give you more than enough keywords to help make Google your b**ch… :)

820ce9018b365a6aeba6e23847f17eda
0
geon 101 Oct 15, 2009 at 13:05

Thanks for the links!

And I should mention that the game is for the iPhone, so it needs to be light-weight.

820ce9018b365a6aeba6e23847f17eda
0
geon 101 Oct 19, 2009 at 15:59

Update:

I have the pathfinding working great now. I implemented this: http://www.red3d.com/cwr/steer/PathFollow.html pretty much verbatim.

I want to combine it with some kind of obstacle avoidance. This:

http://www.red3d.com/cwr/steer/Obstacle.html
or preferably this:

http://www.red3d.com/cwr/steer/Containment.html
would be great.

However, I don’t have access to the same data. I can raycast into the scene or selections of it, and read the normal, position, object etc. from the hit, but that’s pretty much it.

The “Obstacle” algorithm in the links use the center of the objects, which I guess would work fine for circles, but I use mostly boxes. The “Containment” algorithm use a general interface where it query the wall for the nearest-point-on-surface. I don’t have that available in my engine (Unity), and I don’t think it’s feasible to implement it as a script. It also seems to work best with rounded corners.

Any other ideas?

6f0a333c785da81d479a0f58c2ccb203
0
monjardin 102 Oct 26, 2009 at 16:47

I recall reading an interesting interview with the developer of a rally car racing game that used neural networks. I believe this is it.

820ce9018b365a6aeba6e23847f17eda
0
geon 101 Oct 27, 2009 at 01:45

Thanks, monjardin. An interestng artcle. I had some thoughts about neural nets or whatnot, but I think that’s out of my league for now. The actual path following works great as it is, while the obstacle avoidance could use some work.

I’ve implemented an epic hack to solve the problem of cars getting stuck. When they are off screen, i simply move them back on track if they have been too far frm the center of the path for too long. It works pretty well!

5ccedf5e0f538b594eb578f003ade3eb
0
Hyper 96 Nov 02, 2009 at 04:49

@geon

i simply move them back on track if they have been too far frm the center of the path for too long. It works pretty well!

I remember a few games that did that bullshit, it annoyed me… ‘Cause I knew they couldn’t pop back on the track that fast.