About winferno


winferno's Trophies



X-0ut says ...

Either the file has gone, or the server is simply to busy.
Will try again later.

Endurion says ...

A Windows build would be nice.

mjau says ...

Download doesn't work here either. Can't connect to the server.

PsySal says ...

Meep! I need a windows port =( Wish I had my Linux0e box.

agj says ...

Wishing for Windows version.

5parrowhawk says ...

No Windows port?

Deepflame says ...

Couldn't find a windows build. :(

noonat says ...

No Windows? :(

Archive for the ‘LD #14 – Advancing Wall of Doom – 2009’ Category

A First Time Entrant’s Write-Up

Posted by
Wednesday, April 22nd, 2009 6:24 pm


This was my first attempt at entering the Ludum Dare (a.k.a. LD48). It was a bit intimidating to see some of the really impressive games that came out of previous LD48 events, however the line on the LD48 website reading something like “Historically, less than 20% of the contestants submit an entry” was a bit of an encouragement. At least if I bailed, I wouldn’t be alone. As it turns out, I was able to eek out a ‘game’ in the 48 hours, even if the only machine it likely runs on correctly is my own.

Time Management

I got my idea pretty early on, and my game design was done in under an hour. I’d say roughly 40% of my time was spent coding what could have been reusable game engine things, such as a texture loader, sound effects loader, collision detection code, etc. Another 20% was spent on logic specific to my game such as collision response, physics updates, game end conditions, and state changes. I spent another 30% on the game resources, including artwork and music. The last %10 was spent on the initial design, some game tuning, writing a quick read-me, and finally a mad rush to get everything packaged and uploaded.

Although I had devoted the entire weekend to the event, my girlfriend had some friends in town, and I spent about 7 hours (~15% of the time). I slept also, which in retrospect, was a good idea. By then end of the event, my nerves were starting to feel shot.

Development Tools

I was doing all my coding in C++ on Linux, using OpenGL and GLUT for graphics, OpenAL and libvorbis for audio. I used CMake (a build tool) to help generate makefiles which is handy because it allows one to generate build files for other systems (Visual Studio solutions, for example) using a single cross-platform compatible input file.

Editor: I used XEmacs as my editor. I’ve spent some time using it and have it customized pretty well to suit my needs. What do you think I’m typing this write-up in?

Graphics: I used Graphics Gale to create all the artwork, which I saved as 32-bit Targa files. Graphics Gale is available for free in it’s basic version with some feature restrictions. It has a few features to make drawing ‘cell style’ animation easier, such as onion skinning and animation previews.

Sound/Music: I wanted to integrate the use of my MPC1000 hardware sequencer in to my work-flow, so that’s what I used to sample a guitar riff and some beat-boxed sound effects I recorded. I have a microphone, mic pre-amp/effects processor, and dedicated guitar effects processor to tweak sounds before I edited and sequenced them in the MPC1000. I also used a couple freeware VST synthesizers from Tweakbench.

Time-lapse Video: During the competition I was continuously saving desktop screen-shots every 30 seconds which I later compiled in to a video. To save the screen-shots I used a Linux tool named scrot, and a very simple bash script like this:

mkdir /home/win/screenshots
for (( ; ; ))
scrot /home/win/screenshots/%d%k%M%S.png
sleep 30

Note that in hindsight, I had some problems with the way the files produced by scrot were named. Some of the files had spaces in them, which might be a bug in scrot. This was a problem for me because my video encoder (ffmpeg) was unable to deal with anything other than files that were named in sequence numerically (no gaps in numbers). I was able to use the batch renaming feature of the Linux tool GQView to rename the files sequentially based on their date-stamp, and ffmpeg was happy. The ffmpeg encoding tool was able to splice in an audio file as it encoded the 1800 jpeg frames.

Game Design

I got lucky in that the chosen theme, ‘Advancing Wall of Doom’ was already my first choice, so my subconscious had some time to mull over the design. I wanted to keep the design dead simple so I wouldn’t bite off more than I could chew. Looking back, this turned out to be a good thing, as I was working right up until the end of the compo and wouldn’t have had time to add any extra features. Even though the design was simple, I feel I should have spent a bit more time considering the playability and fun factor of the game. During testing it was very apparent that my game lacked a lot of variability, and there wasn’t much room for any real strategy or technique. Every test-play through the game took about the same amount of time, and I hadn’t exactly intended the game to be based on any time limit.

Things Learned

Overall I’m happy with my performance during the competition, mainly in that I was able to complete my project in under 48 hours. Although my personal experience playing the game is biased, I’d say it’s good for at least a minute or two of genuine fun. I was also able to take a few things away from the experience which should make my life easier if I decide to compete again:

1. I was coding at a relatively low level, and ended up spending too much time writing and debugging code to provide functionality that others in the event were essentially getting for free (image loading, sound, collision detection, etc.). I also had to be aware of some platform-specific issues (namely timing functions) that users of other APIs could also ignore.

2. Sleep and getting up for breaks is important. I even went outside and ran around the block once during the compo. A couple minutes of jumping-jacks were helpful also. I didn’t regret spending about 15 hours during the compo asleep. I get the feeling my mind was still somehow at work debugging my code while I was sleeping anyhow.

3. I should have spent some time preparing a bit of template code that is generic for any relatively simple game (2D or 3D) that I might want to quickly create. Game loop, end conditions, state changes, main input/display/audio systems all seem like targets at first glance. I had a hard time deciding how to write my code in order to keep an architecture that wouldn’t strangle itself in the short time span of the competition. I think an overall ‘game template’ even if it was just a short checklist, would have been really helpful to me.

4. Although this wasn’t an issue during my time spent in development, I realized after the competition that my code would not be immediately available to other entrants because of the development tools I chose, and the because the corners I cut in testing meant that I produced code which had problems with timing and input on other systems I was able to test my code on afterward. This is a big problem because it makes judging by the other entrants much more inconvenient of not impossible. If I had developed for a virtual-machine environment such as Flash, I suppose I could have avoided this. problem.


I had a great time and am looking forward to entering in the next compo if I have time. I think as long as I can view the event less as a race and more as simply an exercise in programming and design on a very short time scale, and use the experience to become a better coder.

I also have to mention that the social aspect of the event is really great. Everyone in IRC was really friendly and helpful, and it was exciting to see what people had going on at any given time of day or night. I even found out that one entrant was a fellow student at my college, taking one of the same classes even. I’m glad that my comment about his entry on the web wasn’t too harsh!

Thanks everyone for a great event. Long live LD48!

-Windsor 04/22/09

Entry Relocated, Timelapse video on YouTube

Posted by
Wednesday, April 22nd, 2009 12:10 pm

Hi people, I had some trouble with my home server where I was hosting my LD48 #14 entry, and so I’ve moved it to my domain host’s server.¬† If you want to test/play/vote on my code, the download link is here (Linux source + i386 binary):


I’ve also got my desktop timelapse video up on YouTube here:


Or, if you want to download the original 8MB video file (mpeg video + audio), you can get it here:


Thanks everyone for a fun event. I’ll definitely be putting the next LD on my calendar!


“You First” Final Entry!

Posted by
Sunday, April 19th, 2009 6:55 pm

Update (4/22/09): I was having trouble hosting my game on my home server, I had to move it to my domain host’s server here: http://windsorschmidt.com/dl/winferno_LD14_youfirst.tar.gz Thanks!

It’s ‘done’ !! Tested on Linux only. Binary and source included. OpenGL, OpenAL, libvorbis.


Intro and Instructions (that I forgot to include in the archive):

You are an islander, and must appease the nature gods (a huge tsunami and a volcano). Punch the shaking huts to release virgin sacrifices, touch them (er, move to their location) to pick them up, and hurl them in to either advancing wall of doom to stave off imminent (and I mean imminent) death.

Controls: z and x keys (jump and throw/punch), plus the left and right arrow keys (run left/right).

Annoying bug: you must be moving left or right in order for you to successfully throw a virgin.

Thanks for a fun compo!

Getting There

Posted by
Sunday, April 19th, 2009 11:17 am

Here’s a screenshot! Got my texture loader going…. I’m never going to use any of this code again, ever.


Posted by
Sunday, April 19th, 2009 8:15 am

Getting down to the wire here. I am still behind schedule, so I probably shouldn’t be doing stuff like this, but I’m still officially eating breakfast so it’s cool. Thanks to my awesome girlfriend Gail, I have pankakes for said breakfast!

Sleep Time. Recent Work.

Posted by
Sunday, April 19th, 2009 1:13 am

Still running behind schedule but I think I need some sleep. I finished a chunk of the bitmap artwork I’ll be using. Next task will be to implement my texture loader. The time pressure is on!


Tsunami (wave) = A.W.O.D. #1
Lava = A.W.O.D. #2

Half way through. Impressions

Posted by
Saturday, April 18th, 2009 6:32 pm

I’ve got most of the game play mechanics functional, yet untuned. There is a problem with my keyboard input locking up, but I haven’t investigated whether it’s my keyboard or my code. I’m using GLUT for input. The game is more or less playable, but I haven’t got any ‘score’ feedback for the player yet.

The graphics are still just blocks used for bounding box collisions. I’ll be loading some textures on to the boxes at some point. I’ll probably implement some minimal animation to spice things up. I haven’t switched in to artist mode yet.

Sound; haven’t gotten there yet. Still looking hopeful though.

Doom Advances

Posted by
Saturday, April 18th, 2009 12:58 pm

I got my walls advancing, and the player can move around (left right) and jump. Collision detection between objects is working, but no response code written yet.


Posted by
Saturday, April 18th, 2009 10:38 am

It’s got C-Power(tm). I never really eat breakfast anyway, but unwrapping oranges is fun.

First Screenshot… It compiles anyhow.

Posted by
Saturday, April 18th, 2009 9:27 am

That’s a volcano over yonder on the right. I think next LD48 I’ll spend a little more time making some boilerplate code in advance. I’m just using GLUT / OpenGL code in C++, so this is taking longer than I’d hoped. Then again, I did get 8 hours of sleep. Rock on Ministry!

Playfield Sketch

Posted by
Friday, April 17th, 2009 7:57 pm

It’s a start. Those are huts in the center, in case that wasn’t too obvious from my craptastic drawing here.


Posted by
Friday, April 17th, 2009 7:04 pm

My workspace

Yo dawg, I put some images in my image to you can see what you’re seeing!

First Try

Posted by
Wednesday, April 15th, 2009 6:55 pm

Hi, this is Windsor (winferno on IRC). I’ve got some other obligations over the weekend, but will give it a shot anyhow! My development set up is something like this:

OS: Debian Linux
Language: C++ (GCC)
Editor/IDE: XEmacs
Toolkits: SDL (I guess)
GFX tools: GIMP, Imagemagick,  digicam
Audio tools: Akai MPC1000, Roland JP-8000, microphone

See you guys on IRC.

[cache: storing page]