[[TOC(Projects/KungFu/GDD)]] = Kung Fu (''better name pending'') Game Design Document = Cory !McWilliams = Game Overview = == Introduction == Kung Fu will be an action and adventure game where the player has the unsurpassed abilities of a Shaolin Monk. Rather than losing health and dying when attacked, as is typical in games, the player will only face minor setbacks when hit and instead must learn to make noble decisions about conflicts with NPC's in order to avoid unnecessary suffering. Several different game mechanics will be employed to dissuade the player from making improper choices and otherwise provide feedback to the player in the absence of health. == Target Audience and Players == College studients are the target audience, especially those familiar with adventure games and bored with dying and restarting a level over and over. == Key Features == * Melancholy meter instead of a health meter. * Multiple ways to progress through each level. * Flashbacks and spiritual encounters with Kung Fu Master. * Involving story. == Story == The game starts with the player meeting an old Kung Fu master to begin his training. After completing training, the player accidentally destroys the monastery and is asked to leave. While walking away, ninjas attack the old man, and the player returns to share parting words at his deathbed. The old man sets the player on a quest, and from that point on, the player travels from town to town, affecting peoples' lives and occasionally receiving spiritual guidance from the old man. == Locations == The game will include four main levels preceded by a tutorial level. Levels will be representative of different towns and gatherings that might have existed in the gold rush-era US but hopefully transcend time. Each will contain a number of unique characters and independent story. The five levels will have the following settings: * Training at a Shaolin temple * Railroad * Coal town * Gold mine * Cottage == Competing Products == The inability to die in this game places it in line with old adventure games, such as ''Monkey Island'' by Lucas Arts. In these games, players generally can not die or even deviate from the story line, but the whole challenge in the game is in discovering how to progress through the game by finding and solving the puzzles. Some games use systems which involve little punishment for death. ''Pirates!'' and ''Soul Reaver'' are described as having this property, merely setting the player back slightly or requiring extra work to return to the main game when failing a task. The games ''Katamari Damacy'' and ''We Love Katamari'' are also influences, as aside from the main interaction between the player and the world, feedback is also given through an intimidating and humorous King who teases, insults, and even shoots laser beams from his eyes at the player character when the player doesn't do as well as he or she should. == Risks == === Balance === Balancing this game will be the biggest risk. The intention is that there are multiple ways to proceed through the game. If it is too easy to take the ''noble'' route, the game will be uninteresting and will merely be an interactive story. If it is too difficult to take the ''noble'' route, or players don't realize that there is more to the game than killing everyone in sight, then the game may be seen and an excessively easy action game. If the negative feedback is too harsh, players may be dissuaded from playing entirely. If it is too weak, players may not even notice it. Progress will be controlled by requiring players to complete numerous adventure game-like tasks. There will need to be sufficient reward for completing them and they need to be visible enough that players don't accidentally miss them. === Technology === It is also important to get enough features implemented early on in the codebase so that making a fun game is easy. Many needed features are already working, but things such as dialog, NPC behavior, progression through tasks, and cutscenes all need work to make this possible. = Negative Feedback = The most unique part of this game will be the ways in which the game provides feedback to the player. Feedback will be provided in several different ways in an attempt to provide the strong influence that typical games provide as well as leave room for balancing and tweaking later in development. The first part will be a melancholy meter. Rather than a health meter, where the player loses health when attacked and eventually dies, this game will feature a melancholy meter, where the player becomes more melancholy with every person that is killed. When the meter is high, speed and attack strength will be depleted. In order to lower the melancholy meter, the player will need to meditate, which will involve finding an appropriate quiet place for doing so. Another component will be story-based. NPC's will react to events in ways to reflect the actions taken by the player, even if this is as simple as disparaging the player for injuring a relative. Jail will play a key role in this system. In certain levels, being surrounded by attackers will result in the player being placed in a jail. Escape will not be difficult, but this will be yet another setback to guide players. Finally, when meditating and moving between levels, the player will be visited by the Kung Fu master, who will abuse or praise the player in humorous but hopefully effective ways based on what the player did. = The Characters = == Main Character == The main character will be a young man trained in Kung Fu, in the image of Caine from ''Kung Fu'', the televisions series. == The Old Man == The old man is the main character's Kung Fu master. The player meets him in the tutorial level, after which the old man visit the main character between levels and when the player meditates. The old man is the main helper character. == Ninja == Ninjas are an all-around bad enemy for which the player shouldn't feel too bad about defeating. They are most troublesome when attacking other innocent people. == Townsperson == Townspeople will make up the rest of the people in the game. They may be specialized as needed by the story and may exhibit simple behavior combining dialog, travelling between waypoints, and changing behavior under certain conditions. = Preliminary Level Design = Each level will be something like a small town, with different buildings that can be entered, people in different areas, and different tasks waiting to be completed. == Training == The training level will be simple but serve several purposes. * introduce players to the simple controls * illustrate several ways in which the controls allow the player to interact with the world * ''introduce'' the player to some enemies * establish a relationship between the player and the old man === Objectives === * "Grab this pebble from my hand" => welcome speech from old man * break boards * walk across balance beam * carry water * fight one guy * fight a bunch of guys * meditate * grab the pebble == Railroad == After completing training, the player will stumble upon a railroad, being worked upon by townspeople who are in turn being supervised by evil slavedrivers. This may actually be simpler than the training level, but it is intended to introduce the player to progression and typical interaction in the game. * Teach the player that decisions, not just fighting abilities, have an impact * Player gets thrown in jail * Innocent people may be killed === Objectives === * Get out of jail * Free the people * Fight ninjas == Coal Town == This is where the game gets interesting. The intention here is to have a bustling town where the player needs to solve a number of different problems in order to advance. The level will be one main street of a town with buildings and houses around it. === Objectives === * Angry person who does nothing but attack you. * Defeat him? * Get him a special item hinted by someone else in town. * Settle a brawl between two people in town. * Attack one, the other, or both? * Kill one, the other, or both? * Bring someone else into the mix? * Initiate and get to the other side of a barfight. * Join in or not? * Get help from a lady in town. * Listen to her or just put up with her? * Fight off random ninjas. == Gold Mining Operation == This will be a largely outdoor level, involving travel between a mining operation and a small house inhabited by a lady who owns cats. === Objectives === * try to help cat, cause its death * find another "replacement" cat by doing chores for a lady * break things * carry things * find something and return it * fight ninjas * protect cat when ambushed == Cottage on the Beach == This will be a boss fight. The player must try to fend off swarms of ninjas to protect a widowed lady and her son and find ''a yet-undecided item'' so that they can defend themselves. The player must juggle defeating the ninjas with finding the item. If ninjas are left wandering around the cottage, they may enter the door and attack the family. Finding the item will involve finding a sequence of keys, which are in turn being guarded by ninjas but open things such as the basement, closets, a shed, and various other rooms around the level. Completion of this level will lead to a final cutscene. = Player Reward and Advancement = Player advancement will be guided by tasks which will either obvious or described by NPC's and confirmed by visions of the Kung Fu master. == Difficulty == Difficulty levels will be a result of being able to complete the game in different ways. Completing the game honorably will be significantly more demanding than plowing through the goals doing whatever is easiest to complete them. == Becoming Less Melancholy == As described above, one main property of the player will be his level of melancholiness. Killing people raises this, and meditating lowers this, though meditating requires special conditions which are hard to find in the middle of a fight. == Scoring == Players will be judged by the Kung Fu master based on casualties and tasks completed, awarding an overall score that reflects how well the player did and suggests room for improvement if possible. = Scope Summary = * Top down gameplay * Simple player abilities * Stand * Walk * Jump * Punch * Pick up / carry / drop * Hostile Enemies * Ninjas * Some Townspeople * Interactive Objects * About 15 unique objects for the sole purpose of finding, taking somewhere, and dropping / giving to someone. * Doors / gates * Breakable objects = Game Mechanics = The game will be a top down action and adventure game. The player will have basic movement controls plus the ability to attack or interact with an object. There will be significant challenge is finding the best way to progress through the game through decisions that can be made. == Player Controls == || Walk Forward || Up || || Walk Backward || Down || || Turn Left || Left || || Turn Right || Right || || Punch || Control || || Pick up || Control || || Drop || Control || || Give || Control || == In-Game Items == Items will not bestow any special abilities. They are merely for interaction with NPC's and doors, in the case of keys. Each item will have a sprite image for when it is resting on the ground and one for when it is being carried in the player's hand. * Cat * Key * Book * Flowers * Money * Chunk of gold * Stuffed animal * Glass of water * Hammer * ... others undecided = AI System = == Collision == Collision handling is being handled by a combination of ClanLib's CL_CollisionOutline system and the code that was developed for another game using a similar engine. Collision outlines are generated from an image, in this case for PNG images based on the transparency information. The outlines are sets of contours, which are sequences of points making up line segments which are then grouped into circles. Essentially this means that it is pretty simple to check whether two sprites are overlapping, roughly. Collision response generally prevents any movements which would lead to two solid objects overlapping, by moving back to the previous state, bouncing off, or doing whatever is necessary. == Behavior == A very simple scripting system will be made to control most NPC's. This will mediate behaviors including the following: * Waiting until a certain condition to spawn * Presenting dialog to the player * Walking between waypoints * Following a person * Attacking a person * Changing behaviors when presented an object == Hit System == Each hit to an enemy will bring it closer to death. * pushed back * pushed back, stunned temporarily * pushed back, stunned longer * knocked on ground, stunned even longer, has to get back up * killed == Navigational Objects == * There will be objects which obstruct the player until broken. This includes some doors. * There will be doors which require a certain key to open. = UI Design = The main menu will only have the options to start a new game or exit. == HUD == The top of the screen will contain the melancholy meter, which will be a health bar-like image. == Text Boxes == Speech bubbles will appear above NPC's who are speaking. As much as possible, dialog will be kept short enough to fit in one bubble in such a way that its presence does not obstruct the game and it goes away when action picks up. == Pause Menu == The pause menu will allow the player to exit back to the main menu or return to the game. = Music and Sound Effects = Different music will be used for each of the following areas. * Main menu * Level 1 * Level 2 * Level 3 * Level 4 * Level 5 * Good meeting with Kung Fu master * Bad meeting with Kung Fu master Sound effects will be found or made to fill in any interesting actions the player may do. * numerous punching / getting hit sounds * board breaking sounds * cat sounds * door opening sounds * water sounds * walking sounds