Final Results

Show full results




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

Timelapse + Journal part 2!

Posted by
Monday, May 4th, 2009 8:09 am

Behind The Dumb Episode 7 is available now!  Thanks to the handy extended voting, it is available before voting is over!  Of course, again, I filmed it all during the 48 hours, but didn’t edit and release it anywhere close to that time, so probably not valid for voting.  But I hope you enjoy seeing what kind of sandwich I ate, in one of the most epic cliffhangers since Sylvester Stallone’s Cliffhanger.

Three more days to vote!

Posted by (twitter: @ludumdare)
Saturday, May 2nd, 2009 11:51 pm

As expected, people have asked for more time to download and vote for entries. And who can blame them with over 120 entries to pick through. But rather than make the winners wait an entire week to find out they won, we’re going to have only a 3 day extension.

So, 11 PM EST/8 PM PST Wednesday night is the new voting end date. Check the clock on to get an idea when that is locally. I’ll flip the switch shortly after that hits zero.

Voters, keep an eye out for the entries with under 20 votes. When I last checked, we only had 28 entries with 20 or more votes. Some are very close to that, and if we can get half of the entries that high by the middle of the week, it’d be great. I understand some entries may have unusual setup requirements, but we ask that you do what you can.

Looking at final list, we had 123 total entries in Ludum Dare 14. I was chatting with one of the guys in #ludumdare today that’s reviewed over 100 entries in the past 2 weeks. As he put it, games “that don’t require me to install a bunch of stuff to run”. That’s a pretty impressive slice of playable games if I do say so.

Thanks everyone for helping out and participating in such a monumental compo.

– Mike Kasprzak (PoV)

Diodontidae – postmortem

Posted by
Saturday, May 2nd, 2009 10:07 pm

I believe a better name than post mortem would be lessons learned, so let’s see my lessons learned from the  competition. I would love to read this before the compo, as I can’t make the time go backawards, let try at least to help other newbies.
1. create the menu navigation at the start of the competition
As I was fighting agains some physics problems during the development process most of the menu was left behind. Then I realized 30 minutes to the end that my menu would be an image =) and a play button…

The lesson on this would be, use time in the middle of the nightmares to do these brainless activities, because what can go wrong while build a menu ? =)

2. draw in the paper build and color in the computer
That helped alot, I save my day manipulate the lines with inkscape, but … in order to slice images I have a nightmare with inkscape, go with Gimp works as a breeze

3. dont split images, let the engine split for you
ahhhh I spend some hours cutting images lol !!, could use something like to draw a subsprite of the image …

4. make physics work for you
Oh Well after the physics hit me in the head, I learned some details and was able to make it work in a decent way, special note for the boats that hang around over the sea, for that I created a sequence of x,y that is the path to the boats, and I try to follow the path, I believe if I make the water line as an object and change its group to only colide with the boat would be the best to move the boat around.

5. clean the tables in one place only.
Not sure why, buit when I was removing items from my objects list in teh collision handler the LOVE was just crashing … workaroiund that I found : flag to items to be removed and remove in the update() method and one by one from each table, this is call at the end of the update() for each cleanable table :

[code]— clean the tables
function cleanTable(table2Clean)

for n=1,table.getn(table2Clean),1 do
if table2Clean[n].dirty ~= nill then
table.remove( table2Clean, n )

and at the collision handler, I dont remove the pig from the list, just flag it
and I believe that this would be a nice way to animate the pig booom =)
by using a multistate, like alive/almost dead/dying/im outa here :)
would change the image section, or play an animation … and at the end remove from the list
that would be great …

function killThePig( id ) audioCollision, 1 )
pigsKilled = pigsKilled +1

for n=1,table.getn(pigs),1 do
if pigs[n].poly:getData() == id then
pigs[n].dirty = true

6. reusable files should be in a folder
I’m using for labels the .lua classes that I made called LOVEly-eyes, but I had this problem with the Text object that wasnt transparent … Oh well I went in the code changed the super class, Rectangle to handle this and the Text is transparent by default, cool, but but but … :) after that I just copied all the files from the LOVEly-eyes folder to my game folder … too bad because I copied a main.lua file together … If I wasnt using subversion would be a nightmare … now LOVELy-eyes are in a separated folder =)

7. use a version control system
I used subversion, saved me when I made an stupid folder copy … revert and just lost some minutes of work… bu remember keep on committing =)

8. put together a zip with everything
Better that just the .love file, create a package with the execs, the best would be create an installer.

9. level up level up !!!
people like rewards, so more than the score I should add level concept, just with faster attack of the pigs, or a different scenario with different speed .. hummmm that would be cool a .lua file for each level :)

10. collision has 2 sides … A and B
It took me some time to realize that A and B collision data, first they are the DATA from the polygon nothing else, just disconnected data, not a reference, not and pointer … hehehhe string data what makes very nice and unplugged from the code, and you have to test both sides, if wherever A colide on B and the oposite, this was my colision code

[code]function collision(a, b, c)

if string.starts(a, “pig”) and string.starts(b, “battery”) then
killThePig( a )
removeTheBattery( b )
elseif string.starts(b, “pig”) and string.starts(a, “battery”) then
killThePig( b )
removeTheBattery( a )
elseif a == DIODONTIDAE and string.starts(b, “food”) then
eatFood( b )
elseif b == DIODONTIDAE and string.starts(a, “food”) then
eatFood( a )


function string.starts(String,Start)
return string.sub(String,1,string.len(Start))==Start

note that I used start() because I add the object id after the type, so I can grabb it from the list, something like “crap_2”, “crap_3”

11. scroll the view is possible Luke… use the force !
Ha ! not the force, at the end I solved the screen scrolling with a simple solution, calculated a shif from the main character and update this shift in the update() method and every single draw has this shift. So the camera is following the character, thats stays in the screen all the time, and to avoid the char to drop outside the world I add invisible walls on left and right side and check if the cameraX is in the possible range,

this in the start of the code

startCameraX = ) / 2
startCameraY = 200

cameraX = -startCameraX
cameraXLimit = {}
cameraXLimit.start  = 0
cameraXLimit.finish = -2905

+ cameraX on each draw
diodontidae.theChar:getX() + cameraX,

—— draw the batteries
for n=1,table.getn(batteries),1 do
batteries[n].body:getX() + cameraX,
batteries[n].body:getAngle() )
this on the update()

[code]    cameraX = startCameraX – diodontidae.theChar:getX()

— keep the camera in the boundaries
if cameraX > cameraXLimit.start then
cameraX = cameraXLimit.start
elseif cameraX < cameraXLimit.finish then
cameraX = cameraXLimit.finish


Posted by
Saturday, May 2nd, 2009 7:49 am


PET THAT KITTEN! was my second attempted Ludum Dare,  my first actual entry, and my first XNA game. Going into this I knew I was going to use this competition as a way to get my feet wet with XNA. Considering the added learning curve I aimed for a very tiny scope. I think I went with the idea that crossed most LD’ers minds, turn the wall into an enemy and have it chase the player.

Development Tools

I had worked with a bunch of C# in the past so putting everything together in XNA wasn’t a problem. I had done my art up in Flash CS3.  I had planned on using hobnox to generate my sound effects and music.

What Went Right

The scope I had planned out mostly revolved around the fact that I was tackling XNA for the first time. The scope had lots of features I could easily cut out while still leaving me with a “complete” game.  I had done a bit of and C# managed DirectX stuff in college, XNA turned out be extremely similar so only very few features got cut.

Despite the programmer art, I’m pretty pleased with the way the artwork turned out. It was more time consuming than I had liked, but I feel like it breathed a lot of life into an extremely simple concept. I also decided that however crappy the artwork looked at the start, it would make it into the final project, no placeholder art.

What Went Wrong

I was using this Ludum Dare to kick myself in the butt to get something done in XNA. Most of my perceived problems stemmed from this though. I realize the ideal entries are executeables and broswer based games, no one really likes having to install dependencies or go to too much trouble getting your game going. I’m sure the installer for the XNA framework turned at least a few people away.

On that note, I know I could have gottent his entry done in half the time, possibly with more features if I had just done it in Flash. A good chunk of my time was converting assets to spritesheets and then fixing up the spritesheets (you’ll notice in the wall animation that you can see bits of other sprites on some frames).

My time management for this competition wasn’t too bad, I think I spent too much time on getting some of the artwork done, the time would have been better spent with an in game help screen explaining the game objects and scoring system.  The confusion brought on by the scoring system (and a scoring bug) was a huge oversight on my part.


As an XNA project I’m pretty happy with PET THAT KITTEN!. It’s a complete mostly functional game, and I managed to plan my scope out pretty well for the time frame. However as a Ludum Dare entry it’s a little less than ideal as I know I would have been able to polish it(Sound effects!) quite a bit more in Flash and avoid installer issues.

This Ludum Dare was a great learning experience for me. Planning out a scope under such a tight deadline, learning XNA, and finding a couple of really nifty tools for mixing music and creating sound effects.

Shal we extend voting?

Posted by (twitter: @ludumdare)
Saturday, May 2nd, 2009 2:01 am

We seem to have some interest in extending the vote for another week.

Post “Yes” or “No” in the comments, with any thoughts you may have.

Also, a large graphic to get your attention.

– Mike Kasprzak (PoV)


Posted by
Thursday, April 30th, 2009 5:55 am

Outline of 48hrs as I recall it…

Day before compo…

Stayed up too late on Chatroom, just getting hyped about the competition – Should have slept more.

Got up at 4am to check theme – found that it was AWOD couldn’t think of anything and went to bed.

Got up again jotted down game concept in notebook (see below)

Full Design Document

Went to work knocking together basic sprite object – I know I should have grabbed a pre-developed set of objects but at least I can refine and reuse these now!

Went for a very free form map, no tiles just objects relying completely on BlitzMax’s in built pixel perfrect collision detection.

In the first day I managed to get the basic game mechanics working block growing, turrets firing, player deploying turrets – it was now almost a game.

Went to sleep thinking about adding towns, people, animals, plants running from the AWOD… Dream on!


Day two

Added screen, levels, win/lose states, basic sound effects

Afternoon – time was running down fast added …

Powerups – providing a limited upgrade to turrets

Base something for the player to defend and powerups to appear next too

Last minute play testing

Quickly zipping and posting it near the deadline – Phew Final post

What went right…

I managed to create a game in 48 hours!

I avoided getting tied into the complexity of a tile based system, thankfully BlitzMax’s collision detection works well!

I kept the ‘artwork’ to the bare basic minimum – inspired by the BUPA adverts (Coloured circles as people)

I kept the design very simple as well.

My Keep It Simple Stupid – KISS approach worked!

What went wrong…

Wrote too much code to start with I need a basic prototyping framework for at least sprites, collision detection, screens, menu ect.

Then I could have spent more time designing filling out the game design further but staying flexible, this might have prevented the last minute addition of powerups and base leaving next to no time for game testing balancing.

Motivation wandered during day two, it was a playable prototype and therefore in theory a game, thankfully I managed to get moving again and ‘polish’ it up a bit, again a framework will make this a none issue.

I quickly realised that there was a performance issue with the block count, once you get over the 1000 mark the framerate really drops so I had to limit that.

I wanted a wrap around world where you can’t run away from the wall of doom, althought this should have been an easy thing to add I did not get around to adding it, possibly resting on my laurels a bit!

In Summary

I really enjoyed this although I wish I had setup a time laps screen capture, probably not a webcam feed ;o).

Well I must judge some more of the other amazing entries, Looking forward to the next competition already!







Mind Wall – It pisses people off

Posted by (twitter: @rtsoft)
Wednesday, April 29th, 2009 11:30 pm

Fan (?) made youtube video showing why you must play (or avoid?) my LD entry Mind Wall before time runs out!

Vote, or become a duck!

Posted by (twitter: @mikekasprzak)
Wednesday, April 29th, 2009 9:43 pm

Less that 4 days to go!

Heart postmortem, release

Posted by
Tuesday, April 28th, 2009 3:45 pm

Sort of a postmortem for my game, Heart. I don’t know, I just wrote about the process and a few later thoughts. You can read it in my blog.

Also, the game is finally finished. Play the release version.

Why I didn’t rate your game

Posted by
Tuesday, April 28th, 2009 12:59 pm

It sucks to have very few ratings and comments on your game, so here are a few pointers for next time.

The most rated games are the ones you can play in your browser. Try making your entry in java or in flash and embedding it in a webpage for maximum exposure. If you don’t want to have to suffer the horror that is (Java|AS|Flash) at least make a binary release for Windows since most people seem to have access to that platform (I don’t so please also make an OS X version 😉 ). If you’re making your game in Python (or its pale imitator ruby 😛 , or any other interpreted language for that matter) you might think you don’t need binaries but you’re wrong, people aren’t going to install a different environment for every single game. Same for Löve games.

If you do only release as source, or if you only release for one platform, or dynamically link libraries, keep dependencies to a minimum. If all I have to do to build the game is type “make” there’s a better chance I’ll try it than if I have to install 13 libraries which each in turn depend on half a dozen others.

I try to play all games regardless of the screenshot (in part because my own drawing skills are easily surpassed by those of a drunk monkey with a pen) but if the entry requires more than clicking on a shiny icon to run, I’ll definitely spend more time trying to get an entry with a cool screenshot working.

Rate other games (and leave comments!)
While I am determined to try as many games as I can, I prioritize rating the games from the people who left comments on my games first.

Of course these “rules” aren’t set in stone. You can make a game for the Atari 2600 and still have plenty of ratings. You can also make a game with an uninspiring screenshot and win best overall.
Of course you could also cheat by making a ton of games under different names to rate your own games 😛 .

DoomCake – Postmortem

Posted by
Tuesday, April 28th, 2009 7:30 am

DoomCake was my first LD entry.  It was developed in Lua, using the LÖVE 2D engine.

In making this game, I learned a bit about Lua, and a lot about cake.  Read on to find out what a sugary zombie invasion might look like…


My ‘timelapse’ and journal part 1

Posted by
Monday, April 27th, 2009 8:02 am

Behind The Dumb Episode 6 is out at last!  It’s the first half of my timelapse and journal for LD14!  Check it out.  You don’t need to rate it, because while I did FILM it all during the weekend, I certainly didn’t have it all edited and ready by then.  And the second half won’t be out until voting is over anyway.  Still, it should be amusing to some.

Gray Screen Bug in FWOD

Posted by
Monday, April 27th, 2009 5:36 am

Unfortunalty I wrote the drawing code wrong* (outside of the gui thread) and this is the reason some people are getting the gray screen bug.

It doesn’t depend on your color depthor anything like that AFAIK, I will need to fix it in the code.

The good news is that I know more or less what to fix and just have to find the time to work on it again :)

[*] I’m a Java2D noob :(

Keeping up

Posted by
Sunday, April 26th, 2009 12:41 pm

Also joining the “give at least as many votes as you get” crowd.

Additionally, I generated a randomized list of the entries to play and rate for unbiased selection :)

The Final Solution – Postmortem

Posted by
Sunday, April 26th, 2009 12:35 pm

If you did not play my game “The Final Solution”, you can get its win32 binaries and source code from my previous post.

This is my first LD.

I recently attended Global Game Jam [1], which was another 48-hour game competition held in 53 places around the world. We were 48 developers in Ankara divided into 13 teams/individuals, working like bees in our cubicles. My two friends joined separate groups and I started to make a game myself.

Having people around to test your game really changes the development process, as in the case of Itchy! in GGJ [2]. However, as LD is a solo competition, and I wanted to allocate my full attention to it, I did not see anyone during LD, and did not go outside except for getting food.

To mention a few lessons learned in LD;


[Wall Girl] New version available, now with Easy mode

Posted by
Sunday, April 26th, 2009 7:08 am

In response to many comments, I spent a few hours to improve Wall Girl and have released the results.

Edit: If you have yet to rate Wall Girl, the older version is available at:

If you intend to rate the game, please do so before playing the new PR1 version.


– Most of my respondents observed that the game was too hard for them. In response, this new version comes with an Easy mode. Press X at the title screen to start Easy mode.

– The Normal mode has seen several balance changes. On the whole, the game is easier, but a couple of parts have actually been made more difficult.

– There is now music! Still no sound effects, though. I was really bummed that I couldn’t finish the music in time for the entry, but here it is. Not great, but it’s my first shot (in a very long while) at composing something from scratch.

– Several cosmetic enhancements have been made to the boss fight.

– This version has a readme! :) It’s actually more like a full-on manual…

I think this is really very close to how I envisioned the game when I first started work on it, apart from the lack of a tutorial mode. If you have a bit of time to spare, reviews and/or comments would be appreciated.

[cache: storing page]