About Jwatt

boheme eccentric


Ludum Dare 36
Ludum Dare 36 Warmup
Ludum Dare 34
Ludum Dare 32
MiniLD #55
Ludum Dare 30
Ludum Dare 29
Ludum Dare 28
Ludum Dare 27
Ludum Dare 26
Ludum Dare 25
Ludum Dare 25 Warmup
Ludum Dare 24
Ludum Dare 23
Ludum Dare 22
Ludum Dare 21

Jwatt's Trophies

Archive for the ‘LD #21’ Category

Escaping Ludum Dare

Posted by
Wednesday, August 24th, 2011 5:24 am

I guess I’m going to write a bit of a post-mortem here about Escape the Fate. My other blarg post focused on bugs, this is more about the development process.

See, I’m a first-timer on Ludum Dare. I initially didn’t think I’d have a finished game in the end, I just wanted to try it out and see how far I’d get in two days. It turns out I can work quite efficiently under pressure. Simply having a submission exceeded my expectations, but not being ashamed of it was even more of a milestone.

I did know about Ludum Dare before, but I hadn’t thought about entering. The TIGSource community mentioned it shortly before it started, and this time I went with the flow. There were some promising themes in the voting; I was hoping for something specific enough to narrow down the entries a bit, but also something general enough to not produce gimmicky games. Waking up and finding out about the “escape” theme was satisfying in that sense.

The event started at 5 AM local time, so luckily I had gone to sleep early enough to wake up at 7 AM. Didn’t even need an alarm clock; it’s as if my body was ready for the competition.

I realized most games would take the theme literally, as in there would be a threat you’re escaping from. I wanted to do something different, and the idea of “escaping your body” by killing yourself quickly struck me. It took me just about half an hour from getting up to getting down to business.

I decided to follow others’ advice and do most coding on Saturday, leaving the fancy presentation stuff for Sunday. Since I’m still a bit hazy in the C++/SFML department, I went for the safe choice of Python/Pygame. Once I had a basic engine running, I started designing levels.

So indie.

Then ideas just started flowing, and I repeated the cycle of adding a level/programming a game mechanic for the rest of the day. Moving platforms, switches, blocks activated by them, collectibles, springs… They’re very universal and recognizable features, but in the context of a suicide game, I managed to give them whole new meanings. It was interesting trying to prevent the player from killing himself before the intended part. I paid special attention to the level progression: the first levels are more puzzle-like, the later ones require more reflexes.

I found myself ahead of the schedule, so I started making graphics and music in the evening. It was an okay decision for me. Meanwhile many other people, even previous participants, were still only trying to think of an original idea at this point. This reaffirmed my previous beliefs that schadenfreude is motivational.

I went to sleep early and quite optimistic, with something playable and occasionally fun on my hands. But as you might expect, Sunday was more problematic. My code was fast becoming unreadable, and even worse, broken. The pushable blocks in particular caused incidents that were hilarious when they happened, but tragic when I realized I have to fix them somehow.

Luckily, I managed to avoid that for a while by derping around on IRC and polishing the presentation to what it looks like now. I fell into a coding trance in the evening and escaped my own body, but I did eventually have something to submit. Little did I know it wouldn’t work on anyone else’s computer.

I’m impressed by how py2exe packaging was still incomplete after all the added weight. I did manage to isolate the cause to the freaking font and repackage painfully, making unnoticeable perfectionist tweaks after each upload.

The consensus on my game seems to be “polished and challenging” in a nutshell. The concept is distinctive, the levels are memorable, the controls are responsive, the graphics are a step up from programmer art, and the audio suits the mood. However, people have asked for more instructions on the experimental game mechanic. While figuring out level solutions is in the spirit of a puzzle game, I think it’s a reasonable response, and I now know what concerns to address if I ever do an improved post-compo game.

What I regret most is that I had a bit of a rough release. At least I’ve tried to swiftly fix any game-breaking bugs that didn’t show up on my end. If I could do something differently, I’d make more people test my game before submitting, so I would have to do less patches afterwards. Even though bugfixes are allowed after the deadline, I’d love to have just tossed the game on the site before running away and not looking back.

Black clouds above my residence

Posted by
Tuesday, August 23rd, 2011 5:25 am

Fixed the event in the fifth level, which was broken by bugfix 1.0c. Squish a bug, create a new one, it’s the circle of life. Go try it now.

Escape the Fate


Posted by
Monday, August 22nd, 2011 1:07 pm

I was relieved to get everything inĀ Escape the Fate working in due time. However, some problems arose after entering.

One tester quickly reported the game crashes for him on startup. I spent a while Googling about py2exe’s quirks and isolated the cause to the font. Had to include that in the download (it’s a free font, don’t worry) and force users to install it before playing.

Later on, people complained the game was confusing with its two different types of falling. Instead of throwing the player straight into the action, I added an intro level which limits the interaction to a minimal amount of tiles. It’s amazing how the mechanics of falling suddenly became self-explanatory. This was on the extended time, so with the slight addition, the game still qualified for the compo.

Just a moment ago, I was giving tips to a player who seemed a bit lost. I wondered why, he hadn’t even gotten to the tricky part yet. Apparently, the game was too big for his laptop screen, and parts of it were cut off so that the level was unplayable. Yesterday I realized this might happen, but I kind of forgot about it when I was busy fixing collisions. That goes under bugfixes, so it won’t get me disqualified from the compo either, especially when I posted it as an alternative download. I should know since I’ve answered several questions about an update’s validity on #ludumdare.

Speaking about IRC, my username is different between the site and the channel. I’m also known as Jiggawatt; I simply failed to predict I’d be using the IRC channel much, so I registered here with something else than my standard issue IRC nick.

For those who actually got the game working and even understood what’s going on, the feedback’s been positive. So go try it.

Game over

Posted by
Sunday, August 21st, 2011 2:04 pm

Escape the Fate, a suicidal puzzle game, is now done with a handful of hours to spare. I’m surprised I made it considering the roadblocks. It was certainly a motivating experience and I’m willing to do it again.

Not right away, though.

Escape the Fate: http://www.ludumdare.com/compo/ludum-dare-21/?action=preview&uid=5551


The Final Push

Posted by
Sunday, August 21st, 2011 9:49 am




So close yet so far

Posted by
Sunday, August 21st, 2011 8:57 am


With 10 hours to go, here’s a beta with collision bugs and an unfinished level. It’ll however give you a good sense of what you’re going to get. I’m going to be able to submit something alright, but I’d feel dirty if this were the finished one.

Sadism and its counterpart

Posted by
Sunday, August 21st, 2011 4:10 am

Tee hee. While this level is fun, it also shows how damn buggy collisions are.

Animations done, sounds working, some more tricks on the way. Can’t think of any major changes I’d have to make, so I believe I’m in the clear! I haven’t tried py2exe before, though, so time will tell if I’ll be able to package this thing properly.


Posted by
Sunday, August 21st, 2011 2:07 am

There we go.

Need to finish animations, audio and add more levels. Always more levels. Around 10 polished ones should be enough for release, though.

Gripes: The code is getting a bit messy thanks to my fixes. I still can’t record videos. The sound effects seem to play whenever they want to.


Posted by
Sunday, August 21st, 2011 12:23 am






Posted by
Saturday, August 20th, 2011 10:24 am

Springs. A design challenge to keep the player from killing himself too early, but they also add variation and Action!.

My levels are becoming increasingly more complex. It’s very much my style, I don’t mind it, it’s just that the countdown clock does.

Edit: Nudged the image to the right. Still room for cropping the scene, I guess.

Deep in it

Posted by
Saturday, August 20th, 2011 7:44 am

Right, so it actually has some graphics and music now! Starting to seem more like an actual game. Almost looks like I’m going to finish it, but I won’t get cocky just yet.

I’ve removed two horizontal and two vertical lines from the data of each level. There was a lot of empty space, and there still is. I might have to include an option to turn scaling off for those with laptops or otherwise small screens.

Something playable!

Posted by
Saturday, August 20th, 2011 5:25 am


Needs Python+PyGame. 4 levels so far. I know about the moving platform glitches and I’m onto them, but otherwise everything seems to hold together somehow.

Jerky movement is still movement

Posted by
Saturday, August 20th, 2011 5:01 am

Another level! Used pen and paper to sketch this one. That seems to help whenever I can’t think clearly, I recommend trying it.

I would’ve recorded a video, but Camstudio isn’t my friend. Everything plays back at 4 FPS or so even though I wasted valuable time tinkering with the settings.

The cherry-colored rectangles are switches that toggle the white blocks on/off. It would’ve been more clear as a video, but oh well. Managed to fix a complicated bug involving collisions and pushing forces, which is crucial to the sort-of-witty solution for this level. Sometimes I amaze myself under pressure.

Moving on (in several ways)

Posted by
Saturday, August 20th, 2011 1:20 am

Level 2. Man, didn’t expect those moving platforms to cause me grief. I guess you just can’t plan everything ahead in Ludum Dare. They’re a bit buggy, but close enough to say they’re working!

I’ve got it now: every level is going to have one of the pictured yellow collectibles that take extra effort to get. Killing yourself is enough to move on to the next host body, but you can’t escape the curse (and get the good ending) unless you gather all the collectibles as well.

Off to a good start

Posted by
Friday, August 19th, 2011 11:14 pm


Right, so this is the first level. Everything’s working as it should; you win by getting to the upper stairs, jumping down and leaving the body you’re possessing. I’m already brainstorming for visual styles, music, traps and tricks, etc..

Baby steps

Posted by
Friday, August 19th, 2011 10:08 pm

Right, so in addition to my idea, I’ve now got something moving on the screen.

[cache: storing page]