Monday 27 September 2010

Touching your (ShadowNinja)Monkey


So, to follow up on the previous post, what progress have I made with ShadowNinjaMonkey (SNM) so far?

As there is a fair amount to go into, this will be split over several posts.


Control Design
To start with, I focussed on designing the combat in more detail. In the original Game Jam prototype this aspect really wasn't thought about properly. Along with the shadow based hunting/hiding mechanic, this is the other core piece of gameplay, and ultimately the reason why you are hunting/hiding, so it should hold a certain amount of depth.

Although by no means a Soul Calibur-style fighter, I'm still imagining a back and forth attack/parry system within the combat, where timing is key, and where you have the ability to charge your attack (with a negative effect on movement speed).

The ninja's movement is another aspect that needs to be polished. The ability to move with precision when hiding is needed, and also the ability to pounce at the enemy when attacking or when jumping between cover.

Basically, the design principle running through the control design is this: you should feel like a badass all the time. To get this feeling there will have to be a lot of tweaking, play-testing, and fine tuning.


Now, the iPhone/iPad touch interface poses some interesting design opportunities and issues. On the PC it is simple - WASD for movement, and a couple of buttons for pounce and attack. On iOS devices movement isn't too hard - a classic thumbstick can be simulated easily (I'll post about my implementation one of these days).

For jumping and attacking, however, there are a large number of options, including taps, double taps, two-finger taps, combinations of taps and holds, and gestures. From my experiments pretending to control a game on the iPhone, it seems clear that using 2 fingers on one hand is fairly awkward, and at most should only be used for advanced moves. My initial guess as to the controls is as follows:
  • 1 tap - Weak attack
  • Hold - Charge attack. Attack on release.
  • Line Gesture - Jump (not sure whether the direction will have an effect)
  • Line when hitting wall - Wall Jump (reverse direction, speed up)
  • Shapes (zig-zag/circle...) - Different attacks
(For now imagine the thumbstick on the left half of the screen, with the right half empty for gestures - this should be user-definable)

These moves can be combined, if you are dextrous enough, and there could even be some special-move combos. It goes without saying (but I'll say it anyway), all these controls may/will change when there is something to play with.

Enough designing - next step... code.

ShadowNinjaMonkey AWAKES

Long time no post.

This is hopefully the start of a series of posts about my work developing a game for the iPhone. First, some history...

The origins of this game comes from the Global Game Jam 2010 (a great annual event where teams must design and make a game in a weekend - definitely worth getting involved in).

I had pitched the idea the previous year, but we finally got round to making it this year. The title was ShadowNinjaMonkey, and the idea in a nutshell is this: a black and white ninja hunting/battling each other in a black/white world of dynamic shadows, where the white guy is hidden in the light, and the black guy is hidden in the shadow (see Samurai Jack - Black vs White ninjas for the obvious inspiration).

The result of the weekend was both satisfying, and disappointing. The final game was FAR from finished. The player was just a dot, his sword only stuck out sideways, it was very hard to control, the combat wasn't fully thought out, and it would crash if you finished the level. But hunting each other in the dynamic lights and shadows turned out to be a lot of fun, and we ended up winning several jury votes for the best game (resulting in having to make some very confused sleep-deprived speeches - I'm the mumbly longhaired guy at around minutes 7 & 11).

You can try the original version here. It requires the Unity plugin, and another player on your local network (you have to enter their IP) - like I said: FAR from finished.

We agreed as a team to work on this further after the Jam, and although we've separately investigated aspects of it, we haven't focussed together enough to produce anything of note. I'm hoping this will change. I've been working on the control logic on and off (in a variety of languages, including flash and javascript), but have finally started to work on what (I hope) is the final iteration.

As mentioned above, the iPhone is the destination for this game. There are many reasons for this... I am working as a Cocoa developer during the daytime, I want to practice iPhone development, it has proven itself as a game platform that works, and there are more opportunities for making some money on the AppStore than in the browser, desktop or console.

So, what is the purpose of this blog? Well, mostly I'm hoping to motivate myself into seeing this through to the end. Also, if this does lead somewhere it will be an interesting log of my thought processes. I will try to regularly update these pages with my progress, game design ideas, artwork, anything really.

Coming Soon... An engine, some code, and some improved designs.