Skycastle on Launchpad

I came across Launchpad recently. It seems to be a kind of common bug tracking and release management tool for open source projects, initially created for the needs of Ubuntu, but opened up so that any project can use it.

It's geared slightly towards larger projects, but it does provide a working looking bug tracking and release planning tool, so I decided to use it for Skycastle.

Vector graphics figure for isometric game


Here's the result of some experimentation with using vector graphics for rendering player figures.

It composes the figure from 'bone' shapes that are basically a line with rounded ends, where each end may have a different thickness. It also has a cell shading like shadow on one side, and antialiased highlight and shadow outlines (this helps to hide the otherwise quite jagged polygon outlines). The cell shading is just going down the middle of the bone currently, it will probably look better once it is bent a bit to either side.

I'm planning to divide the arms and legs still so that the figure has elbow and knee joints, and add hands and feet (I already did a test of a rotating arm with a hand earlier, and it looked nice).

For the head, I was thinking of drawing eyes, eyebrows, and mouth on it with simple antialiased lines. The hair could probably be approximated with a few polygons.

On the skirt front and back a custom bitmap image will be pasted, using a skewed bitmap renderer similar to what is used for walls.

So far I'm pretty happy with the result, with a bit of tweaking it should be a passable cartoon like figure. The next step is to figure out how to animate it..

Isometric Fun


I started working on an isometric game engine over this weekend, this time written in Python. I was inspired by the One Laptop Per Child project, and was thinking that some of my world editing ideas go well with their constructionist learning philosophy.

The end user experience could be something akin to building and playing with Legos together with friends, although the building blocks should be larger and more functional. No built-in game goals, but players might be able to define ones themselves. Maybe there could be some kind of toggle to switch between Build and Play modes.

The limited memory footprint of the OLPC laptop (no hard drive, only a few hundred MB of flash memory) imposes restrictions on the amount of media and map data that can be stored in a conventional way, so I'm also planning to experiment with procedurally created maps and graphics (the map above is defined with one ProbabilityMapFill, that selects between normal and flowering grass tiles, one WalledMapFill, that builds walls around a specified area, and a SolidMapFill, that fills the same area with an earth tile).

The mesh-networked nature of the One Laptop Per Child machine also means that this would be a peer-to-peer game, not a conventional client-server setup. Anyone could start or resume a game session, and invite others. Constructs and pieces of landscape created in a session should be possible to keep for later, and to share with others.

I'm not sure yet how side-tracked I'm going to allow myself to get with this project, but so far Python is relatively nice to code with, despite a few oddities and the lack of an IDE with rename and code navigation features.