Entries in Ludum Dare (5)

Tuesday
Sep012015

Ludum Dare 33 Entry - The Monster Inside

 

Click here to visit the Ludum Dare entry page

This is the most fun I've had working on a game jam entry in a very long time. And the key to that was the scope of the project. This was my 6th game jam I've done, and I feel like I'm finally starting to understand what kinds of games can be accomplished in a short weekend. With The Monster Inside, we kept it simple and small, and the result is one of my favorite games I've ever created.

In my full time project, Lacuna Passage, I've been doing a lot of programming work that hasn't felt very creative. For Ludum Dare 33 I thought it would be a perfect opportunity to take a short break from that and build something almost purely narrative with a distinct, simple art style. After the reveal of the theme "You Are The Monster" I started brainstorming ways to limit the scope of the project that would allow me to focus primarily on the story writing.

The first aspect of this was to use very simple art. I decided that I did want the game to be 3D, but I didn't want to have to spend time animating characters, doing physics collisions, navigating obstacles, or managing an inventory or items. That quickly led me to consider doing an interactive visual novel. We could use simple static 3D renders in the background and just have text and dialogue in the foreground.

I was inspired by the memory of simple chapter art that would sometimes accompany young adult novels like Harry Potter. In the example below you see a small black and white image that appears at the beginning of a chapter and gives you a small taste of what you will encounter in the following text.

I always loved these images as a child and I've always wondered why more adult novels don't incorporate establishing art in a similar way. Some fantasy books include illustrated maps in the back cover, but why not full illustrations to really put you in the world?

Well, with our game we could do whatever we wanted. So I took the idea of simple "chapter" art and combined it with an isometric style that I am fond of. A reference image we used can be seen below.

Artist on DeviantArt

But we needed to go even simpler for our scope. With a film noir style we could go pure grayscale and avoid the complication of color. The result fit our needs perfectly.

Our artist, Doug Auerbach, did an amazing job with this style. It gave me exactly the context I was looking for with the narrative, but without being overly complicated and time consuming.

After working more on the script I realized that visual novels have some interesting advantages over writing a book or traditional short story.

For example, I could control the pacing of the story completely. The player has an interactive button to progress the text, but I could fully control when that next line of text was revealed after a delay. I could make the player hang waiting for the next suspenseful line to appear. It also prevented the player from reading or glancing ahead to spoil the timing of a reveal. Obviously I'm not the first to discover this, but it was something I found very powerful while writing the script.

We were also able to leverage the benefit of sound and music. Clark Aboud, my long time partner for all things musical, did an incredible job on the soundtrack with a unique theme for almost every chapter. This really helped bring the static scenes to life and engross the player in the mood of the story.

As for the story, I was mostly inspired by having recently finished the first book of The Dark Tower series. SPOILERS for both The Dark Tower and The Monster Inside... there is a Succubus in that first book that stuck with me and largely led to the plot you see now in The Monster Inside.

I wanted to include some limited dialogue trees in the game that would make the player feel more like they were role playing the character of Jack, but I knew that I probably couldn't make them extremely branched or it would make our scope too large. So I stuck with very few dialogue trees that had very short branches. It was a small touch that helped you feel more a part of the story rather than an outside observer.

I managed these dialogue trees with a program called Chat Mapper. I highly recommend it. I didn't actually have time to create an xml parser that used the exports from Chat Mapper, but it was still very useful to keep the dialogue trees organized while writing. I ended up just copy-pasting the story text from Chat Mapper into .txt files with my own parsing logic. It was lightweight and simple for our purposes, but it did have a high probability for error (thankfully I don't think there are any).

The only real point of "gameplay" that I included was a simplified investigation mechanic where you are able to search crime scenes for clues, but it is very minimalist and again only really serves to put you more in the role of Jack by clicking on scene objects rather than just the NEXT button over and over.

The only thing that I did not have time for was to incorporate some simple motion elements into the art. I wanted to have a rain particle effect overlaid on the dock scene, and I wanted steam coming from the sewer grate in the alley scene, but we simply ran out of time. Thankfully these were just set dressing ideas and didn't affect the overall game. We are extremely proud of the end result and hope you enjoy playing it!

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
Dec192013

Ludum Dare 28 Entry - Dodgy Ball


Dodgy Ball is, well… something. The idea was to make a TowerFall-like game with dodgeballs instead of arrows. I think we succeeded in our most basic goals, but the result can be a bit buggy and some of the platforming elements aren’t always consistent.

I had never really attempted to do a proper 2D physics platformer before, which is where most of the “dodgy”-ness comes from. Platform collisions aren’t perfect. Floor and wall jumping forces aren’t 100% reliable. And the code for picking up and catching balls is hacked together at best. Actually, there isn’t a single line of code in the whole thing. Everything was done in Playmaker for Unity, which might explain some of the problems. All that being said however, I think this might be the most fun I’ve had with any game I’ve ever created myself.

TowerFall and Samurai Gunn have been on my mind a lot lately. So when I heard the theme announced, I quickly gravitated to the local multiplayer concept. Requiring multiple players and controllers unfortunately rules out a pretty large number of potential players, but hey, it has been a game type I have wanted to experiment with for a while. I also wanted to do something totally different than our last Ludum Dare entry, TimeFrame.

I spent at least 90% of the competition time refining the game’s controls. Only a few hours were spent on the art, animations, sound effects, and music (by the amazing Clark Aboud). The scoring elements and the start screen were literally implemented in the last hour of the jam. Luckily everything fell together just in time.

As much as I love the way the game plays, I think it would be necessary to go back to square one with the controls and physics if we were to release this as a polished game. I learned so much over the course of a single weekend that I’m sure it would be best served to scrap the existing code and retune everything from the ground up. Whether or not we decide to do that is up in the air. For the time being it’s back to full-time development on our primary project, Lacuna Passage.

Wednesday
Aug282013

Ludum Dare 27 Entry - Time Frame

So, I made a game in 72 hours. Well, it's not entirely what I had envisioned for the concept, but I accomplished quite a bit in the time I had so I'm pretty proud of it. Time Frame is a game about exploring a strange world that moves in slow motion. The game takes place over the span of only 10 seconds, which you experience over 10 minutes. LD27's theme was 10 seconds and I really wanted to make something that wasn't fast-paced and frantic like 99% of the other entries. The idea was to have a vast area that you would never actually be able to completely explore within the time limit. I succeeded with that, but I wasn't able to fill that area with as many sights and sounds as I had hoped. I wanted to have all kinds of things happening in slow motion to emphasize the time dialation, but I ran out of time. In the end there are really only a couple things that give you a frame of reference for how slow time is moving. The first is a fountain at the entrance of an abandoned city that has water falling in slow motion. The second is an event that happens towards the end of the game that reveals why the game ends at all, so I won't spoil it for you.

The art style was something that I chose to make asset creation faster. Everything has a very simple, yet high-def look that emphasizes triangles. I actually made all the textures using a really neat application called Hexels. It's an awesome tool that lets you paint using shapes other than just pixels. I used the trixel shape mode and was able to really quickly develop a unique style. Hexels has a free version that I would recommend everyone check out.

Soon after the close of the competition I added in support for the Oculus Rift as well. I have had the Rift dev kit for about a month now and have been wanting to do something with it for a while. It was a great way to get familiar with the setup so that we can use it while developing Lacuna Passage as well.

Depending on the response I get to Time Frame I may invest some effort in improving the game with some of the features I wanted to include from the beginning. Here are some of the things that I would like to add:

  • Birds, insects, and small animals
  • Falling leaves in an orchard of trees
  • Burning pyres
  • Cloth banners in the city flowing in the wind 
  • A small stream with a waterfall
  • Pollen/Particles floating through the fields of flowers

Obviously I've got most of my time wrapped up in developing Lacuna Passage, but I think I will try to keep working on the stuff above when I'm able. For now you can play the web version or download the standard or Rift versions for Windows from our competition page.

Time Frame was created using Unity. Music by Clark Aboud (also our composer for Lacuna Passage). Programming, art, and design by myself, and addtional art by Alex Senechal.

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.