About Barry Abrams (twitter: @barryabrams)

I'm a web designer and developer in central illinois.


Ludum Dare 24

Barry Abrams's Trophies

Barry Abrams's Archive

Yellow Dog Post Mortem

Posted by (twitter: @barryabrams)
Friday, August 31st, 2012 5:55 am

The game can be played here. Also, I’ve got my time-lapse here.

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 Process

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.

Yellow Dog Time-lapse

Posted by (twitter: @barryabrams)
Tuesday, August 28th, 2012 11:20 am

I’ll do a real postmortem when i get the chance, but here’s the time-lapse  of my game yellow dog.

As you can see, I abandoned a bunch of superfluous graphics about 2 minutes in. I realized that there was no way I could finish on time if I kept going.

This dog is done!

Posted by (twitter: @barryabrams)
Sunday, August 26th, 2012 2:37 pm

Yellow dog is done, and has been submitted. You can see the entry and play the game and comment on the entry page.

I took a time lapse of everything up until now, which I should have online in a few days. And I’ll do a recap of the struggles I had (as well as describe some bugs that became features) in a few days as well.

Looking forward to a night of relaxation.

Progress Report

Posted by (twitter: @barryabrams)
Saturday, August 25th, 2012 9:48 pm

So, I’ve made a ton of progress today. Not only did I solidify the game’s concept, I solidified the game’s mechanics as well. Tomorrow will mostly be a tweaking & sound effects day. The code works pretty well, though there’s some situations where elements don’t exactly line up and the dog will be a pixel off from the food dish.

I’m tentatively calling my game Yellow Dog. We have a beloved yellow labrador, and she’s missing out on my company this weekend, since I’m doing this. If she only knew…


Posted by (twitter: @barryabrams)
Saturday, August 25th, 2012 11:24 am

Got a bit of logic worked out. The next few hours are most likely animating various animations such as “bark”, “eat & drink”, & poop.” This’ll be fun.


First Update

Posted by (twitter: @barryabrams)
Saturday, August 25th, 2012 5:30 am

If you knew me, you’d know that I’d try to work in a yellow dog somewhere…

I’ve got an overall concept down, but I’ll save that for another post. Today will be a long day. This morning I’m in the process of building graphics, and setting up an engine to support collision detection (the dog gets stupid around walls) as well as the passage of time.

You can see some of the basic animations of the yellow dog by following this link. Click elsewhere in the scene to get the dog to move around.


I’m in!

Posted by (twitter: @barryabrams)
Sunday, August 19th, 2012 5:16 pm

This will be my LD. I’ve only built a handful of games (iOS, flash, etc), but I have about a decade of Actionscript experience, and a love of old arcade games.*  I’m super excited!

Language: As3
IDE: FlashDevelop
Graphics: Photoshop, Illustrator, Pixen
Audio: sfxr
Extra Libraries:  Likely Flashpunk and Green Sock’s TweenMax

I’m going to try to set up a time lapsed screen recording to show my progress. But unless I can figure out how to get it working right on a mac, I may not want to use up any extra system resources.

*Here’s what my arcade currently looks like.

[cache: storing page]