Postmortem – Before Night Falls

Posted by (twitter: @wetdesertrock)
December 17th, 2013 12:12 am

I figured I’d do a brief blog post about my first experience with Ludum Dare. I didn’t do any posts during, as I was focused on the game and didn’t know how much time I’d need. You can find my game post here.

This document is formatted by putting the general more easily accessible things first, and then moving onto items that you may or may not care about. I’ll start off by explaining my game a little bit, then I’ll talk about my experiences, and then finally with the development, starting with general game development ideas and then with the more technical aspects that I thought were interesting.

Warning, this document is largely unedited. I am also not generally a game developer, so I may find simple things about the process interesting.

The Game

Before Night Falls Is a game built off of an idea best represented by Corridor Digital in this video:

Although I may of been inspired, at a later point by this video, the genesis of my idea came about from thinking about the fugue form.

Each level is supposedly a day (you can think of it as any unit of time though), you are limited to a certain amount of moves to complete a puzzle in a given timespan. In this game I made each turn take one hour of in-game time. The twist, is that you have several “lives” that you can live out. At the end of each day, it resets and you get to start anew. However, this time your past self (called an Echo) does the same thing, and you can do new things. Technically, you can have an infinite amount of Echoes, but to keep the game interesting and difficult, each level limits the maximum amount of lives.

If you haven’t tried out, I’d suggest it. The reviews seem to indicate that people enjoyed the main puzzle mechanic.

What I learned

  • First, Ludum Dare is awesome! The community is great, although I didn’t participate on the blogs and such I did talk with people on IRC. The way it encourages community interaction is great.
  • Although I believe I was successful in this aspect, it is important to limit yourself to a simple concept and build off of that. By doing that you can add on if you have more time, but if you run behind you can still release a game in time.
  • Developing for python is great, and probably not a bad idea. But using something that can export to the web will get you more feedback during development (probably), as well as making it easier for people to play your game.
  • Get a start on the dare immediately. Learn the theme, and then sit on it for an hour or two. Then brainstorm.
  • Game development is interesting and difficult, you have to develop for people who aren’t programmers. Its hard.

Development

The game concept was a pretty easy one. All I had to do was flesh out the player class and make it work with a world class. Then I just built on top of that. It got a little bit messy with the classes and purposes for the classes towards the end.

Game Development

I do not consider myself a game programmer. I’m not even a professional programmer. I still am in school, but as a music major. Most of my programs include data collection, interpretation, and (when I’m lucky) displaying data in an interesting fashion. I rarely create games from the ground up, and work on them to completion. I’ve never worked with making the interface between the game and the player a good one. With a concept like mine which is fairly new, I didn’t make my job any easier. I’m good at writing text and explaining things (I hope, you be the judge), but the player frequently doesn’t read that text. Under limited time I had to rework the interface to make it nicer (really, just do improvements that should’ve been done in the first place),  but I wasn’t expecting the need to do that. Its easy to know what the game is doing as a programmer, and forget about what the player thinks is going on.

Map Implementation

One problem I faced early on was level development. I knew that I wanted a system based off of solids and empties, and entities that laid on top of that. I didn’t know how I wanted to store that level data. The grid (the basic geometry) is pretty easy, all I needed were ones and zeros. I didn’t want any special development tools needed to create this grid however. So I decided I’d store the map data in my own custom human readable format. This is what it looks like:

#   0                   1                   
#   0 1 2 3 4 5 6 7 8 9 0 1
 0: & & & & & & & & & & & &
 1: & & & & & & - & & & & &
 2: & & & & & - - - - & & &
 3: & & & & & - & & - & & &
 4: & & & & - - - - - & & &
 5: & & & & - & - & - & & &
 6: & & & & - - - - - & & &
 7: & & & & & & - & & & & &
 8: & & & & & & - & & & & &
 9: & & & & & & - & & & & &
10: & & & & & & - & & & & &
11: & & & & & & & & & & & &

This format makes it easy to see row and column numbers. The comments at the top provide the x-axis. The row numbers (these numbers actually specify the y value to the game, don’t ask me why) are also easy to read and interpret. The ampersand denotes that the square is a solid, the – denotes that it is a space. You can change this in the maps config though. This was an important format, as it allowed me to procrastinate and not create a GUI for editing this. I did later though.

The interesting thing is that the way you indicate how many squares there are, is not by a width and height. I decided to set the width and height (pixel wise) to a number that has many factors. This made rendering and other things easier. The length side (in pixels) was 576.

This means the available  sizes are: 1, 2, 3, 4, 6, 8, 9, 12, 16, 18, 24, 32, 36, 48, 64, 72, 96, 144, 192, 288. I mostly stayed in the 24-64 range.

Development Techniques (Or lack thereof)

Throughout development I used git, and halfway through started pushing the commits to my repository on github. I also found that I wasn’t following the best practices due to feeling rushed. I think this is almost to be expected in a 48 hours. I do wish I formatted my project like a real python module. Oh well. Also, sorry for the complete lack of comments. Oops. Next time.

Tags: , , ,


One Response to “Postmortem – Before Night Falls”

  1. Elforama says:

    I saw the video that inspired your game, and it inspired mine as well!

    I quickly went to play your game, but it wouldn’t work on my mac for some reason, looks like others with retina displays had the same issue. However I read some comments saying it was a puzzle game… mine is a puzzle game as well!

    In my game inspired by the video, you play through a level as 3 different characters sequentially with different abilities. The affects each character made on the world stay for the next character to use. This is a basis of my puzzle mechanic. I hope you’ll give it a try and let me know what you think, although the controls are a bit wonky. The last two levels, 4 and 5, show this mechanic I’m talking about. The first 3 are basically tutorials.

    http://www.ludumdare.com/compo/ludum-dare-28/?action=preview&uid=23982

Leave a Reply

You must be logged in to post a comment.

[cache: storing page]