I'm driving around the surface of an unfamiliar planet. It's a barren, featureless wasteland, populated only by my robot - a simple four-wheeled creation that I've built myself from scrap parts. It's leaning a little lopsidedly to the right - Nasa would not be impressed.
This wasteland is the setting of Rawbots -- a robot construction game, where everything is built and programmed by you and your friends, and then subsequently destroyed in a hail of laser fire.
Rawbots is being developed by Alex Rozgo , an indie developer based in San Francisco. A technical preview trailer caught the internet's attention in late 2012, and while it's still very much in the early stages of development, you can pre-order the game now for $30 and get early access to its sandbox mode.
You start with parts. 21 different parts, to be precise. These range from simple engineering necessities like motors, elbow joints, and six-sided cubes for building the structure, to more advanced equipment like body shielding, plasma cannons and hydro jets. There are also a selection of sensors and lights for enabling more complex systems.
Snapping these parts together into the form you want is as simple as Lego. Hold 1 on your keyboard to attach, select the surfaces to connect, and they'll clip together neatly. To break them apart again, simply hold 0 and click the part in question. For the main structure of your robot you'll want to click a series of "continuum" parts together - these basic blocks will form the basis of most of your creations.
Once you've done that, snap some motors on near the bottom and then attach wheels to the motors. But you've got a problem - those motors are just sitting there waiting for instructions, not doing anything. So the next thing you need to do is give them some.
Teaching your robot how to drive means diving into Rawbots' visual programming interface, which is much less scary than it looks. In fact, it's just like building the robot itself - you lay down programming "blocks" in a hex grid, and then clip them together. The only difference is that you need to define a few variables along the way.
In your wheeled robot, you'll need three basic programming parts. The first is an "input sampler" - a block that reads in input from the keyboard and turns it into a numerical output. The second is a "sample mapper" - a block that takes that out and scales it up to the levels required by your third part - the motor itself. The idea is that when you press w, a signal is generated, scaled up to the size required by the motor, and then delivered to the motor, which spins as a result.
The interface for programming is a little more complex than the basic building mode. You can bring it up with 'esc', and then hold control and click on an empty hex to add a programming component. Once you've added a component, you can just click it and then tab through its variables, hitting enter to select the one you want and give it a value. If you have any experience with programming whatsoever, it'll be easy. If not, you'll get it pretty quickly, and there's a few decent tutorials on the Rawbots forums to help.
Rawbots is still pretty raw, but the possibilities that it comes with are fascinating. Building your own bot, hand-programming it to do your bidding, and then battling it against other people in online arenas sounds like tremendous fun. It's definitely a game to keep an eye on.