![]()
Visiting guest. Why not sign in?
|
|
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?
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 |
|
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! |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
Back to the Artificial Intelligence Depot.