General Gameplay
Confidence meter
Tommy begins the game a reluctant here-unsure as to his own abilities. It’s our job to bring character growth to the player, the sense that Tommy is "growing into" his role as a hero.
Obviously, one way to show growth to the player is as Tommy learns his mystical power and grows their abilities.
Behind the scenes of the single player game, there will be an invisible "confidence rating" that will increase during (and decrease?) the play of the game. Events like killing foes, finding secrets, passing through dream quests will all add to the player’s confidence rating.
At certain thresholds, the confidence meter will trigger a different set of "Tommy Banter" to be used, so that the player can hear Tommy's growing confidence through his own voice, comments and observations. NOTE: (George) Imagine is Gordan Freeman had started off sound meek and timid and afraid and by the end of the game he sounded strong and confident. Hard to pull off, but if you do it, the character is 3-dimensional and more than a stereotype.)
Question: as Tommy’s confidence raises, should some of his other abilities increase as well? Maybe Tommy's confidence meter should act kind of like experience in RPG's and dictate certain things?
Player controls
Standard FPS controls. But Tommy should be able to do 2-3 more interesting things (Climb/swing on ropes, Grab/Throw items etc).
Health / food sources
Health will come to the player in 2 forms in Dark Harvest—organic "food" and health stations.
"Food" is a term loosely applied to organic items that the player may pick up or catch and eat for nourishment in the game. Food comes in 2 forms—sedentary and motile.
Sedentary food is like a can of beans or a piece of meat. Motile food is an animal to hunt and kill—it then becomes sedentary food. (NOTE: I LOVE the idea of Tommy killing small ambient creatures for food on the alien world - this WOULD ROCK! Like the lizards in Rune.).
To activate sedentary food, the player must simply move over it—an aural cue will indicate that he had picked up and eaten the food. Motile food must first be killed - or maybe just hit the USE key with it targeted and Tommy will grab and eat it.
Some of the alien food may actually poison the player while other food may increase health but offer other side effects as well (some desirable, others not). Below are some possible food powerups:
Sedentary:
Type: | Species: | Description: | Health: | Side effect: |
Water | Earth, Humanoid | "use" near water to take a drink | +2% | none |
Canned stew | Earth | Move over a can or "use" if on a shelf | +15% | none |
Insectoid drone fungi | Insectoid | This fungi is harvested by the insectoids to feed the larvae and drones | +25% | Control is sluggish for 10 seconds, view is stilted for about 7 seconds |
Motile:
Type: | Species: | Description: | Health: | Side effect: |
Rabbit | Earth | Your basic rabbit | +5% | none |
Air flyer | All Trocaran | Like fleshy, floating jellyfish—when you kill them, the explode, and the explosion has damage, but the chunk of jelly flesh that falls is edible | +5% | none |
Humanoid rat | Huanoid | A large, fat, deformed rat | +10% | There is a 25% chance that this rat is infect, in that case, the control is off for 10 seconds |
Damage system
Each entity will have a flag to tell whether it is invulnerable, basically destroyable or dynamically destroyable. Objects like a crate, cash register or gas pump are basically destroyable—they simply blow up. Enemies and other player characters are dynamically destroyable—the damage system is more refined and the results of damage taken will be more dynamic.
All destroyable entities will have a health value—once this value dips to zero or below, the entity is considered killed.
Entities take damage from collision with other objects in the world. These objects can be environmental, such as a wall, a floor (from a fall), another entity, etc. In this case, there is no target check, but damage is applied generally, based upon force. If a dynamic entity (like Tommy in Multiplayer) is hit with weapon damage (a projectile, a shock wave, a bomb explosion, etc.), then the receiving entity will check the hit location.
A dynamic entity is broken up into various hit location areas (heard, torso, arm, etc.). Each hit location has a "damage threshold" value as well as a damage modifier value.
First, the damage modifier is applied to the weapon damage to determine to total damage received from the hit (as an example, an arm hit will lessen the total damage, while a head hit will amplify the damage).
After the damage has been modified, the entity is checked to see if there is any relevant armor at the current hit location—if there is, then it will absorb damage (and lose effectiveness, of course) first, before the entity does.
If the damage done by the weapon (after modification) at a certain area exceeds the threshold value, then a test (random, percentage based) is done to see if a critical hit has been achieved. If a critical hit is determined, then a critical hit is processed (if there is more than one critical hit possible for an area, then a critical hit is chosen randomly).
Note: damage is not applied to individual areas of an entity—individual areas are only used to determine a damage modifier, possible armor and possible critical hits.
If a critical hit is registered, then one of the possibilities is that an appendage may be severed.
Player characters, all we have is head, arms and legs to be severed.
When a limb is blown off, that appendage is "shrunk" and its polys are no longer rendered—a pre-modeled arm, leg or head gib is spawned, plus a gore gib is attached to the stump
Blow off head—dead, but maintain control for 5 seconds—head fall and camera looks at headless player
Blow off arm and weapon is also destroyed (perhaps he can still hold it?), health "bleeds" down to 5%
Blow off leg and animation switches to a death animation and player dies
Driving a vehicle
When the player moves towards the control area of a vehicle (like near the steering when and driver’s seat of the school bus) and invokes the use command, he will then take control of the vehicle (this is an example if the "use collision" type of trigger).
For example: the player steps near the seat of the school bus and taps use—an animation is triggered for the player sitting down in the seat and grasping the steering wheel (his hands will snap to bones in the wheel). To stop using the bus, he simply invokes the use action again to get back up to standing position.
When a player is in vehicle control mode, most of his control input will be directed to the vehicle’s control (like turn the mouse left/right to steer the bus, move forward to put your foot on the gas, etc.). If a vehicle has weapons, then the player uses his own weapons control to access and use the vehicle’s weapons. We will decide on the proper control interface on a per-vehicle basis.
Hearing a translation
During Tommy’s vivisection episode, part of the rear lobe of his brain was augmented with the addition of a semi-reliable language translation implant. During chapters 1-2, all alien-speak is just that, alien and unintelligible.
After Tommy wakes up in the prison, his translator is working—since it was a modification of the rear lobe of the brain (where coordination, language and optical info is processed), the translator, when working, works for both spoken words and visual text.
When Tommy listens to an alien speaking, it almost always starts off as alien (his translator must recognize the speech before it kicks in), but then the translation begins (sometimes—it isn’t always reliable) and Tommy will hear the translation, slightly garbled and modified, layered on top of the alien speak.
When Tommy looks at something visual, the image will fluctuate from alien language into readable English (with "noise" and inaccuracies added).
Option: since motor coordination is also effected in that area of the brain, should we have Tommy’s controls get sluggish or strange when his translator is working properly? Just a thought.
Interacting with a kiosk
At many times during the game, Tommy will interact with Trocaran kiosks—from here he can access a myriad of data about the ship, his location, his situation, the game story, etc.
For "single burst" kiosks (one that only spout out one bit of information), Tommy simply approaches and invokes the use command.
For more complex, interactive kiosks, Tommy starts the session up with the use command, but then his movement controls will control the kiosk (and his animation will move him so that he is looking at the information and interface area of the kiosk more closely). To end the session, he invokes the use command again.
Note: we will need to come up with some fairly standardized physical, artistic and interface design motifs for these more involved kiosks, since they will involve the player to a greater degree—it really doesn’t matter for "one shot" kiosks.
General AI behavior overview
Last revised: 07/01/98 - PCS
One possible approach to AI is to break it into two different classes: style and plan. The style is basically an AI entity’s personality—how it attacks, etc. The "plan" is independent of the entity—it is essentially a behavior script that can be assigned by the mapper. One entity might have a plan to get behind the player, or run away, or run and tell other where the player is, etc.
Beasties can be seen "doing things" rather the just standing around
Some beasties can use multiple weapons
Each specific instance of a beastie can posses unique traits (such as aggressiveness, speed, skill, randomness, etc.)
Beasties are somewhat unpredictable
Beasties can group up into temporary "packs"
Beasties can hunt the player
Beasties can sneak up on the player
Beasties can run from the player
Beasties can evade the player’s attacks
Some beasties can use the environment to their tactical advantage
Beasties can hide
Beasties can ambush the player
Beasties can aid the player (not attack the player, but attack some things that the player attacks)
Beasties can navigate intelligently through a level (up stairs, jump across gaps, etc.)
Some beasties can use switches, etc.
Some beasties can have arms, legs or head blown off
AI States (overview)
Note: these are only possible states, not nailed down as of yet
AI state: | Description: |
Stasis | This is the ubiquitous "hang out until something happens" state—beastie remains in the stand still behavior until something happens. |
Script path | This state causes the beastie to seek (see below) the nearest possible path entity. Once a path has been found, the beastie follows the path entities and instructions (until a trigger bounces the beastie to another state). |
Script action | This state causes the beastie to seek (see below) the nearest possible action entity. Once an action entity has been found, a check is made to see if the action entity is possible for the beastie (brain worms wouldn’t type at a keyboard, for example). If it is, the action is looped until a trigger bounces the beastie to another state. If the action does not match the beastie, then beastie will move to the next action entity, etc. |
Seek | This state is
multipurpose, and can be nested within another state. Essentially, this
state tells the beastie to seek an entity or condition. It can be used, as
in the above states, so seek a path or action entity. It can also be used,
in conjunction with flee, to seek a "quiet" place. In
conjunction with hide, it can be used to find a dark, hidden place.
Seek will primarily be used, however, to follow a player until the beastie closes within attacking range. |
Seek sneak | Seek sneak is a variation of the seek state that instructs the beastie to close upon an entity or condition in a stealthy manner—this means moving towards the target while attempting to remain out of clear line of sight (and, if possible, to seek the "darkest" possible path). |
Group member | This unusual state places the beastie "under the influence" of the group leader. When in this "meta" state, the beastie will follow the group leader as he works through various states. Once a group leader attacks a target, the beastie in the group member state will attack as well, and drop out of the group member state (we’ll need to test the conditions of dropping out to see what feels right). |
Ranged attack | The ranged attack state is available to beasties who have a defined primary or secondary weapon. When the beastie has located a target who is within range of the available weapon (primary weapon is the preferred weapon), and has ammunition remaining, he will attempt to attack with the weapon. If he runs out of primary weapon ammunition, he will switch to his secondary weapon (if he has one) and continue to attack. During the attack, the beastie will gradually close on the target in a zig-zag fashion. The beastie will be bounced from this state if: a threshold dose of damage is delivered to the beastie, if he runs out of ammunition, if he kills his target or if his skill level switches him over to the evade state. |
Attack snipe | The attack snipe state will generally only be available to highly-skilled beasties. In this state, the beastie will attempt to fire his weapon from long range and will not close on the target. In addition, the beastie will attempt to only fire when the chance for success is greatest. The beastie will also attempt to seek to fire from cover, if at all possible. |
Attack melee | The attack melee state will invoke when a beastie is within melee range of an acknowledged enemy. The beastie will continue its melee attack until either the target is dead, has moved out of melee range or another trigger (such as excess damage for some beasties) bounces the beastie out of this state. |
Attack berserk | The attack berserk state will probably only be available to certain beasties. It is a hybrid of the attack melee state, but in this state, the attack is far more ferocious (in sound and damage done—possibly even in behavior). Also, any beastie in the attack berserk state will ignore any "break from attack" triggers such as massive damage being done to the beastie. |
Evade | The evade state is a short term state which causes the beastie to move away from an attack from its current target. This could be as simple as moving away from a melee attack or as advanced as crouching behind a crate to avoid ranged weapon fire. |
Flee | This state tells the beastie to flee from an attack, utilizing the run behavior coupled with an evade state. |
Hide | This tells the beastie to move to a position of cover. If the beastie has a target, then it will hide away from the target’s line of site. Hide will also tell the beastie to seek a dark location, either behind something, under something or in a corner. |
Rage | Rage is a hybrid seek state which is often used in conjunction with attack berserk. Rage is essentially the seek state with "more bravado" which will employ more sounds, faster running, and occasional appearances of the pain, rage and or melee attack behavior. Basically, the goal of this state is to create the effect of a wild and enraged beastie to freak out the player. |
Pain | A beastie enters the pain state when it receives a blow of significant damage—pain will disrupt the beasties from its current activity as it plays out the pain behavior—this is, though, a short-term state—the beastie will return to its previous state once the pain has played out. |
Critical | Certain beasties can have arms, legs or their head blown off. This will not occur with every kill, but at times, if the aim is correct, there is a percent chance that the beastie will enter this state and go through the appropriate behavior (such as having an arm blown off). If the critical hit doesn’t kill the creature, then its subsequent behaviors will be altered as well. |
Dying | When a beastie’s entire body trait has been diminished due to damage, it will enter this temporary state as it moves through its death behavior and tumbles to the ground (or ceiling, or whatever). |
Dead | The dead state indicates that a beastie is dead (and can be culled from the world, if necessary). Some beasties may have a "dead behavior" when shot or bumped into, such as a twitch or a moan—this also facilitates the option of having a beastie resurrected. |
Uni behavior 1 | This state exists to facilitate the creation of a unique behavior for a beastie. |
Action 1 | This state exists to allow a beastie to "play through" a "canned" animation of it performing some sort of task, such as typing at a terminal or carrying some object. |