We just finished making another video showing some of what we’ve been working on around here: walking robots!
(In case you missed it, you can check out the first video in this post.)
The graphics are of course still just debug stuff, and all collision shapes are capsules, as this was much simpler than having to specify polygonal shapes for each segment of each body.
The environment is also obviously not at all what the final game world will be like, but as we haven’t yet implemented a camera we aren’t able to do any scrolling; the treadmill and “hamster wheel” scenes come in handy for testing extended walking 😀
It’s really exciting to finally feel like we’re getting somewhere, after so much prep work establishing the foundation. We still have a lot of work to do on physics-based animation, in terms of both modelling and control, but it’s just great to finally be able to use the systems we’ve spent so much time building.
In the video, all movement is animation being driven based on time; the next step in terms of modeling movement is to add some sort of feedback to the system, since currently it’s all just blind forward animation (i.e “wind-up toys”). Instead of being oblivious to physics, the playhead driving the animation should be coupled to the physical state of the robot so that, for example, if a robot’s foot is stuck on something, the animation doesn’t just keep playing back regardless. That would be silly! We have a few ideas but there aren’t any good references around so we’ll be more or less stabbing in the dark. That’s okay, we’re good at stabbing. Er, metaphorically.
Control also needs a lot of work; for the video we were just using the keyboard to set the speed of the motors driving the animation, but moving forward, some sort of higher-level controller which can steer the motors is needed. There are thankfully a few good papers on integrating high-level logical control with low-level continuous control — hopefully it won’t be too complicated to add slightly more intelligent brains to the robots!
We also have a lot of work to do on the tools side; we made a basic parametric model which can generate legs and feet, but it’s quite rudimentary and can’t handle, for instance, wheeled or flying robots. Oh yeah, for sure we need wheeled and flying robots 😉 It’s definitely a huge improvement from hard-coding everything — making a biped now only takes ~20 lines of code to define some parameters which are then used to generate the necessary data, instead of 200+ to make all the shapes and constraints by hand. But what we really can’t wait for is when we finish a more visual editor which will make defining custom shapes even less tedious 😀
So, that’s about it for now. How are you liking all these posts? It’s prolific around here!
We’re going to get back to working on the character controller (used to model the movement of the player and smaller robots), and we have about a month to get something playable done for the IGF deadline…it will be tight, so maybe don’t expect much in the way of posting for a little while!