Home | Rules and Guide | Sign In/Create Account | Write a Post | Donate | #ludumdare on irc.afternet.org (Info)

Ludum Dare 24 — Coming August 2012

Ludum Dare 23 — April 20th-23rd, 2012 — 10 Year Anniversary
[ Results: Top 50 Compo, Jam | Top 25 Categories | View My Entry ]
[ View All 1402 Games (Compo Only, Jam Only) | Warmup ]


Standard Waiver postmortem

Posted by
April 24th, 2009 4:13 am

Standard Waiver, a short atmospheric first-person exploration game, was my first Ludum Dare entry. Here’s what went into it.


The foreground obelisk obscures the background one. It’s a mystery!


PREPARATION

While I’ve always been great at not finishing games, I hadn’t even started a project for months. I’d gotten a boost of inspiration from an article on Cactus’ GDC lecture, and then LD14 came along at a perfect time. I decided to use this event as an opportunity to get back on the horse and actually complete something. I almost never finish anything which takes more than a couple of days anyway, so short competitions are brilliant. Looking back what Google remembers of my suddenly-dead website it seems I even took part in a 28-minute compo once.

Knowing that I focus best when I’m trying out something new I also decided to give Construct a proper go. I’d been messing about with it for a few weeks and was fairly comfortable with the transition from MMF, and Construct is itself a far more pleasant environment to work in. Taking into account that it’s not quite reached v1.0 yet and occasionally crashes it’s now at a very useable stage.

My pay came on Friday, in cash. That allowed me to purchase the new microwave I needed in order to remove the time-consuming issue of food preparation from my weekend. It also allowed me to pick up the TV I’d resolved not to buy until Monday. Fortunately I managed to resist playing the big pile of console games I’d picked up on the previous weekend.
Also on Friday I was informed of two things which would give me complete freedom of sleeping pattern: I didn’t have to work this week, and my girlfriend would be staying with relatives on Saturday night.

DAY 1

Advancing Wall of Doom wasn’t my first choice, but the ‘DOOM’ part did suggest that I try out one of the ideas I’d been wanting to experiment with: reproducing an FPS engine in Construct, which is intended as a 2D game authoring package with only very limited 3D support. In fact the only true 3D that comes built-in is the ’3D Box object’, so that’s what I’d be using. Graphically that would limit me to making not much more than a Wolf3D-era game, so that was my aim.
When the theme was announced I was in the middle of a class with some of my tutorial students. After they left, excited to begin, I jumped in and started working with only a loose idea for a shooter set on a space ship in mind as that would let me do some fun Zerg impressions when it came time to record sound effects. Crushing pushwalls and stuff would satisfy the theme.
I quickly ran into my first problem. I had for some reason assumed that Construct’s Families would be a little more DWIM than MMF’s Groups, but my attempt at simplifying the code with them did not behave as expected. I weighed the unknown period of time it would take to find an alternative (which would let me add new wall types very easily) against simply duplicating a few lines and elected the latter, with the intention that I could simply replace the textures of the walls for each level without touching the code.

After that, getting the basics down was surprisingly easy. I had a Wolfenstein-type engine, managed to add headbob and angled walls–which can actually do all kinds of fun stuff like being pushed and rotating during play but I forgot to use any of that in the levels–and I even added jumping at one point before deciding that first-person jumping puzzles suck and dropping it.
I bought some plastic guns on sale at the toy shop downstairs (to ‘digitise’) before deciding not to have weapons at all in favour of making an atmosphere-centred exploration game. This decision was brought on partly for the time it would save, partly for the theme-related doom it could add, and partly because I discovered that if you suck air through the sweets I’d been eating it makes a fantastic ambient wind noise.
The game would take place on a planet now rather than a space ship, because I found I could make a landscape from the cubes easily by giving the cubes random heights.

I had a great feeling of being ahead of schedule. Day 2 would be for building levels, so I decided to take a break to wind down before sleep. But after some snacks and a movie, my excitement was still pushing strongly enough that I finished off the first level in bed.

DAY 2

Jumped out of bed an hour before my alarm went off, snatched up my laptop, and dove back in.

I learned something new when I began level 2. Construct doesn’t handle ‘frames’ the same way MMF does: it doesn’t isolate objects, allowing each frame to be fucked with totally independently. Thus my small problem with Families became a big problem of copy/pasting a handful of action lines for a dozen new cubes and updating the references manually. Manually because the find and replace feature of Construct doesn’t seem to work properly yet.

Towards the end of level 2 I discovered a new problem, when for the first time I got an error without an abrupt exit. This time it was whining about vram. Looks like Construct readies all the 3D Box object textures at the get-go, and stupidly I’d been pasting in my textures without scaling them down from the original sizes I made them at. A strange feature of the 3D Box object is that you can’t simply reuse textures, you have to include a separate one for each face, and since I wasn’t sure which faces were the unseen tops and bottoms in my game I was adding them all. So not only was each texture four times bigger than necessary, they were being duplicated in memory six times over. I went back and replaced all the unseen faces with 1×1 black squares and scaled down new textures as I added them from that point on.

I made a few tough decisions here about gimmicks I wanted to use for building atmosphere. There’s one section that is supposed to confuse players, even frustrate them slightly, but if they get stuck too long that will backfire. I tried to fine tune it but couldn’t get the game online for people to test, so I had to just guess at the optimum difficulty. In hindsight, making the layout more linear might have been smarter.

With level 2 and 3 finished I thought up a title, updated a bit of text, and added a ‘feature’ which would keep people from wasting their time trying to outsmart the endgame. I anticipated criticism on that either way, but this would make the feedback more interesting.

The biggest challenge of the last three hours was trying to get the damn thing online. My new ISP, as it turns out, is worthless on weekends. Thanks to Morre reassembling the 8-part rar archive I had to email him the day was saved.


The left faces are half the resolution of the right faces. Or is that the other way around? I’ve forgotten.

GOOD

-Jumping right in without a solid design in mind worked well and saved me a bunch of time. It restricted my options for the design, but isn’t that a good thing for a 48-hour timeframe? It certainly prevented me biting off more than I could chew.
-I’ve never tried to focus on atmosphere before but the feedback I’m getting has been positive. It seems a little atmosphere adds a lot to people’s impression of a game, so it was a good investment of time and overall was much easier than adding weapons and a bunch of foes.
-A weakness of mine is animation. I’m never happy with the results so I tend to waste a lot of time on it. This game has almost none. Doors move and plants pulsate with a sine behaviour, and that’s about it. Yet that too contributes to the effect. I think.

BAD

-Working with inclomplete software with minimal documentation wasn’t that bad, but I still had to deal with crashes and weirdness. The transparent areas of the boxes acting as sprites obscure other sprites sometimes, and I have no idea why.
-Being unfamiliar with Construct lead to problems such as the texture issue, and the problem that started with Families which was a direct result of me still working in an MMF mindset. Overall I doubt that wasted more than half an hour though, and I learned something.
-I got the game uploaded in time, but I could very well not have. My website went down without notice some time in the past and I had no plan at all for getting my entry online.

CONCLUSION

Motivation up. That’s what I wanted from LD14 and that’s what I’m feeling. I learned a few things and I’m happy with my entry and the feedback I’m getting. There are things I’d do differently next time with the help of some testers and for that I’d probably need a new ISP. But the most important thing for me is that I’ve finished a game, had a great time doing so, and I’m hungry to make more.

Tags:

2 Responses to “Standard Waiver postmortem”

  1. noonat says:

    Great postmortem… loved the photos to accompany it. :)

  2. PsySal says:

    Liked this post mortem. I agree about not having too much of a plan. Plans need to be flexible, and you need to be able to pounce on an idea when it presents itself (like not having enemies), not be lock-strapped into an idea that’s worn out of it’s worthiness!

Leave a Reply

You must be logged in to post a comment.


All posts, images, and comments are owned by their creators.

[fcache: storing page]