Entries in competition (2)

Monday
Dec152014

Ludum Dare 31 Entry - SUPER FUN FAMILY PRIMETIME TELEVISION SIMULATOR

Click here to visit the Ludum Dare entry page

This is the first Ludum Dare where I’ve had a “full-time” partner through the entire weekend. My brother Spencer was able to work entirely on the art while I focused entirely on the programming. Clark Aboud was also able to contribute some amazing music as he has done in my previous entries like TIMEframe.

We wanted to do something a little outside the box with the theme of “Entire game on one screen” so we took it literally and decided to have the game revolve around an actual TV screen. So, how do you make a game mechanic out of that? How about trying to keep your family happy by finding something to watch.

We set off in this direction with a goal of getting high marks in the Humor category by having lots of really funny little micro-parody shows on the television with unique art and audio. This idea was ambitious to say the least. With a family of four we settled on 16 unique channels and 64 unique shows.

This was probably our biggest mistake setting out. We could have managed to get largely the same gameplay out of a much smaller set of possible shows and it would have saved us tons of time. On the programming side it took me countless hours developing a system to randomize the various channels and shows to have a unique experience every playthrough. On the art and audio side it became obvious that we could not craft each and every show by hand. We settled by creating unique music for about 17 shows and unique art for the channel logos and commercials. The rest of the show images were grabbed and filtered from actual shows and the rest of the audio was done “Charlie Brown Adult”-style with Spencer mumbling hilarious parody versions of all the remaining shows. In the end we were extremely satisfied with the humor we managed to squeak out of concept, but we certainly could have done much more with a smaller selection of shows from the start.

On the plus side I did learn a ton about randomization of game elements. This should really come in handy for some things I would like to do in our professional project, Lacuna Passage. I’m also quite happy with the art style we came up with for the living room and family members. The cel-shaded style lends itself well to the comic-nature of the game and it was extremely fast to create without needing to worry about textures.

The actual scoring mechanic is something that we didn’t actually add into the game until the last 2 hours before the deadline. This was a bit scary not knowing if the game would actually be fun to play, but thankfully we had a pretty solid base built up for tracking which characters liked which shows and a scoring mechanic came from that pretty naturally. The only thing I think feels a bit off is the fact that you are playing as one of the characters that you must also keep happy. That perspective is not the most intuitive when needing to display the scores for each family member. Your score (the father’s) is placed down towards the bottom of the screen which is difficult to quickly compare to the scores of your other family members at the top left of the screen. Ultimately this is a minor issue and with some additional time I think it could be adjusted to make more sense.

I’m extremely happy with what we managed to put together in such a short time and that is in no small part due to the fact that I had a more dedicated team for this jam. I’m looking forward to the next Ludum Dare so that we can apply everything that we’ve learned to a new entry!

 

Thursday
Aug302012

Beast Feast - Ludum Dare 24 Jam Postmortem

 

So... I programmed a game in less than 72 hours. It's totally playable and, dare I say... decent. I was recruited for this Ludum Dare by the one and only UndergroundPixel at almost the last possible minute and we quickly got to work. The theme was evolution and our idea was simple: You are a monster that drops bombs that kill other monsters that you then eat to evolve. I honestly expected that we would come up with something more complex and slim it down as we ran out of time, but we genuinely delieverd on our original idea. Probably a result of starting with something so simple.

The first thing I set out to do was create some really solid 8-direction controls with basic acceleration, deceleration, and smoothing. Some people might disagree with this decision in an attempt to retain the "retro" feel of the game, but I wanted it to feel more deliberate and not just a thrown together binary system. I spent probably the first couple hours getting it just right, though that is more a result of my very basic programming skills.

After that I quickly adapted some of the movement code for the first enemy AI. I spent a TON of time getting the little orange guy just right. We wanted him to have a certain amount of random motion, but at the same time we wanted him to pursue you if you got too close. To acheive this I gave him a small radius in which he is more "attracted" to you. Otherwise he moves with trajectories of varying degree, reorienting himself in your general direction after hitting walls. The key was making him somewhat unpredictable so that even in later levels he might pose a challege among large numbers of enemies.

When I was finally happy with the little orange guy I started iterating on him to create big red and the croc man. With big red I made him much more aggressive and accurate. To counter act that difficulty increase I made him stop every few seconds and get "angry", stomping up and down... a chance to prepare yourself for his next charge. With croc man I just turned that following behavior up as close to 11 as I could while still making him defeatable.

To mix up those enemies a bit I threw in some more standard fare. Some random 4-directional movers and random vector movers (purple slug and pink slug). The bouncing ghost was going to have a more fluid bouncing motion, but I kind of ran out of time with him and he just became a 4-direction mover with periodic pauses. Oh well.

After all the movement was done I played around with the spawning rates to get a decent difficulty curve, but all of that ended up being tied directly to your "evolution" level. The spawn rates go up if you are doing well (evolving) and go down if you are doing poorly (devolving). The challenge then is to work your way up to the highest evolution level (50 meat) in the shortest time possible. I really like the way this turned out because you can never really lose, you only get set back from your end goal. I think the best time I ever managed was about 145 seconds.

The animations for the evolutions caused me some considerable headache later in the process, but I eventually got things straightened out. I topped things off with the bomb mechanic which I knew would be simple to do from my experience doing the remote bombs in Protobotic (which will hopefully be out soon). After that it was just minor graphical polish (the moving crowd, start and end screens, and enemy animations) and we were at the finish line. There was one bug at the last minute that made you unable to restart the game after completing one round, but we pushed through it and made the deadline without stressing too much.

There have been some great suggestions after posting the game including having ranged enemies, powerups, and leaderboards; but the truth is that we purposely avoided those things from the beginning so as not to get bogged down. We acheived our goals and now we might actually take some time to flesh out some of those suggestions.

Check out our Ludum Dare entry for yourself here. Play the embedded version here on my site or on Kongregate. Props to UndergroundPixel and his friends for all the art, sound, and other design work.