Two weekends ago, I hosted and participated in the MiniLD #20 competition.
Mini LDs are usually looser than regular Ludum Dare competitions in terms of rules enforcement, voting, time start and end times, and themes. The host can also enforce a different set of rules. For instance, one MiniLD involved using a specific palette of colors from a 64×64 image to load levels from, and it was interesting to see all of the completely different games share the same level data.
For MiniLD #20, I picked the theme “Greed”, with an optional fun theme of “Fishing”. The special rule I made: “Only one of each.”
In programming, it’s easy to make lots of copies of objects. Well, I’m putting a stop to that! For this MiniLD, you’ll need to ensure that every object in your game is unique. If you build a wall, there better be a single wall (it doesn’t matter how complex it is) and not many tiles composited together to make a wall (unless all of those tiles are completely different from each other, which might make an interesting game…) Granted, maybe everything derives from a common object, but you can’t have two objects that are exact copies of each other. If that means you can only make a few objects, then work within those constraints. B-)
While there was some griping about this rule from the participants, many of them pulled through and submitted a game. In all, 24 entries were submitted.
Unfortunately, The Old Man and the Monkey Thief, the game I was working on, wasn’t one of them.
Also, there were some complaints about how the MiniLD was handled overall, and while I wasn’t taking any of the complaints personally, I did think I let some people down. What follows is a post-mortem of both the game and the competition as a whole.
What Went Right
- Participation was high.
I was very pleased to see that 24 entries were submitted. I know that there were more games being developed that weekend that weren’t finished, so overall, there were many participants, especially for a MiniLD. I was happy to see that the special rule didn’t scare off too many people. There were even a few people who have never participated in a MiniLD before. A trial by fire for them!
- Simple art was quick art.
When it comes to creating art, I’m much better with a pencil than a computer program. I needed to create quite a bit of unique art, though, and I didn’t really have time to draw with a pencil much anyway. So what did I do? I took pictures with my camera and then traced those images in a separate Layer in the Gimp. That means this flask I got as a present for standing up in my sister’s wedding became a unique golden treasure in my game:
Oh, my kingdom for an artist!
But it worked well enough, and it was relatively quick. I even did a decent job creating the main character with a pencil drawing, did the layer tracing thing in the Gimp, and came up with a digital old man who didn’t look half bad!
Overall, tracing with layers in the Gimp made quick programmer art even quicker than it usually is! I didn’t have to worry about being bogged down in getting the lines or curves right.
- Being Prepared Helps Before the competition started, I did a quick MiniMiniLD for myself. I hadn’t done any code outside of a day job in many months, and my computer had been upgraded since then, so I wanted to ensure my development environment worked as expected. It would have been annoying to start the competition only to learn that my compiler or build scripts were unusable.
Also, I’ll go into more detail below, but I’m glad I had my backup plans! When a storm knocked the power out for me and apparently 30,000 other people, I’m glad I had my Uninterruptible Power Supply to keep my desktop computer from getting more damaged that it could have been. Also, my laptop let me continue work for over an hour after the power went out, and so it was lucky that I replaced the battery the week prior. When the power didn’t come back in the morning, I took my laptop to a new, powered location, and I was able to keep working even though my apartment went over a day without power. It was a horrible situation during a timed competition, but I think I responded to adversity well.
And it helps to have an encouraging girlfriend remind you that you can’t give up. B-)
What Went Wrong
- The power went out.
I took a nap Saturday evening, woke up in the middle of the night, and started working on my project. I had a number of ideas I wanted to implement, and I was wide awake. Around 3AM, with a storm raging outside, I found that my laptop was providing the only illumination in my apartment. The lamps were off, the UPS was beeping, and my desktop’s monitor was dark. That’s OK. I can SSH into my desktop to shut it off…oh. Wait. The router was not plugged into the UPS either. I made a note to change that situation for next time.
I lit a few candles, one in my office, and one in the dining room so I could see when I go out to get some water out of the fridge. Maybe 50 minutes later, the smoke alarm went off. It turns out that the dining room candle was on fire.
Now, I don’t play with fire much, but it wasn’t the fire itself that scared me. It was the fact that the candle, the thing that is meant to be used to hold a flame, was on fire! Another note for next time: don’t put out candle fires with water. The flames exploded upwards before dying out, and suddenly it was dark. I could hear the heated glass and metal parts of the candle holder tinkling, and I had no idea what was going on. And of course the office candle was also out since the melted wax drowned the flame. I had enough with fire for the night, so I didn’t bother relighting them.
So I sat down at my laptop and continued to work. I lowered the brightness and shut down many unneeded applications and was able to eek out 10 more minutes of battery life. Then I had nothing else to do but go to bed. Of course, I was wide awake. I could have searched for the flashlights in the dark or tried the candles again, but I decided this was a forced break and went to bed. My DS was still charged, and I played Advance Wars: Dual Strike for a bit before sleep took me.
The next morning, there was still no power. I learned it wasn’t just my apartment. It turns out that a huge part of Des Moines was without power due to the storms. The library is closed on Sundays due to budget cuts, and I wasn’t sure where the nearest wifi-enabled cafe with power was. Luckily my cell phone still worked, so I had people I could call and a basic way to do searches. My girlfriend was out of town, but I had the key to her apartment, so if she had power, I could work there, too.
I had options, but I’ll admit that I felt a bit defeated that Sunday morning. I wasn’t as enthusiastic about getting up and running again as I’d like to be able to report. Maybe it was because I was exhausted. Maybe it’s because my home office chair is hard to sit in for days at a time. Maybe I just missed seeing people. I was a new full-time indie, and I was secluding myself in my office for way too long as it is. Maybe I just needed exercise. Maybe I assumed the power would come back within hours and I wasn’t sure if I should venture out or stay home. Whatever it was, my motivation had dipped to the point that I was dragging my feet to decide which of these options I’d use.
When I talked to my girlfriend, she was very encouraging, especially as she heard the reluctance in my voice. This weekend was MiniLD weekend, so there’s really no excuse for me to not do what I can to continue. I packed my laptop, the laptop riser, some game dev books, and some papers and notes, and I headed over to her place. I didn’t have the key to the front door, but the doorbell is linked to her cell phone, so she buzzed me in remotely. And she had power at her apartment! Glorious power! I was able to continue work.
Of course, I lost a lot of my waking hours. While I don’t like shifting blame, especially since I had options, there aren’t many options at 3AM during a storm. Now, if my life depended on it, I’d have no qualms about waking people up at 3AM, but for a MiniLD? Still, while the power outage disrupted my work, it didn’t stop me completely.
- The Urgent took priority over the Important.
Some things I did other than work on my MiniLD project: called phone company tech support to find out why picture emails weren’t going through to recipients, played a video game, fight a literal fire and not just a metaphor for urgent business matters, read interesting blog posts or watched interesting YouTube videos, chatted on IRC with other MiniLD participants… Now, chatting on IRC is part of the fun of working in a Ludum Dare competition, but links get posted. I found myself distracted by links from Twitter, too. Being new to Des Moines, I spent part of my time looking up local game developers to connect with.
All of these things are fine on their own, but since I was supposed to be focusing on my game project, they were distractions, and I failed at putting them off until after the competition.
- I burned myself with my own special rule.
Only one of each was meant to challenge developers to try to do as much as they could with less. Unfortunately, there was some confusion as to what was on or off limits. Could you have the same sprite displayed two times if one had a red color overlay while the other had blue? What if you just add noise so they look different?
Now, I think the idea of using noise to get around the limitation was clever, but outside of that, there were two options: do lots of unique content, or do a game involving only a few unique items. The latter would definitely be doable and be more along the lines of what I was hoping for.
So of course I ended up making a game that required lots of unique content. B-(
Now, being the host, I knew about the special rule long before anyone else did, but I didn’t think about the kind of game I would make until I started the competition. In hindsight, I should have cheated and thought my game idea through before the theme/rule announcement.
The Old Man and the Monkey Thief was supposed to be about an old man who goes to sleep one night only to wake up and find that all of the unique treasures he collected over the course of his long life were stolen by this energetic, ninja-like thief. The old man then had to go into the world, collect these unique items, and use them to save his wife. I figured he could use the fishing pole as a way to retrieve otherwise inaccessible items, and so the secondary theme was satisfied.
What I didn’t realize was how much work it is to program unique items! I spent a huge chunk of a day getting the fishing hook and the key to work. By the time they were implemented, I was afraid to add a third item because of how much work would be involved, and time was running out. Now, this is 48 hours. Imagine being a game developer on a 3 year project and learning that you need to implement another item without letting the deadline slip. I got some insight into that kind of despair.
Essentially, having only one of each item meant that they were either reusable, like the fishing hook, or one-offs, like the key. Either way, this rule encouraged feature-creep if you intended to make a game with a lot of unique content. If I could do it all over again, I’d have tried to do more with the fishing pole alone rather than try to have more than one usable item. Less is more, and I probably should have made a note that it was my original intent with the rule.
- The little things.
When I decided on the themes and special rule, I wrote up a blog post and scheduled it to publish when the competition started. There’s a problem with doing so on the main LudumDare.com site. Editors can see the post before it’s published! So I wrote the theme and rules in a post on my own blog, then used the LD post to link to it. Great!
Except something went wrong. For some reason, the LD post didn’t publish, and it took some time to get it corrected. I was away at an event, but I checked in, found out about the problem, and got it working somehow. IRC participants learned about it, but people who were depending on the website being updated at the correct time were out of luck.
I didn’t request a submission form for the competition until near the end when I realized that there were so many participants. Some people had finished before the form went up, so they had to retroactively submit their games. Not a big deal, but it could have been smoother.
And the end? I could have handled the ending better.
Since it was only a MiniLD, the 48 hours is a bit flexible. While it officially started at a specific time, the usual expectation is that you could do any 48 hour period in that weekend. Since I had power issues, and other people were also hoping for a little more time, I thought I’d allow the competition to continue into Monday.
Then the fact that I’m running my own business took over, and other priorities came up. When I finally had time to dedicate to LD again, I learned that some people felt like the MiniLD had no closure. It was understood to be over, but there was no fanfare or official word. The submission form allowed for the entries to have ratings, but since voting was not enabled, participants couldn’t vote. MiniLD #20 felt like it just stopped, especially for people who weren’t in IRC and were relying on the main website for their up-to-date competition information. New LDers can’t be faulted for not understanding what was happening. I had every intention of providing a proper ending, but as the host, I dropped the ball.
What I Learned
- There’s more to being a MiniLD host than announcing a theme.
Being a MiniLD host, I found I had some unexpected responsibilities. Namely, I needed to keep things going for everyone to ensure they had a good time! Now, I’m not being paid, and no one else is either, but I still feel terrible that people felt the weekend was somewhat spoiled due to my inability to prepare for those responsibilities. I plan on writing up a checklist for future MiniLD hosts. It may sound a bit formal for such a loose event, but I think it would help everyone have a better time going forward.
- Feature creep is insidious.
Let’s extrapolate The Old Man and the Monkey Thief from a 48-hour project to a six month project. Thinking that I’ll add just one more item might mean I spend a few weeks to a month doing so. And if I have an item that can be used, that means creating objects and a section of the map that allows you to make use of it. For instance, I wanted the old man to find a unique tie, which he could use to tie up pieces of wood together to make a boat. Making a tie, suddenly the work is to create boat components and a boat, and why would the boat exist if not to allow you to get across water, and if you can cross water…. The point is that the scope of the project blows up quickly. I realized I was making a poor Zelda clone.
On the other hand, if a game makes use of a single mechanic, suddenly it’s much more manageable. What if the entire game involved the use of that fishing hook? I probably could have finished a game using just that one mechanic.
- I need to work on my discipline.
I found myself getting distracted too easily this MiniLD. When adversity hit, I didn’t respond immediately and affirmatively, at least not right away. One of my favorite quotes is “Discipline is remembering what you want”, and I need to remember what I want and why I’m doing what I do if I want to see myself through to the end of any future projects.
All that said, I think MiniLD #20 was a success for me. The Old Man and the Monkey Thief is the first game I’ve ever created that made use of a scrolling background. Previous games used a single screen. To determine where the old man can and cannot walk, I normally would check the tiles, but since I didn’t have tiles, I did something I’ve never done before. I created a black & white version of the entire world map, which the player never sees, and one color represented where the player could walk. Once again, a 48-hour game development competition allowed me to learn some new techniques. I also learned what areas I need to work on. Discipline and project planning in 48-hours is one thing, but discipline and project planning in months or a year? I won’t last very long as a full-time indie if I don’t figure those out.