This was my first ever attempt at Ludum Dare. I’ve kind of watched it the last 2 or 3 times, and a few weeks ago, I saw this one was coming up, so I decided to participate.
A bit of background about me: I’m not a professional game maker. My 9-5 is as a tech director at a branding agency. I mostly design and develop websites along with various other digital projects. I’m paid for being creative, and to me, it’s the best job in the world. I have a background in graphic design, and I used to be really fluent at AS3 back in the days it was acceptable to use on the web.
This game is my second ever game project. Well, sort of. I launched an iOS game this January as a test to see if I could do such a thing, and I’ve been building a platformer as a save the date card for my fiancé (Katie) and I’s upcoming wedding, and when I was an teenager my brother and I were obsessed with ZZT. Anyways, I’m new to the gamedev world.
The week before the competition I had several game ideas based on the themes were being narrowed. I had something for “Don’t Go Outside“. If it was “Abandoned” or “Survival“, I had a cute little concept that I kind of liked. I even had half an idea if “1000 Kittens” was the chosen one. When “evolution” was announced I was dumbstruck. I sat there just with an empty mind for several minutes. Over the course of that first hour or so I just kind of thought… and thought… and thought.
I trashed probably 4 or 5 potential concepts in the first hour or so. I threw out several ideas that seemed too easy. Things that I thought everyone would go with. I threw out concepts that I couldn’t wrap my mind around how to code. I talked to Katie about it and we talked about some of the ideas I had earlier in the week. My idea for “Abandoned” dealt with the loneliness and boredom a dog faces when it’s owners leave for the day. Lots of sleeping, walking around, barking at stuff. Getting it trouble for getting in the trash or drinking out of the toilet. Getting praised for barking at strangers. One look at Olive, our yellow lab, gave me the encouragement that was needed:
I jumped into photoshop and mocked up a sprite. I programmed some basic movement skills, and by midnight on the first night she was walking around in a really simple house.
Over the course of the next two days I stayed up later than I have in years, drank a ton of coffee, and programmed with the ferocity of 1000 suns. I took only a few short breaks, and by the time I was done I was completely wiped out. For the majority of the weekend, Olive slept by my feet as the keyboard was clacking.
What went right
Preparation - I prepared for LD24 by clearing out my home office, setting up the computer so there were no last minute surprises, and working in a language I was comfortable with. I made sure that I had nothing else pressing over the weekend. Plenty of soda in the fridge, plenty of coffee left, etc. I didn’t need to leave the house the whole weekend, though a few quick breaks helped my mind from feeling congested.
The Graphics - After I drew the first sprite of the dog sitting, I knew I was on the right path. Even though there wasn’t a single line of anything programmed, the idea felt concrete. I decided to go with an ultra low resolution sprite. I think it was 10×10 pixels. I figured it’d be less work because of “Hey! Less pixels to draw!”. I don’t know if that actually turned out to be the case, but I think I really like the aesthetic.
The Logic - Sometime during the second day I wrote out the flow of the dog’s motivation. “If the dog doesn’t need to go potty, and it’s not hungry, it should find something to do.”, “If the dog is really hungry, it should bark at the player because it’s angry.” It wasn’t a ton of code, but adding it made the dog feel alive. There was enough randomness that I didn’t know what it was going to do. The different stages of it’s life dictate different things. When it’s a puppy, sleeping and boredom take precedence over everything else. If you fulfill his needs as a pup, he’ll get bored less often as an adult, and should be easier to manage. If you take him outside when he needs to potty as a puppy, he’ll do it on his own as an adult.
The Interface - Through the first 80% of the project the interface was really basic. White words and buttons on a black background. It was functional, and looked fine with the basic pixelized graphics, but did nothing for the appearance. Setting aside an hour or so to design an nice looking interface (and adding a background) really paid off.
What went wrong
Getting Realistic - About halfway through Saturday I assessed my progress. I looked at what I had done thus far, and looked at what I still had ahead of me. I scrapped a ton. No more house full of details. No more cut scenes. I couldn’t figure out pathfinding with the system I had already built and rewriting it wasn’t an option at that point. So, I got rid of any obstacles. Simplifying everything made it far easier. I could see the light at the end.
The Volume - Alright… So, I didn’t test the volume at all before I published it. I made the sound effects in cfxr (the mac version of sfxr). I didn’t compare the volume to any other games, and I honestly didn’t know what I was doing. I was working in a vacuum. Turns out they were way too loud.
Last minute changes - As I wasbug testing I fixed a bug that caused the little flyout graphics to not go away on some computers. In the process I caused a bug where sometimes when the dog is an adult, it’ll be flipped the wrong way when it’s eating and appear as if it’s eating an invisible bowl of food. I didn’t know about this bug until it was too late. There’s another bug where if you clicked the buttons too much, those actions would be queued, and the dog would spend the rest of the time walking through your motions, even if it’s pooping 12 times in a row.
So, that’s it. I’m really proud of what I made. I surprised myself several times, and I think that’s what LD is all about. After the game was submitted, Olive was really happy that I finally had time to pay attention to her. Little did she know, in a way, I was the whole weekend.
Once everything is reviewed I’ll fix the bugs in the game. I’ll probably also spend a day tweaking things according to the feedback I’ve received. I’ll add in a bit more things to do, lower the volume on the sound effects, etc. But then, it’s on to other projects. I’d be lying if I said they didn’t include my dog in some way or another.