There’s no real way of preparing for a Ludum Dare. The theme on which people make games on is only revealed once the event starts.
So, in the week leading upto LD, I focused on finalizing the tools I’ll be using. I had previously used GameMaker,XNA and Stencyl in varying measures but Unity had always been my ultimate target. Besides Unreal Engine, it is the only top-tier, professional-grade game engine available for hobbyists and indie developers.
Since I had never worked in Unity before, I set myself a task to atleast get a basic feel of its’ features. It was more difficult than I thought. It took me some time to wrap my head around its’ coordinate system, scripting of main camera, particle system and I had to even brush up some of the high-school physics and math concepts.
It was fun and challenging to learn but I knew the real challenge lay ahead.
It was never going to be easy. In that very week, I had THREE back-to-back practical exams. So, I spent Wednesday,Thursday and Friday on them. Also on the day LD was going to start (with the announcement of the theme) I had to give my Senior Year project seminar in the college. So chances were that I was already going to start a good 8 hours later than everyone. Plus, I had a birthday lunch I was obligated to attend to on Sunday and I couldn’t excuse myself out of it.
It only got worse. My Internet provider called up saying the maintenance of Internet would mean it would be down till Sunday morning. Just great.
Basically, if I was planning to aim for the 48-hour deadline, I was already going to have to work with 10 hours less and without Internet to help me. Not a good start for things. I told myself that even if I wasn’t able to finish it, I’ll learn something.
With that positive mentality (hear O Pro-Life Preachers!) I went into the weekend.
When I woke up on Saturday morning, I immediately checked the site and found that the theme was “minimalism”. Since I had a project seminar in few hours, I had to get ready for that but I kept thinking about the theme and what ideas I could adopt into a proper game that is fairly unique but not too difficult to make.
Surprisingly by the time I reached my college at 9, I already had charted a rough concept and I wrote it down. By the time I was done with the project seminar (which was delayed no thanks to the lovely professors of our college) and I had returned home, it was 2. I took a short nap and began at 3.
I had decided on a dynamic rhythm game with simplistic two-control scheme that had a rather deep underlying concept but absolutely no exposition. Dynamic in the sense, the players could adjust difficulty of the game through their own actions. Create/destroy musical objects which repeat to form a pattern imitating one’s daily routine.
With the basic premise on paper, I began getting the setup ready. The LD’s “Compo” rules state that all the content — code,art and music needs to be made within those 48 hours. It took me a 4-hour sitting to get the engine set up exactly how I wanted for my game.
I then began coding the individual behaviour of the player “cube” and it was around 10, I could finally start working on the chief concept of the game — recycling objects. This required creating a custom module. Something which a newbie to Unity like me obviously suffered to do.
Unable to find solutions, I decided to plug in my MIDI keyboard and create some tunes in the meantime. A rhythm game needs to have some good tunes after all. I stuck with ambient music as the background soundscape as I felt it was minimalistic and sparse enough to suit the theme.
I used FL Studio for the beats. I really liked the simplistic interface and how easily one could mix. For the MIDI, I used the typical MAGIX Music Maker and stuck with the traditional play-record-mix-master technique to get the appropriate sounds. I liked how I could imitate sounds of a flute and of a violin using a low-pass filter applied onto lower keys of the keyboard.
While I was doing this, I was constantly trying to rack my mind to solve the issue I was stuck on. It was around 3:30AM when the migraines started creeping in and I finally gave up for the night and went to sleep.
New Day, Late Beginnings
I had set my alarm at 6. I snoozed it.
When I next woke up, it was 7:30AM. Ugh.
Within 10 minutes, I was back to work. And tell you what, it took me just 10 minutes to crack the problem that was plaguing me for almost 4 hours last night. Just ten minutes.
Over the next three hours, I was on a roll speeding through the lost time last night. If this were the popular Kairosoft’s Game Dev Story, I would be a programmer “on fire”.
Unfortunately, my mean streak came to an end when I had to go for the birthday lunch. I came back at around 2PM and graciously avoided the comforts of an afternoon nap and set back to doing. I had been feeling weirdly confident since morning. As if, despite all the odds that had been stacked up against me, I was going to do it. At the same time, I was a little wary of being like a hare in the Hare and Tortoise and not getting too overconfident of where I was.
So, I continued working without a break. More tunes were created by 4PM, some of which were recorded live using my iPad and SoundCloud app on it.
Then I set aside everything to work on my primary weakness — art. I believe I have a decent visual aesthetic sense, but when it comes to creating them I’m no good. There’s this inherent phobia that drawing instills in me which seems to sap all the confidence I generally have for other things.
So, I got onto it. Using Inkscape and Photoshop, I created simple designs that described the type of instruments each track was imitating and keeping the color palette fairly simple.
I did not believe that minimalism = black & white. In my opinion, minimalism is something which conveys a deep concept through limited usage of aesthetics and exposition(if used in a narrative context).
So, as you can see the colours I used were a lot more vibrant than what most of the others used for their games.
It was about 8PM when I was done with art and sound. So, I started implementing them into the engine one by one. Surprisingly, art didn’t result in any obstacles. It was Unity’s sound design which gave me trouble as I couldn’t wrap my head around how I should use it to fit the purpose of my own game.
I tried to look up at the Internet.
Still no internet.
I was seeing visions of yesterday, where I was stuck on a problem and without help from the Unity forums, I wouldn’t be able to get past them. But somehow, a few workarounds later, the sounds worked pretty much like how I wanted. I guess that is an important aspect of design as well. “Trying to adapt things as much as possible”.
Around 10PM, I had this crazy idea. An idea that could certainly have a positive effect. Now, I despite this being my first time in any game jam, you need not tell me that even entertaining these ideas was basically signing a death certificate. Given the time constraints, you had to stick with the idea you had originally thought. I had managed to do it thus far — but this idea seemed too delicious to not implement it.
So,leaving all my scheduled plan for the game aside, I started focusing on this. It was not before 2AM when I had finally finished this. With the deadline date, just a mere 5 hours away, I decided I needed to wrap up ASAP.
So, as I was finally getting the win/lose conditions implemented, I realized something.
I had not even made the Main Menu.
Again chucking everything out of the window, I frantically set to making the Main Menu, the “How to Play” screen as well as the Win and Lose screens. This took art and some new scene scripting to implement but I finally did it.
The GUI needed tweaking, so I set on doing that.
It wasn’t until 6AM when I was finally done. But then I just recalled that I could make the background music vary according to different “phases of life” or the progress bar atop.
So, I spent another hour doing that. Then, almost frantically, I baked the native version (Windows) of it and quickly set about uploading it on Dropbox. It was just around 7:10AM (the deadline was 7:30AM) that I logged onto the Ludum Dare site and filled up the submission form, describing my game and uploading various screenshots.
I had made it on my first Ludum Dare. I had finished making my first “complete” game and that too within the 48-hour Compo deadline as I had initially aimed. Despite all those obstacles that the world threw at me, I managed to do it.
In retrospect, I am rather proud of myself. Not because of the game. But because of the dedication I never knew I had within me. I don’t recall ever waking up for the entire night for something I was working on. On occasions, when I have done that, I’ve done it if I was reading a really interesting novel (The Wind-Up Bird Chronicle),watching a really interesting TV series(Twin Peaks) or playing an addicting game(too many to name).
But never for something related to work or even a hobby. Something where I wasn’t getting entertained. I lost motivation while developing a number of times before and this time I had plenty of opportunities where I could have table-flipped and just quit. But I didn’t. I stuck to my target and that makes me really proud of myself. This past year has been great for a number of reasons and I think I might have found another good reason for that.
What’s better is that the game has received some really good praise from fellow LD-ers and their comments both on the game page and my Twitter were really encouraging. Even the criticism has been helpful since I apparently had messed up on a number of small factors(resolutions on Web browser etc) but it’s all cool.
The best part besides finally having a “finished” game? THE MOTIVATION! I have loads of it now. I had heard people say how a finished game helps and now I am experiencing it first-hand. I’ve already made plans on reviving some of my older “ideas” and seeing if I could implement them. All while implementing some features I left out of the LD48 game due to the time constraints.
So expect to hear more of this “new” side of the old Ansh in the coming weeks.
Of course, here is the game page on the Ludum Dare site. Currently, I’ve managed to port it on all versions — Windows/Mac/Linux as well as Web through Unity without any major issues. I explain the underlying concept and the mechanics much better there. So,it’ll be better if I keep it simple here.
Any feedback is appreciated. I’m new to this and I’ll take any words — praise or criticism alike with a pinch of salt and take it as part of my learning process.
That is all for now.
EDIT: Indie Game Mag featured my game as their “Indie of the Day”