September 4, 2014

A few weeks ago I spent the weekend participating in Ludum Dare 30.  Below is my post mortem.

 

A Horse With Two Names is a game where players use the source to solve the riddles of the executable.  Players open the source code in the Unity editor to investigate, modify, and alter the code and scene to solve the riddles included in the game executable itself. So far the feedback is limited–understandably so due to the very high barrier to entry–but overall positive.

AHWTN_1

 

How the game came to be

ShaferCreatingTheWorld

 

I imagine it might be interesting to some folks how my game came to be.  While participating in my last few Ludum Dare compos, I have spent more and more time thinking about the fact that the code is included in the submission.  I occasionally added in funny comments, non-sequiturs and absurd function/variable names as a little surprise to anyone looking at the code.  For this LD, I found myself spending more time crafting the code than creating the game!  At some point Friday evening, I decided to scratch my idea and create a game that revolves around the connection between the source and the executable, which seemed to fit quite well with the theme.

 

The Grounding of the Compo

LD30_LightningCartoon

I use Unity all the time here at Super Soul.  I spend the majority of my time doing design work and creating art assets. When I do code I have a solid base I am working from, provided by the delightfully talented duo of John and Shea.  So I get super excited about an idea for LD, know what I need to do, only to sit down at the computer and realize all the things I take for granted during the day are not available 🙁

 

Turns out writing a basic input system for a riddle game is a bit more difficult when you don’t just pull in some NGUI assets and let NGUI work its magic.

 

The point is that I really value the humbling nature of the LD compo.  The restraints force me to find creative solutions, and further value the work of my teammates and the free/paid assets in the Unity community.

After I wrote an input system I realized I could have used NGUI according to the rules, c’est la vie, it was a nice learning experience.

 

What worked

 

Four compo entries under my belt.  Every time I get a bit better at time management and understanding scope/priorities.

 

Worked out my riddles the first evening, leaving all of Saturday for implementation and Sunday to test/polish/create additional content for the submission.

 

I isolated the one area I needed to move forward that I was unsure about implementing, which was the input system, and developed this system Friday night.  This allowed me to gauge the rest of my time fairly accurately all weekend.

 

I enjoyed myself.  I love LD.  I had fun.  I must have done something right.

 

What didn’t work

 

Music.  As always, the music I create is sub par.  I just need to become comfortable in a given tool and spend some time learning how to create decent music.  Of course this is an endeavor that will take a loooooong time!

 

Assets needed to solve the riddles are not integrated well enough with the assets that drive the game in the executable.  I would have liked to really integrate all of the assets together so that the code you are investigating to solve a riddle would also be the code that visually displayed the riddle and drove that part of the game.

 

I had to change source code that was in the executable to hide the riddle answers.  I wanted to obfuscate the code, hide it in a DLL, something.  I just don’t have the programming knowledge and skills to do this right now.  So I did what I could.  I redacted the code that checked for correct answers and added a note from management 🙂

 

Some stuff at the end

 

I made a video for anyone interested in checking the game out who does not have Unity:

 

Game Walkthrough : SPOILERS!

 

Ludum Dare Page

 

At the trajectory I am on, my next game will not even be playable by anyone!  Next time I think I will make a single player game with keyboard controls 🙂