About Surrealix (twitter: @philipbuchanan)


Ludum Dare 27
Ludum Dare 21
Ludum Dare 18

Surrealix's Trophies

Chased a Dragon (Late Entry)
Awarded by gritfish
on June 6, 2012
Employs uber-cheap construction workers
Awarded by sgstair
on April 20, 2008

Surrealix's Archive

Surveying the Damage

Posted by (twitter: @philipbuchanan)
Sunday, August 21st, 2011 3:33 pm

Sitting in a quiet room, with the rain pattering outside and a clock ticking loudly in the corner, it’s hard to feel the type of catastrophe that my game is trying to convey. Likewise, when my character – pieced together from the photos I took earlier in the day – looks sanguine, it’s not ideal.


However, it’s a character, and it’s animated, and it will suffice.


Next, I’m adding some effects – hopefully no longer than half an hour. Then I’ll try and get a start and an end. And tweak the camera, and think of a name, and submit before the server crashes.

Flying Roof Tiles

Posted by (twitter: @philipbuchanan)
Sunday, August 21st, 2011 1:55 pm

I’m tired, hungry, and satisfied that my game is now actually a game. There’s still no beginning, and no end, but you can jump between platforms and avoid flying pieces of debris. My To:Do list gets ever longer, and time gets ever shorter. I’ve now got less than 5 hours remaining.


Although the player is now blue, it’s not a huge improvement over red. I want to get a player graphic into the game as quickly as possible. I also need to fix the camera following the player, add some effects to give the player some impetus to get moving, and probably a lot of other details too.

A start. And an end. And a name. And sound effects and music.


Got to run. Got to escape!

Falling to my Death

Posted by (twitter: @philipbuchanan)
Sunday, August 21st, 2011 10:58 am

Five hours into my LudumDare entry, with less than 8 hours until the end, I finally have something playable.  There’s still no beginning, not much middle, and no end. But the red square you see in the image below is a fully interactive character.

Oh, and there’s a background image. Yay.

My next step is to start spawning platforms as you run along, and add some obstacles to be avoided. Also some code re-factoring so that I can change the parallax of the background and get things looking a bit less flat.


Also I’m going out to a concert for 3 hours, so I’m going to be happy if  manage to have more than 10 seconds of gameplay!

It’s the End of the World

Posted by (twitter: @philipbuchanan)
Sunday, August 21st, 2011 7:51 am

In the last – frantic – 3 hours, I started Ludum Dare, wrestled with my screenshot program, wrote a level editor, went for a walk and took photos with my new camera, and did absolutely no programming on the actual gameplay.

However, I’m very pleased with my progress. I now have my game loading pieces of “level” from the level editor, which includes some basic physics that lets the pieces float around in the screen. I chopped some of the photos up and now have rudimentary graphics, which look something like this:

Destroying Houses

It’s very tempting to keep adding graphics and making things look prettier, however I really need to get some gameplay in there. The next step is to add a character who’s trying to escape the end of the world by running across the pieces.


And of course I need to give the game a proper name. I welcome any suggestions.


11 hours and counting! Time for dinner.

Declaration of Intent

Posted by (twitter: @philipbuchanan)
Sunday, August 21st, 2011 4:56 am

I’m In!

Wait … what?


Due to an overwhelming dose of real life, my LD entry became a little delayed. However, I’m escaping real life for the next 13 hours to write one quarter of an LD game. (in one quarter of the usual time). I’m hoping I can write the correct quarter – so that I come out with a playable game at the end.

I’ll be using my own framework on top of SDL, which – if you’d like to join me in this quarter-LD madness – can be downloaded here. As usual, it’s buggy and incomplete, but hopefully will save me time in the end. Despite being based on SDL I use a bunch of windows stuff, so it’s Windows Only.

I’m also recording my adventure using my screenshot capture program from LD18. You can download it from here (Windows only). It’ll ask for a path (which needs to end in a slash – ie: C:\Screenshots\”); a count (files are saved as 0001, 0002 etc, so this is the first number); and the time between screenshots in seconds. Due to the wonderful hack I used to write it, it wipes the clipboard every time it takes an image. Beware!


Onto the game …

With time racing past, I need to write something very (very) simple. So I’m aiming for a physics-based puzzle adventure platform game with RPG elements.  Without the RPG stuff, or the adventure stuff, or the puzzle stuff.


Onwards and upwards! (Or sideways to the next platform).


Elapsed Time

Posted by (twitter: @philipbuchanan)
Sunday, August 22nd, 2010 6:42 pm

Sixteen hours and twelve minutes.

Compressed into a timelapse video for your viewing pleasure. Because I wrote a physics engine, procedurally generated characters, and then ran out of time for graphics, it’s not edge-of-the-seat thrilling to watch. But it’s amazing how much time I spend typing code, I’m surprised my fingers haven’t fallen off.

Watch in your browser (firefox/opera). Or download the file.

Don’t forget to use Zombies as Weapons by downloading my game. It’s more fun than this timelapse, I promise.

Zombies as Weapons

Posted by (twitter: @philipbuchanan)
Sunday, August 22nd, 2010 7:45 am

I’m finished!

The game isn’t.

But it’s as complete as I’m going to get it. Sadly, I didn’t get time to put any graphics into the game, nor any scoring, nor a win condition (or a loose condition). You’ll require a bit of imagination to play it, but surprisingly, it’s fun. Download Zombies as Weapons and give it a go.

Because it has Zombies. And ragdoll physics. And you can pick the zombies up and throw them at each other.

Like this:

And this:

The game’s a 213KB zip file, and currently only works on Windows:

Zombies as Weapons

Good luck, good night, and good zombie hunting.

Enemies as Weapons

Posted by (twitter: @philipbuchanan)
Sunday, August 22nd, 2010 2:30 am

My entry finally has something in common with the theme. It’s not much, and it’s only fun for about 12 seconds, but you can now use enemies as weapons against each other.

To celebrate, I tried to capture a video to show. It bought my computer to its knees, and then crashed it. So I wrote a function that saved frames to disk (the framerate varied depending upon disk write speed), encoded them (an hour learning about directshow filters), and then figured out how to put it into an HTML5 video canvas.  It probably wasn’t worth the time, but at this point I’m not going to finish my entry anyway.

So, watch the video (firefox/opera), or download the file.

Characters : Attack!

Posted by (twitter: @philipbuchanan)
Saturday, August 21st, 2010 7:47 am

So in the spirit of actually getting some gameplay into the game, I made a player class, and dropped it into the game. It’s a horrid colour, but it moves when you press the arrow keys, and jumps on command. It also doesn’t fall through the ground.

Note the blue box, which bounces down the hill, reacting and colliding realistically. I’m not sure what gameplay purpose it can serve, but now I’ve got the ability to use it, I probably should.

I need some enemies in the game too, so I recolored the player to green, made enemies red, and gave them a body (the blue stick figure). I also added a simple uppercut type attack where you knock the enemy out and send them flying.

Here’s a sequence of shots showing the attack, because it’s too much effort to record and upload video.

Now, well and truly time to get some sleep. Good night and happy coding!

Ragdolls and Dismemberment

Posted by (twitter: @philipbuchanan)
Saturday, August 21st, 2010 4:12 am

I’ve decided upon my genre/game/application/whatsit. It’s going to be a fairly gruesome platformer done in a film-noir style. Assuming I get time for art, that is.

As it stands, I spent four hours implementing a verlet physics engine, two hours implementing collision detection, and finally started on gameplay during the last hour. I can create levels with arbritrary collision geometry, put ragdolls into the level, throw them around, and most importantly, dismember them!

This all fits into my grand game plan where you are required to dismember enemies and use their heads, legs, arms, or tentacles (aliens, maybe?) as weapons.

The artwork is currently all stick-figure, but the code is already written allowing me to replace the sticks with graphics. All I need to do is draw something.


In lieu of awesome graphics, here are some awesome ragdolls. Naturally they look better in action.

The ragdoll being punched or kicked or shot in the chest:

Ragdoll being dragged around a level:


Ideas, Screenshots, and Wireless Drivers

Posted by (twitter: @philipbuchanan)
Friday, August 20th, 2010 9:18 pm

So it’s two hours in and I’ve yet to write a line of code (on my game, at any rate). This is probably for the best though.

Instead, I spent the first hour trying to get my wireless working on my laptop. I formatted and reinstalled windows last weekend, and I’ve not had to use wireless since. Matters were compounded by the fact that the wireless adapter isn’t actually the model that’s listed on the laptop manufacturers’ website.

The second hour was spent trying to find my old screenshot program so that I can take a timelapse. It was written in VB, and I no longer have the exe, and don’t have Visual Studio 6 installed. So I tried to find something lightweight and suitable online. Nothing really impressed me, so I wrote one. You can download it from here (Windows only). It’ll ask for a path (which needs to end in a slash – ie: C:\Screenshots\”); a count (files are saved as 0001, 0002 etc, so this is the first number); and the time between screenshots in seconds.

So, now I’m going to start on the game. I’ve got a couple of ideas.

The one I’m currently liking is a fairly straightforward take on the theme. It’s a brutal platformer where you dismember enemies to use their arms/legs as bludgeons, and their heads as projectiles.

The other would be a more cerebral game. “You are your own worst enemy”, a puzzle game where you disrupt your future (or past) self by the actions you do in the present. I like this idea, but it would require a bit more thinking to get it playable.

edit: Due to the terrible hack I used for the Screenshot program, it wipes the clipboard each time it takes a picture. Watch out!

The Introduction

Posted by (twitter: @philipbuchanan)
Friday, August 20th, 2010 6:13 pm

Greetings from NZ.

So I’m planning to enter my second LudumDare, Zombie Rainbows notwithstanding.  The times are a little inconvenient, starting Saturday afternoon and not finishing until well into the workday on Monday. I’m simply going to have to code faster to wrap everything up by Sunday afternoon.

I’m using C++ and SDL/OpenGL. I’ve written a few helper classes and methods that make life easier. They’re downloadable from my website, but I’ll add the disclaimer that they’re not finished, and there’s a memory leak (or two). I’m currently downloading the amazing Fluid Studios MMGR to track down the issue and fix it. I’ll be using GIMP and Inkscape for graphics, drawing with my TabletPC, and I currently have no idea what I’m doing for Audio.

I hope to do better than my last LudumDare attempt where I scored highly with my graphics, but the gameplay was nonexistent. I have more experience this time around, having worked as the lead programmer on Doc Clock, an upcoming WiiWare title.

Here’s the obligatory crappy-cellphone-camera workspace photo:

And now I’m going to mow the lawn before it rains.


Posted by (twitter: @philipbuchanan)
Tuesday, April 22nd, 2008 4:26 pm

So I’ve got around to compiling my 2GB of screenshots into a timelapse. You can see a long period at the start when visitors came round and I got absolutely no work done, but things get more and more frantic as the deadline approaches.

It looks like I never slept – but this is because there’s no screenshots from when the computer was off.


The Butler Did It, in Windows

Posted by (twitter: @philipbuchanan)
Tuesday, April 22nd, 2008 4:53 am

Well, it’s here!

A Windows port of ‘The Butler Did It‘ is now available for download. It’s unchanged from the linux version (except the bits coded so badly the compiler wouldn’t let me get away with).

Download, run, and keep trying until it manages to start without crashing.

Windows Binary (zip, 2.5 mb)

Burnt pizza, meetings, and a playable game.

Posted by (twitter: @philipbuchanan)
Monday, April 21st, 2008 12:07 am

Congratulations to everyone who finished, or even just attempted the LD11. I really enjoyed it, and will be back for more!

I’ve slept 2 hours in the last 2-and-a-bit days, and am seeing triple. Had a meeting this afternoon with three of my course advisors, and could barely stagger along in my Monday evening social sport.

Regardless, I managed to hold up long enough to also fix some show stopping bugs, and write a comprehensive guide to playing “The Butler Did It”. Original unplayable version is still available if you want to use it for judging (*ouch*), but give this one a whirl and catch a murderer.

Looking forward to a good long sleep, and then working my way through 60 minimalistic games. Probably a windows port of TBDI, too.

The Butler Did It

Posted by (twitter: @philipbuchanan)
Sunday, April 20th, 2008 6:17 pm

This is a procedurally generated whodunnit. Minimal clues, minimal interaction, and a very minimal appearance.

A crime has been committed in Lord Fletcher’s manor. Someone has been murdered.

Upon arriving at the scene, you are told who is deceased, where their body was found, and what they were murdered with. You must interview the residents, trace their movements, and ascertain the identity of the killer.

The murderer, being unlikely to confess, will fabricate lies. The innocent residents, however, will tell the truth. By careful deduction and investigation, you will slowly build up a picture of the crime, and catch the guilty party.

Pretty screenshot.


Playable Version : Ubuntu Binary + Source (rar, 1.8mb)

Windows Port : Windows Binary (zip, 2.5mb)

It may crash on startup, so keep trying until it runs :/. Under linux, you’ll need OpenSceneGraph-1.2.2 to compile it (apt-get libopenscenegraph-dev)

(Update : Someone wrote a wonderful post-mortem of this game and saved me the work of doing it myself!)

[cache: storing page]