Edit 2009-05-16: I’ve uploaded the all latest PandaSteer code (including contributions) to my github account: github.com/seanh/PandaSteer/ Thanks to Astelix for packaging the code.
I’ve been updating my previous steering behaviors demo to steer animated, 3D characters over uneven terrain. These steering behaviors can be used to create point-and-click keyboard or mouse controlled player avatars, or mobile non-player characters. They allow a character to move around an environment in an intentional way – going to some location, following or pursuing or evading another character, and avoiding obstacles and collisions with other characters.
There’s still work to be done on this, particularly some efficiency considerations, but they say release early, release often, so here it is. So far I have seek and flee, pursue and evade, arrive, follow, wander, and collision avoidance translated from the old version. Still need to do obstacle avoidance. Update: the code is much more efficient now (thanks to ynjh_jo and drwr) and obstacle avoidance steering is finished
PandaSteer is plugin-oriented, so you can easily write your own steering demos and steering behaviors with PandaSteer, without having to modify PandaSteer itself.
Thanks to ThomasEgi, pro-rsoft and others for their help on the IRC channel, and ynjh_jo, drwr and others on the forums. And thanks to tiptoe, ynjh_jo and cyan for their work in this thread which I’ve studied and found very useful.
As well as steering, this demo also has:
-
The diamond-square algorithm for heightfield generation, implemented in Python.
-
Using Panda’s Egg interface to construct a terrain model
-
Lighting and fog
-
Using Panda’s collision system
-
Starting and stopping different Actor animations and varying the animation playrate depending on what the character is doing
-
Keyboard controls, including controlling the camera
-
and probably other stuff I’m forgetting