In this post I’ll try to lay out a shopping list for myself of things that need to be done on this project. I’ll try to order them in a rough priority, but obviously the different aspects are all interconnected, and so how I attack the list my be somewhat different.
Colliding with walls, game edge, and other players. Cocos2d supports both Chipmunk and Box2d physics engines, and although they may be overkill for basic collisions, it would be awesome later on to have some tasty physical interactions (I’m thinking dynamic limb removal, N styley ).
Speaking of walls – we need real ones. Basically, I need to come up with a file format for describing the polygonal walls, and level size, so that it can be loaded easily (and perhaps in the future edited by and shared by players). This file format will need to also in some way contain animation info – lights that move are a key aspect of a level, and in the future there could also be animated walls.
…and speaking of lights, the dynamic shadows need to be implemented as well. A while back I managed to get a prototype working in Flash (flixel to be more specific), so I think I have a rough idea of the implementation, but it may be tougher than expected. Also, this is where performance may take a hit, so it may require some optimizing.
Initial steps have been made in figuring out what gesture the player has made, but without having a plan for what sort of gestures are needed, and how they are to be dealt with, I can’t work much more on them. They are closely tied to the combat and movement, and will probably be developed simultaneously.
This is a vital part of the gameplay, and something that needs to be implemented early on, in order to get playtesting sooner rather than later. As this is a 2(or more?) player game, and the iPhone is definitely not a 2 player device (see Networking below) I will initially have to fake the 2nd player’s interaction with some very basic AI. It will probably be an enemy who stands still, and, with random accuracy, attacks, blocks, and parries. It would be great in the future to involve a more in-depth AI, but for the initial scope of this game I think that may be rather tricky (though I’m not saying it is out of the question).
As mentioned above, networking is going to be key to this game. Without it the multiplayer aspect just isn’t going to work. The easiest solution would be to limit the multiplayer to nearby iPhones, using Bonjour or some other solution (I must admit I am far from an expert in this field). This would seriously limit the lifespan and enjoyability of the game. What would be great is to allow games across the net, based on a central server.
It would be cool to start up the game, see a list of all other players (friends highlighted), and choose battles in different arenas. This could give scope for leaderboards and karate kid style championships. Perhaps Apple’s GameCenter gives these kind of features? The logistics of syncing high-speed battles over a laggy network is going to be tricky, but one of the guys in the GameJam team had previously done some work on this. I will have to investigate.
It would be great to have some dynamic and cinematic camerawork integrated into the game. Initially this could be limited to zooming in/out when jumping, and some jarring effects when in combat.
Some of the visuals will be procedural (such as the walls/shadows), but the ninjas will have to be designed and hand drawn. I have some ideas, but will probably start from scratch when I get closer to need real designs.
I would like to investigate making the character’s animation procedural as well – so that all the ninja’s bodyparts are separate components, animated based on the speed/direction of the ninja. This may end up being a large task, but could add a slick, non-repetitive, dimension to the characters movement…. and it would allow for easier decapitation
There will need to be menus for getting into a game, and in-game pause and death menus. This can come a bit later in the process, as for now the gameplay itself is the most important part to get right.
These are all bonus effects that could add a great deal to the polished feel final package, but will probably come later in the process. For example:
- Blood splats that fly in specific directions based on impact.
- Sparks on sword impact
- Full screen effects (like blur/distort) when hit or dying.
Good sound effects are very important in making the gameplay feel solid and satisfying, but as this is on the iPhone it shouldn’t break the game to not hear the sounds. All key sounds (such as a warning when to parry) should be tied to a visual cue.
The music should be awesome, and dynamic if possible – ramping up the tension when the players are close, and going all out when in combat. My vision (if that’s the right word) for the music would be something in the style of these Kodo drummers:
Maybe an electronic edge could work well too:
This was mostly a brainstorming exercise, and the list is by no means complete, but it should help to keep me on track, and not let me get distracted by small details when there are large areas that still need work