Visiting guest. Why not sign in? |
News, knowledge and discussion for the AI enthusiast.
FEATURES |  | COMMUNITY |  | KNOWLEDGE |  | SEARCH |
Understanding Artificial Intelligence Comprised of critically acclaimed essays by the world's leading experts on each topic in the series, these collections will become definitive texts on crucial issues of our technological times. More information at Amazon US UK |

AI Steering How to steer AI controlled characters in a 3D envrionment
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 | 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! | Alex J. Champandard 934 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 | 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 | William van der Sterren 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 | Jurgen Van Gael 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 | Jurgen Van Gael 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 | William van der Sterren 19 posts. Monday 21 October, 09:09 Reply