With LD21 rapidly approaching, I wanted to do a Post-Post-Mortem of my LD20 entry, since in addition to improving the game to make it ready for wide release, I’ve been working on a sequel for the last 4 months. Links for those who don’t want to read:
Diamond Hollow on Kongregate (380,000+ plays): Diamond Hollow
Diamond Hollow II: Coming soon…
So let’s get to it!
In the beginning (approximate 7pm PST on the opening day of LD20), there were a couple of block games. These block games were well intentioned, but I could tell they weren’t going in the direction I wanted them to, so I quickly tossed them in the trash (the last one actually went into a filing folder somewhere to deal with at a later date).
My goal was to make something that players would find fun. Being the superficial dev I am, I quickly took to the past winners pages, and found that players like platformers. Great! So I immediately switched focus from block/puzzle game to platformer. I decided to go with a tower climbing theme, and this was born:
It was very generic; it was very simple. Now that I had the basics down in a way that I thought I could turn into something fun, I began drafting out what features I wanted in the game. Among these were:
- Randomly generated infinitely high level
- Quick paced movement and jumping
- Gun shooting with the mouse
- Enemies to kill
- Something to collect
- Upgrades to spend your collections on
The first few points I was able to get started on immediately. I tightened the control scheme, added a way to randomly generate levels, and popped it all together and came up with the following:
It was looking good! It was at this point I needed to choose a theme. While it was a tower climbing game, I wanted to do something not tower related. My first thoughts were climbing a castle (but that would have just been a tower so I threw that out), and climbing up through the branches of two large trees on either side of you. However, my powers of art are extremely limited, so while I would have enjoyed a tree climbing theme, it would have looked pretty terrible and have taken too much time. However, dirt was something I knew I could do easily (fill brown, add noise filter, DONE) in photoshop, and the first thing that popped into my mind was a cave. So quickly I hopped to photoshop, and the pictures above immediately grew into:
Awesome! But then I hit the “collect” point. What can you collect in a cave? Rocks? Bats? Diamonds! It wasn’t the most elegant solution, but with the clock ticking, I hopped on it, and it wasn’t long until I had cute little diamonds sitting to collect. At this point I also added my first enemy, the slime:
Things were looking great now! I could jump up a cave, collect diamonds, and avoid cute little slimes that liked to wander back and forth (why? because they are slimes of course). However, in order to hook players I needed upgrades. Many people find upgrades cheap and hate them, but they are like crack in the world of casual flash gaming (and I, like many others, feel drawn to upgrade anything and everything). However, in preparing how I wanted to do upgrades, I started thinking of other aspects of games that hook me. The main one that came to me was Achievements. Achievements usually mean nothing, but they can make a game much more fun by giving you goals, and goals in games are always great. For example, killing goblins for hours can be boring, but when you’re doing it for a quest or achievement, you feel driven to do it, and you feel like it means something. If I’m going to have you climbing an endless cave, I might as well reward you as much as I can.
So I took to photoshop, and in a surprisingly short amount of time (according to my timelapse), I had a protype mostly complete:
This is what pushed me over and kicked my motivation into overdrive. As soon as I had this working I blogged it. There was just something about it that made me want to play the game myself, and it sounded like others liked it too.
I continued to work to polish the game, add a few more enemies (plants that shoot at you), and get the game in a generally fun state. However, sunday morning at about 4am I ran into a hurdle. I had never actually used FLStudio before, and after downloading the demo, I found I probably should have practiced. I started putting random beats together, and would constantly start new projects because every song I tried to make was like terrible terrible noise. I googled some tutorials, but found nothing all that great. After looking around for something to save me, I found some videos showing how to put together simple beats and use instruments. I put together a basic background beat, threw in an obnoxious sounding tune on top of it, and called it good (it still kills my ears when I hear it though). When trying to save it, I realized it would be good if I could save the actual project, so I attempted to buy the full version to save my “creation”. Unfortunately, it didn’t seem to like my credit card. I tried again. And again. Strange. The funny thing is, when I attempted to go for breakfast, my card was also declined. It wasn’t until Monday night that I learned that me trying to buy a strange program (FLStudio) on a strange website at a strange hour in the morning (5am) flagged the fraud check on my card, and they disabled it thinking I had it stolen. In the end it is for the best that I no longer have anything more of an mp3 for the “music” I made that morning.
After a nice 8 hours of sleep, adding sound effects went much easier thanks to as3sfxr. I got through that, balanced the game a bit, and ended up with pretty much a final product.
The last thing I needed was a name. I asked a couple of friends what they would call a game about collecting diamonds in a cave, and I got some absolutely terrible suggestions (that I’m happy I didn’t go with, because some were names of other games about caves they had played at one point but forget). Eventually, after using thesaurus.com for a bit, I settled on a simple “Diamond Hollow”. It wasn’t exciting, daring, or clever, but it got the job done.
And with that… It was complete! And before the deadline, even! Overly excited, I submitted it and took a sigh of relief.
The next day I woke up refreshed, pulled up the game and started to play. Immediately I realized my error. The game was not balanced at all. Knockback was frustrating, the game was hard in general, and some of the achievements were way overtuned. Fortunately, while it was too late to change for the contest, there was still a life that Diamond Hollow could take after the competition.
Wasting no time I immediately got to fixing things. The first thing was the music. It had to go. Without the restrictions of having to make it myself, I turned to music licensed under the creative commons, and found something upbeat and catchy. An instant huge improvement. I then started rebalancing things which turned out to be a much bigger feat than expected. Changing achievements to require less skill is easy, but when you make gameplay changes that affect how easy the game is overall, all of a sudden your rebalanced achievements need re-rebalancing. It was a headache, but it got done. I then adding more polish to the game, fixing things like spawning, diamond locations, just to make the game feel less “thrown together”.
My goto place for flash games is Kongregate, so that is where I settled on for a home for Diamond Hollow. I wasn’t expecting much, as this game was made in a very short amount of time (well under 48 hours, even if you count the improvements I made). I was thinking it would get a low to mediocre response, and it was going to be something I would just watch and see how it progressed so that I could learn from it, and use player feedback as a way to improve my game development skills for future projects. But it turned out very different.
As soon as I posted it, it got an “okay” rating, but I began getting tons of feedback. While I had intended to use the feedback for future improvement in general, it all felt like improvements that the game should have had in the first place. I began compiling the feedback, coming up with concrete things to change to address the issues, and got to work. Every couple days I would work on implementing the latest round of feedback, release a new version, and announce the changes. It turns out that players like it when a developer listens and implements their feedback, and the effect was incredible. My “meh” rating went up by quite a bit until it was a “pretty good” rating. My plays started growing quickly, I got featured on the front page, and soon enough I obtained badges for my game. At the time of writing, the game has over 380,000 plays on kongregate. This was really exciting!
Then the feedback changed into bigger things. People wanted to explore. People wanted bosses. People wanted an “ending”. At this point I had to start rethinking my actions. There were a lot of things I would have liked to put into Diamond Hollow if I had the time during the competition, and there were a lot of features that players think would improve the game a ton. However, these would require major rewrites of all the code, at which point I might as well just start over from scratch. And that is where Diamond Hollow II was born.
Like with Diamond Hollow, I began by drafting out the features I wanted. Given I had no time constraint, I was able to include a lot of things, but I also had to limit myself. Did I want to get myself into an overbudgeted project that I would never finish? That was something I wanted to avoid at all costs. Among the list of features, I had the following:
- An ending
- Multiple guns
- More achievements
- A story mode
- Varied graphical environments
- More enemies
With these goals down, I got to work. Rewriting the engine from scratch, I was able to greatly optimize it, allowing me to implement all the features I wanted, without it being slower than the original. However, I hit some major snags along the way in the form of content. Creating levels was taking quite a long time and it was starting to make me rethink having a story mode with hand crafted levels. Perhaps I could randomly generate the levels? Would players know the difference? In the end I stuck with it, and eventually managed to carve out the shell of a story mode. Then I began to fill it with enemies (new and old), and tons of improvements including new graphics, powerups, more upgrades, story text, and bosses.
Bosses were one area where I had a ton of fun. I needed to keep the bosses simple, in order to make them accessible to a casual flash player, but I was able to greatly vary them, and add different abilities and phases to them to make them a lot of fun.
After 3 long months, story mode was done. It was strange that for a project that I expected to only take about a month to complete, I had finally finished the first mode of the game. Thankfully, with all the framework in place, the other modes wouldn’t take nearly as long.
I immediately started work on the escape mode. Escape mode I wanted to be very similar to the original game. The idea was the same, in that you must climb as fast as you can while trying to survive. However, with story mode I had taken away the automatic-scrolling screen, and the game just felt so much more fun. With that, I didn’t want to return to the scrolling, but I wanted to keep with a sense of urgency so I compromised. Rather than racing against the screen, you are racing against a constantly rising lava level. This allows you to move up and down freely, as long as you stay out of the lava. The next mode was intended to be time trials, but after having played the game so much, this just didn’t feel too much like a time trial game. So I decided to scrap that mode, and instead implement that as a couple of achievements to beat some of the story mode chapters in a certain amount of time. I replaced the idea of time trial with boss mode. Because I had a lot of fun making (and playing) the bosses, I implemented a mode to try to defeat them all one after another. But that wasn’t enough. I then took it a step further and implemented a heroic boss mode, where the bosses are stronger and posses new abilities. This was my way of catering to the hardcore crowd, and give them a very challenging mode, without taking away from the experience of the average player.
It was at this point that the game was finally coming together. However, I still had a couple ideas floating around, so I implemented prototypes of them quickly, and after doing so, felt that they didn’t seem as fleshed out as a full mode, but I felt they were fun, so I put them in as minigames.
Diamond Hollow II is now getting the last finishing touches, and will be put up for sponsorship soon and released not long after.
Overall, the last few months have been great, and it’s crazy to think that everything behind Diamond Hollow 2 was born from Ludum Dare. I don’t think I can give enough thanks to all those involved in Ludum Dare that make it such a great experience, and to the other entrants that serve as the best motivation a game developer can get.