An Indie Developer's Rantings

Sunday, June 24, 2012

Stealth Jam, Day 3: The Mistress Lives

The only level I was able to add today is also the biggest challenge in the whole game so far!
Well, when all was said and done, this is what I was able to implement into Moonlight: Mistress of Mischief on the last day of the Stealth Jam:

  • Moonlight's sprite! Still needs Up and Down-facing sprites though.
  • Moonlight's Takedown, for instantly killing enemies. You need to be right on top of a guard to kill them. Hit Space to slash your knife while you are not in a box.
  • Two animations for Moonlight: Idle and Takedown. (the Takedown came out cooler than I expected)
  • Floor tiles, which makes the turrets MUCH more visible!
  • Horizontal Guards (which, at the moment, can't attack, though they're supposed to. Yay bugs!)
  • Turn points for Guards. As of now, to prevent heavy lifting on AI development, guards will work just horizontally (white knights) or vertically (black knights, to be implemented). At some point there will also be knights who can hunt you (red knights) as well as hopefully many other kinds of baddies! Teleporters, magic snipers, maybe spiders that pop out of boxes when you try to hide in them?
  • Three animations for Horizontal Guards: Idle, Attack, and Dead.
  • Level 3 had an odd glitch where you would die for no reason so I rebuilt it from scratch.
  • Level 4 is the last level of the Stealth Jam build and introduces moving enemies. There are a LOT of boxes for you to hide in and block the turrets should you need to. The Red Door is your way out, but there is no visible key at the start of the level. HMM WHAT TO DO?!
  • Moved the score back to the top middle, but visibility on it could be better.
  • Lives changed to an icon of Moonlight's face with an X3, X2, or X1 next to it as planned.
  • Knife icon with selector around it. This area will be used for other items in your inventory as I add them, as well as controls for choosing items.
  • Invincibility/invisibility period of 3 seconds after death. This was implemented to prevent any guards who end up near the Spawn Point right after killing you from killing you repeatedly.
  • Key Spawners. This is actually the feature that excites me the most. There is a tiny line of code in there now that states "Are all the enemies gone? Then spawn key at key spawner." With these I now have even more options for level flow as certain areas can be blocked off until a group of enemies is defeated. I can probably think of more ways to activate key spawners later on. Needless to say they'll work well for boss battles.
Level 2. I showed this one earlier today, but this is how it looks with the new spritework.
Well, that's all for me today. Make sure to check out the latest build! It still is only for Windows. It is also still free, but considering how easy this game is to develop that may change at some point, ya know, when I have more than four levels.

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.

Monday, June 18, 2012

David Perry Challenge #003 - Metroid



Metroid is a fully open and explorable 2D platformer released for the Nintendo Entertainment System/Famicom back in the mid-eighties. It has since gone on to be one of Nintendo's premiere action/adventure properties, with award winning games such as Super Metroid on the Super Nintendo, and the Metroid Prime series on Gamecube and Wii. Furthermore, the series protagonist Samus Aran become a shining example of a strong, female protagonist in games (pathetic attempt at deeper narrative in Metroid: Other M on the Wii aside). It also takes half the credit for establishing the “Metroidvania” genre, a type of platformer with open worlds as opposed to linear corridors, along with Castlevania. Despite this, Metroid is not a game that is as fresh today as it was twenty-seven years ago. Though amazing for the time and beloved by those who remember playing it upon release, game design as a philosophy moved so far beyond Metroid in such a short time that what may have been acceptable shortcomings or even respected rules back in 1985 stand out as serious flaws today.

Though the environment tiles are highly detailed, the backgrounds are just flat black due to the NES's shortcomings and the already unstable framerate.
To understand just what is flawed about Metroid and why it is flawed, we need to look at a game with similar problems: Castlevania II: Simon's Quest. The first issue is that of control or lack thereof. Under normal circumstances, there is nothing wrong with Samus Aran's run, jump, or shoot. The controls are loose and maybe a little slow but nothing that can't be learned in time. It is the interruption of these controls that cannot be excused. Each time an enemy hits Samus, she is knocked back several tiles and player control is briefly revoked. Due to this, the player will often find themselves hitting other enemies or falling into deadly pits. The high number of enemies at any moment, which slows the game's framerate down considerably, also does not help this issue. Due to the extremely limited range of your shots, and the fact that most enemies take at least four hits to kill, getting hit by enemies and thus knocked back is almost inevitable. By 1987, in Castlevania II, players were already complaining about knockback from hits and so, as a general rule of game design, knockback in extreme forms was discouraged. One need not look further than the original Mega Man for proof that knockback did not have to be as extreme as the forms seen in Metroid or Castlevania and that it could still be an effective deterrence from running into enemies.

Swear to God, this just came up coincidentally when I searched for "Metroid Screenshot."
The pits are another matter entirely, as they hinder the player's ability to jump. In most games, you fall into a pit and you die. In Metroid, if you fall into a pit you are tortured, quickly losing health over time until you either die or escape. With enemies dive-bombing you the whole time, pits become frantic moments of frustration with the player unable to jump or shoot effectively, at least until you've found bombs which allow you to hit enemies in the air and bounce on the explosions.

Finding these things is almost like cheating.
My biggest issue with the game, though, is the lack of feedback. Items you find are complete mysteries until you discover their use for yourself as there are no tooltips or demonstrations. Missile doors don't open unless you shoot them with five missiles, and yet there is no sense that your shots are having any effect on them at first. There is no map of the world and so it is incredibly easy to get lost or have the sense that you are on a wild goose chase for items that may or may not exist, the purposes of which are uncertain. Hidden passageways containing important items, like under a normally torturous lava pit, also do nothing but confuse the player without proper visual feedback to the change in rules.

In Metroid, finding something rewards you with a tune. You are never shown what your reward is until you figure it out for yourself.
Several of these problems were eliminated in future iterations of the Metroid series. In Metroid II on Gameboy, Samus's shots traveled the full distance across the screen, making enemies easier to hit. Super Metroid was much faster; had greatly reduced knockback; unlike the original Metroid on NES, enemies did not take four or five hits to kill but just one or two, keeping the pace of the game fast and tight; and save states, as opposed to Metroid's 24 character password system, were a very welcome change. It is good then that Nintendo learned what they needed to for future iterations, and learned it quickly. Metroid is a prime example of how fickle game design is as a philosophy, and how in just a few short years a game can go from being a masterpiece to a goulash of mechanical missteps.

Thursday, June 7, 2012

Consoles are no longer Consoles


People these days talk a lot about how the next console generation will be the last console generation. They are wrong. The era of the XBox, PS2, and Gamecube was the last console generation. What we have now are not consoles. They are entire home entertainment systems contained in a small chassis. Other than the ability to receive phone calls, your smartphone and your entertainment chassis are pretty much the same thing. Everyone wonders when the next "console" generation will come out, and many were disappointed about the lack of announcements at this year's E3. Well, I hate to tell you, but it won't be for a while. Why? Contracts.


Let me break it down for you. Sony and Microsoft have contracts with many different companies to deliver media on their systems for a price. XBox alone has Netflix, ESPN, Hulu Plus, Amazon Video, DVR capabilities for Verizon and Comcast, and contracts with dozens of different production companies to stream and sell movies and music via their Zune service. With a new console, they would have to double up these contracts to get the same services on next generation hardware. Furthermore, the price of these contracts would go up. A more expensive console means the service providers would want a bigger piece of the pie. The apps for delivering all this content would have to be rewritten to be compatible with next generation hardware. The cost of a new entertainment chassis would be at least $699, or the price of a cheap computer.

It seems, though, that Microsoft may have a leg up on the competition in the form of Windows 8. Windows 8 was only briefly mentioned at their E3 press conference, and what was mentioned was the fact that XBox 360 games will be playable in the operating system. Also remember that Kinect is now compatible with Windows and Windows 8 uses the Metro UI, the same UI found on XBox 360 and Windows Phone 7. What this says to me is that the next XBox will be a Windows 8 computer, one with an app store where Microsoft can let these companies program their own executables. Unfortunately there will be no way to guarantee all the services at launch of the new XBox that are available as apps on the 360, but if it does just ship with Windows 8 then all those services will be accessible via their websites anyway.


One other bullet Microsoft will have to bite with a Windows 8-powered next gen XBox is that the platform will have to be more open. They can do their best to close it off, eliminating access to the registry, command prompt, control panel, etc. but they won't be able to do anything to stop developers from distributing apps over their own websites, or competing services like Steam. The only way they could would be if it did not have Internet Explorer installed from the start (which it will, what with it coming out on 360 this fall) or blocked installation of programs without some kind of digital approval stamp, much like what Apple is doing for OSX programs now. No matter how closed they try to make it, at its core it will be Windows 8-powered, and someone will find a way to gain access to the full Windows buried deep inside. At that point, there'll be no stopping it from becoming the rumored Steam Box.


So where does this leave Sony? Well, pretty much in the dust, unless they team up with Microsoft to create a Playstation-certified Windows 8 VAIO which, believe it or not, is a definite possibility. Heck, we've heard rumors that the next XBox will have a Blu-Ray drive. Since 360 games will be playable in Windows 8, they'll just all become PC games. That would just leave new, specialty Blu-Ray games to be playable in the system's drive, ones that would only be compatible with this system. Yes, I understand there is a lot of conflict here, mainly between Playstation Network and Xbox Live, but are either of those going to matter when you have Steam games running on your 60" TV? Don't think so.

In the end, the PC is going to be the winner, just as it has been for every console generation. At the beginning of a console generation, everyone thinks the PC is dead. By the end, PC game sales have embarrassed console game sales (cough Diablo 3 cough); they end up with more services, openness, usability, and power; no contract requirements on the end of the manufacturer; and PCs do not become outdated as quickly as consoles (with the exception of laptops built to be weak like netbooks).

Windows has won the console war. Deal with it.


Oh, right, Nintendo. Yeah, um, whatever.