Artificial Intelligence Depot
Visiting guest. Why not sign in?
News, knowledge and discussion for the AI enthusiast.
FEATURES COMMUNITY KNOWLEDGE SEARCH  
The Elements of Statistical Learning
Describes important statistical ideas in machine learning, data mining, and bioinformatics. Covers a broad range, from prediction to unsupervised learning, including classification trees and neural networks.
More information at Amazon US UK

Reply to Message

Not registered yet?

The AI Depot has a focused community of friendly users. Rather than let anyone abuse the site at the brink of promiscuity, we prefer to let only those with an active interest participate... this simply requires registering.

Why not sign up!

Joining the site's community is completely free. You can then post messages freely, and customise your personal profile at will. Specific privileges will also be granted to you, like being able to access printer-friendly articles without restrictions. So, why not register?

Username:
Password:
Subject:
Email me when someone replies.
Body:

Parent Message

AI Steering

Hi,

I am currently implementing a sort of submarine and currently working on the steering code. What I am looking for is a sort of patrolling behavior (the game uses waypoints for navigation) around these waypoints.

What would be the best way to implement steering. My best guess is to calculate angles and just turn around. I also tried using quaternions (slerp) but my game requires me to calculate roll, yaw and pitch from this quaternion which is quite heavy on the cpu. Any pointers on how you guys implemented steering ...

Thanks,

Jurgen Van Gael

7 posts.
Monday 15 April, 17:20
Reply
Efficiency vs. Interesting Behaviours

It's a tradeoff, depends how much processing power you have available for this task.

Simple linear interpolation from the position to the target will be cheapest, but ugly.

Using splines might be more "organic" looking but more expensive, and not a very natural way of handling things. Plus it may spline into obstacles.

I'd go for a reactive behaviour approach, like Craig Reynolds work. Steering Behaviours For Autonomous Characters The submarine has a orientation and velocity, and it's your job to steer it towards desired points (that's what the equations do).

Let me know if there are any problems!

935 posts.
Monday 15 April, 17:25
Reply
following the calculated path

Ok,

Back again, after my exams I started coding again. Your suggestion was very helpful. I got to the part where I calculated the desired path. But the problem is how to stay on that track.

My sub can roll/pitch/yaw/up-down/left-right/forward-backward that makes 12 directions of "flight". The problem I am having now is suppose I know I need to go to a waypoint left of me, should I now yaw left, or roll 90 degrees and start pitching, and roll back again. (Or should I even move left ...) The only thing I know is that certain steering behaviors are much faster than others (rolling > moving left)

Hope you understand my question,

Jurgen Van Gael

7 posts.
Wednesday 07 August, 18:54
Reply
path following with contraints on turning and size

Jurgen,

your problem does not have an easy solution, but there are a few articles that seem to address it.

Have a look at Marco Pinter's article for Gamasutra on "Toward More Realistic Pathfinding". He explicitly deals with vehicle facing and turning radius.

See: http://www.gamasutra.com/features/20010314/pinter_01.htm

Patrick Smith (of C&C:Renegage) also covers path following with constraints on turning radius and dimensions (in Polygon Soup for the Programmers Soul: 3D Pathfinding):

See: http://www.gamasutra.com/features/20020405/smith_01.htm

William

19 posts.
Monday 12 August, 12:11
Reply
Thanks

Hi,

Thank you very much for providing these references. I checked them out and the second indeed hints what I might start doing. I think checking out some fssim-autopilot resources might give me a clue on how to implement navigation.

Thanks,

Jurgen

7 posts.
Monday 12 August, 16:41
Reply
Steering _ The Sequel

So I experimented with some techniques and I liked the technique to precompute a path (curve) and have the vehicle try to follow that curve.

Now the problem which I stumbled upon is that every frame the vehicle calculates how far it is from the path and calculates steering corrections etc. Now these calculations ask a lot of cpu resources (angle calculation, distance calculation ...)

So my new ( & hopefully last question on this subject would be) if you guys in your games just let the vehicles follow the path by just assigning it the right position, or do you actually make it more "intelligent" and let the vehicle calculate the needed steering corrections and let the physics do their job afterwards? (aka is cheating "allowed" or "common")

Thanks for your help,

Jurgen

7 posts.
Sunday 13 October, 20:34
Reply
steering - actual CPU load

Jurgen,

do you just _feel_ that your computations are expensive, or did you actually measure the CPU utilization? I'd be surprised if the computations really turn out to be expensive (assuming you run the vehicle at some 30Hz or less), unless you're coding for a GameBoyAdvance (ARM processor without floating point hardware).

For an Intel based system, you may want to download the (free) AMD CodeAnalyst profiler. It will provide you with feedback on the actual time spent on AI (and where that time is spent).

William

19 posts.
Monday 21 October, 09:09
Reply

Back to the Artificial Intelligence Depot.