Originally posted by M&R | May 14, 2008
After about a year of being busy with other things, we’ve finally been able to return to working on Robotology. Finally! We’re still in R&D mode, trying to figure out how the hell to support the various features we want. But it’s progress, and that rocks.
Simulation is mostly solved — it still needs quite a bit of retooling, and possibly we’ll need to try different methods for collision detection if there are problems down the road, but for now it’s at least figured out and working. There are various related problems we have yet to tackle, such as motorized control, but those have to wait until we have more of the fundamentals worked out.
Currently we’re busy trying to figure out animation and the graphics system in general. As with physics, we’re developing our own animation technology from scratch. This is a pretty major task, but it’s even more necessary that we do it ourselves because in this case there is absolutely nothing out there that will do what we want to do. Hooray!
For whatever reason, the vast majority of 2D games are sprite-based; this is really strange, since graphics technology has moved ahead by leaps and bounds, but very few people have attempted to retroactively apply modern animation technology to a 2D setting. Hopefully we’ll be able to make some progress in this field. Fingers crossed!
Right now we’re still brainstorming and trying to figure out exactly what we’d like to be able to do; unlike physics, with which we’ve been fooling around for years, we’re total n00bs when it comes to graphics/animation — we’ve been relying on Flash for both tools and runtime engine. We’re also trying to figure out what we can practically implement; we’ve been writing little test apps to try various graphics operations, such as morphing, triangulation, and dynamic offsetting (shrinking/inflating the surface of a polygon.. not simple scaling). It turns out that all three problems are far from solved, at least in terms of game-friendly real-time solutions..
We don’t have animation properly “sussed” yet, otherwise we’d be able to better explain what the various aspects of the problem are.. all we can say for sure is that once you eschew sprites, it gets tricky Of course, this is the whole point — if you want to avoid the limitations of a sprite-based system, you’re necessarily going to have to deal with all of the problems that using sprites lets you avoid.
Not that we’re trying to engineer a super-powerful graphics solution! We’re perfectly happy with limitations — especially if they make implementation easier — we just want to work with a different set of limitations than those imposed by sprites. So, writing our own version of Flash is out; a generic all-encompassing graphics engine is going to take too long to create, and (equally important) such a solution isn’t likely to be near as fast as a specialized, limited system that does exactly what we need, and nothing else.
This is the main problem we’re facing — how to balance what we’d like to be able to do, with what we’re likely to be able to implement in an efficient manner. The way you represent data has a huge impact on what you can do with it, and the limitations implicit in various formats and conceptual models are often hard to tease out.
At this point the vastness of the problems we’re going to have to figure out is pretty daunting.. this was supposed to be an easy project to get our feet wet with OpenGL! Sadly we really do want to try to find a unique solution for our graphics needs. Of course, anything that can’t be totally figured out can always be designed around, but still, the question of how the hell we’re going to “do” graphics is currently making us somewhat vertiginous… *cue suspenseful music*
In other news, we’ve set up a small shop for handmade merch on etsy:
It’ll contain whatever we have time to create, and whatever we create collaboratively with other artists, which means supplies will probably be really limited. Look for more merch in other forms as soon as we can get it together!
Anyway… that’s all for now. Back soon, hopefully!