Free-form level editor

The last week or two I’ve been working on a 2D level editor. I can drag and drop images onto it to create free-form levels (beware, placeholder art):


It’s meant for a platformer game, but it’s fairly easy to use the output for a different kind of game. Like, say, a strategy game, or just as a title screen layout file.

On the right side, there’s the bare-bone UI: the layer selection and visibility toggle buttons, the delete-this-layer button, and of course a button for adding layers. The red lines are collision lines – I’ve experimented with that a while ago and it turned out to work pretty well, so I’m migrating parts of my collision-line editor/test program to this new editor. On the right side, you can(‘t) see a hidden layer. The blue lines are the grid – which can be toggled and it’s granularity can be fine-tuned. It’s not used for snapping yet, so it’s mostly there to give me some sense of place and size.

I’m still working on various features, but it’s already a useful tool. I wrote it in Python, using Pygame (for the rendering and input handling), pgu (for the buttons) and pywin32 (for the drag and drop support). It has taken me 4 or 5 days so far, a couple of hours each day. :)

Free-form level editor

A little more about level-design

Last week I finished dm_mudanchee, a map I started 2.5 years ago. I’ve probably worked on it for 6 or 9 months altogether, which means I had some big hiatus along the way. At some point I had even decided I wouldn’t do any serious level-design anymore…

Creating levels for games like Half-Life 2 can be a very labour-intensive process, especially when there’s a lot of custom content involved. But what’s especially painfull is finding out that your map just isn’t fun… after you’ve put in months of work. I’ve had that happen a lot of times, which often resulted in yet another unfinished, abandoned map.

That’s where I learned the value of planning ahead. dm_mudanchee, despite it’s irregular development process, is the result of proper planning, early playtesting and many more iterations – and sheer persistence, I suppose. When I started, I built a few style test maps: a cave filled with water, some wooden planks here and there, some more caves. I also built quite a few layout tests, that were extensively playtested by me and a few friends. After a few of these maps I settled on a design, which I then filled in, using the style test maps as a guide. 50 versions and quite a bit more playtesting later dm_mudanchee was done.

It’s actually amazing to see how many people don’t plan ahead. Keeping that in mind though, it’s not so amazing to see so many levels, mods and game projects fail.

Anyway, after finishing up that map, I got the hang of level-design again. So I started on another map. I’m still in the layout testing phase, but here’s a rough sketch that shows what I’m working towards (it’s the same tower, drawn twice): a small vtol launchpad, an outpost tower built on top of a rock, surrounded by endless swamps with occasional mountains and other outposts dotted on the horizon.

dm_launchpad14 concept sketch

A little more about level-design

A little bit of level-design in-between

Developing games takes up quite a bit of my time these days, now that it’s a full-time job for me. Despite that, I’m still working on a game in my spare time, although not as much as I used to do. Fortunately, programming isn’t my only hobby. I still had an old, almost-finished Half-Life 2: Deathmatch level gathering dust on my HD, so I thought, why not finish it for real this time?

So that’s what I’ve been working on the past few days. I’ve fixed up the last few details, with feedback coming from some friends, so here I present you:

dm_mudanchee (.rar, 6.8 MB)!

A little bit of level-design in-between