An Indie Developer's Rantings

Sunday, June 24, 2012

Stealth Jam, Days 1 + 2: Creating Moonlight

I'm no stranger to Game Jams. I'm a huge fan of them as they allow me to practice my programming chops, not something I get to do very often these days. As I am also a developer of a stealth game, when I heard a Stealth Jam was coming up, I couldn't wait for the opportunity to make something COMPLETELY different from Children of Liberty. As much as I love the kids, they really have been eating me alive the last three years and it feels great to make something fresh.
Epic title screen, inspired by Apogee's Hocus Pocus.
Thus, I am creating a game entitled Moonlight: Mistress of Mischief. I decided to look back to my shareware days for inspiration, to a game called Crusher by William Soleau. The goal of that game was to collect bits and pieces of treasure scattered around a randomly generated castle, while crushing monsters via blocks you could push. You had a limited resource for survival, Oxygen, and if that ran out it was game over. There was also dynamite you could pick up should you need to explode a block in your way.

This game gave my mom nightmares.
Immediately upon starting Moonlight, I knew I had to do away with the resource for survival. As this is a stealth game, the goal should not be on frantically searching for a tank of oxygen (or in the sequel's case, a candle). No, the goal of Moonlight is to clear each room of treasure to the best of your ability.

I am yet to get Moonlight's sprite done, so for now she is a smiley face.
There are three kinds of jewels, Small, Medium, and Large, which are worth 1, 10, and 100 points respectively. The only enemy type so far is a turret which shoots in 1 of 4 directions, but can only see you if you move within two tiles of it. You can also hide in crates and move around (they even shake a bit when you step inside them!). Turrets will not shoot you while you are in a crate, and crates can even be used to block turrets completely or obstruct an enemy's view. This is probably the closest Moonlight will get to Crusher's original crush-to-kill mechanic. However, you cannot pick up treasure while you are hidden in a crate, so it's not like you can just run around willy-nilly and get all the treasure with little effort. There are also traps which hold crates in place should you run into one while skulking around.


The Red Key and the Blue Key make a triumphant return, along with their new friend the Yellow Key. All you need to do to open doors is step on a key, and all doors of that color open at the same time. This allows me to do many things in terms of a level's design. One, I can control the flow of up to 4 or 5 separate areas, which is a lot in a 608x480 space (640 pixels -32 for the UI on the left). Two, I can create gated puzzles which, though optional, can really test the player's stealthy skillset. Finally, I can lock off the exit, meaning that the goal of each level, and in fact the only way to progress, is to find the correct colored key which leads out of the current room. There are also gray doors I have added in as extra details to show blocked off passageways. Originally, I had wanted to make the game free-roaming like Crusher, but went with a linear game instead.
The first level has no danger, but instead teaches the player to appreciate treasure and how keys work.
Right now, treasure collection is the most important part of the game. After all, who doesn't love collecting treasure?! Before the Stealth Jam is through, though, I'd like to add a few more things, and change a few others.
  1. Moonlight really needs a sprite. I'll do my best to do her justice.
  2. I'll be returning the scoring system to number-based instead of bar-based. I had thought it would be neat to watch a bar fill up as you collected treasure, but there's a real disconnect with your progress. It'll look better to have the actual amount of treasure you've collected displayed prominently top-center.
  3. Moving enemies. The turrets are fine and all but their use is limited, especially in terms of level design. Getting some real enemies in there who can at least move back and forth and shoot at you when they see you will be key to making this game awesome and truly stealthy. On that same note:
  4. Takedowns. If you can get up behind an enemy, you should be able to stab them and kill then. Similarly, I may also put in Crate Takedowns, which would hold the crate where it is like its been trapped but with the bonus of you having just taken out an enemy!
  5. Nicer looking life icons, maybe just Moonlight's face with an X3, X2, or X1 next to it to save space on the side for an eventual inventory.
  6. Sounds. I love SFXR. If you've never heard of it, you should check it out!
  7. MUSIC?!
  8. MORE LEVELS! Mainly because I've made them really easy to make so I can crank out 1 or 2 more by 5:00pm tomorrow.
  9. Scoring system. This could be neat, based on how many gems you collected out of the total in the level and in how much time. However, considering how much more I need to get done, I may put this off for a future update.
  10. Decide on a platform. As of right now, the game is a basic Windows executable. However, because of its simplicity, I could easily see this working on mobile, in Flash, in XNA... Multimedia Fusion has so many exporters now my choices are pretty much endless. I'll leave it as a Windows game for now but with the plan of porting it everywhere when it's done.
  11. So much more I want to do. Items, different enemy types, different environments with modified gameplay (slippery floors in an icy world anyone?), long ranged attacks, a shop to make use of your stolen goods, the scoring system (as mentioned), tons more levels... but unfortunately I have less than 24 hours remaining in the Stealth Jam, and not nearly enough time to implement all this.
Please try out the game and let me know what you think. There are only three levels right now but, despite that, if you go for every treasure, you should get a good 10 minutes of game time out of it. You'll need a Windows PC and that's about it.

No comments:

Post a Comment