Thursday, February 17, 2011

Hot Potato v1.0

Here be the most recent version of the design document which still requires a lot of refinement. Time's a ticking, crunch time is fast approaching and I have very little to show for it. Cries of "FFFUUUUUUUU-" will be heard.

Hot Potato

Genre
3D Destructive Sandbox

Engine
Unity 3

Tagline
Hot Potato got Destructive

Premise
Violence and mayhem as a flaming ball rampages through a city

Setting
The game is set in a large cartoon world where the laws of physics border on the ridiculous. Collisions in the game will be overly dramatic and humorous; contact with the ball will result in flames and explosions. Gratuitous violence is to be expected.

Game Structure
Hot Potato is a destructive casual game where the player's aim is to destroy the city using a flaming ball. Each play session involves the player attempting to beat their previous score before the ball's flame extinguishes.

The world of Hot Potato is designed in a sandbox structure, this allows the player to explore and experiment. Hot Potato focuses on mindless destruction and violence for enjoyment.

The game has room for different environments (maps) to become available for players to download or unlock. These would extend gameplay by offering the player different scenarios and objects to explore and destroy.

Gameplay
The player manipulates the ball's movement by tilting the world left and right. The ball's trajectory is affected by the tilt angle; players can manipulate this to optimise gameplay.

The flame burns out over time and the game will end if the flame burns out or is extinguished. Quick reflexes are required to avoid obstacles found in the game; these could have an extinguishing effect on the ball's flame.

Points are awarded for the amount of destruction the ball causes. Destroying and exploding objects will fuel the flame which aids in the destruction of objects and prevents the game from ending prematurely. The size and temperature of the flame will affect its destructive power.

Controls
Players control the game world via keyboard, the amount of tilt is determined by the duration of the key press. The world can be tilted in 8 directions (X and Z axes) to a maximum of 40°.

The angle and speed of tilting will affect the ball; the player can judge the timing and angle of their tilts to optimise the ball's collision.

Camera
The camera functions by scrolling with the ball, the camera will attempt to keep the ball centred on screen.

GUI
The GUI will only display the player's current score while the ball's current direction will be displayed onscreen as a moving arrow.

Ball
The ball is indirectly controlled by the player, its direction of movement is determined by angle and speed of the world's tilt but also by explosive collisions and obstacles.

Flame
Burns out over time but is fuelled by colliding with destroyable objects. The flame's colour is a visual indicator of how long it will last for. The colour will change from Red > Orange > White, with variations in between.

Flame Colour Chart: Left (Coolest) > Right (Hottest)
Warnings will appear if the flame is in danger of being extinguished.

As the ball destroys more objects, its colour will change to reflect its temperature. An object's resistance to the flame is determined by its size, type and material e.g., wooden objects are very flammable while vehicles require a higher temperature to explode.

The flame's size can increase momentarily when it collides with multiple objects or causes an explosion. Extra points can be rewarded if the flame flares up during these instances. Flaring up will cause the flame to spread out for a limited amount of time.

Collisions
When the ball collides with another object, it will either be damaged or explode depending on the object's size, type and material. A wooden crate will burn up but may explode if it contains explosive material. If the ball collides with a car, it could take repeated hits to explode the car.

Destruction and Explosions
The ball can destroy objects by burning or exploding them. Objects will add fuel to the flame while shrapnel can fly and damage other objects. Points are rewarded for the number of objects destroyed and additional points can be rewarded for explosions that occur during the destruction.

Explosions will fuel the ball's flame for longer and can cause chain reactions by destroying objects caught in its radius. Based the size of the explosion, the ball can be propelled in certain directions. This can be advantageous to the player as they can use it to navigate around the game or reach more objects.

Debris and Flying Objects
When an object is destroyed, there is a chance that it will break into debris or fly into other objects. Bonus points can be earned if the debris or object destroys nearby objects.

Barbequed, Gore and Ash
If the ball collides with flesh based creatures, there is a chance they will become barbeque or ash. Bonus points are rewarded if the player barbeques a large number of creatures. Gory collisions can occur if the creatures are hit with debris or flying objects.

There is the random chance that a pile of ash could become a zombie, points are rewarded if the resultant zombie is killed.

Demolition
Buildings can be destroyed over time by multiple collisions with the ball or during multiple explosions. Large explosions are more likely to destroy a building than smaller ones however small ones could be chained together to topple a building. A building's resistance is dictated by its size and function; a shack is much easier to destroy than a bank.

Destructible Objects
-Cardboard Boxes: Standard fuel that can be found anywhere in the world. Will burn but not explode or burst into debris.
-Wooden Crates: Has a low chance of exploding and breaking into debris. This will provide the ball with a moderate amount of fuel.
- Packed Crates: Wooden crates filled with miscellaneous items, some of these have the potential to explode.
- Metal Crates: Depending on the size and flame temperature, these can be difficult to destroy. These have a random chance of exploding.
Fences: These have varying resistance to flame, a concrete barricade can be used as an alternate pathway while a wooden fence would be fuel.
-Signs: Objects that provide some fuel for the ball, these are more useful as flying objects depending of their size.
- Traffic Lights and Street Lamps: The light and pole can be destroyed as separate sections resulting in more points.
-Trees: Will burn down and fuel the ball for a long period of time. Can be used to crush other objects in the world.
- Telephone and Electricity Poles: These have similar function to trees but can cause more destructive effects like electrocution and electrical fires.
- Oil Barrel: Will explode upon contact, the hot oil can cause a flare up and burn nearby objects.
- Gas Cylinder: Will explode when broken open, the amount of damage is determined by its size. This can cause chain reactions.
- Acid Container: When this explodes, it can spray acid everywhere. This can be used to erode surrounding objects and injure nearby creatures.
- Bombs: Explodes upon contact, can cause multiple explosions and destroy buildings.
- Trashcans and Dumpsters: Colliding into these will cause an eruption of garbage which can then be used to fuel the ball.
- Vehicles: Can explode with direct collision with the ball. A larger vehicle is more likely to be burnt and flung around the world during collision or if pushed by an explosion.

Fleshy Creatures
-Humans: Two legged creatures that will run away from destruction and explosions. They can be hurt in numerous ways; points are allocated based on the death received. Additional points can be rewarded depending on what human is killed. E.g. A civilian is worth less than a Santa impersonator.
-Animals: Creatures that have the random chance of becoming barbequed if they collide with the ball.
- Zombies: Arises from the ashes of killed fleshies, can be killed for more points. These will attempt to consume any fleshies nearby.

Obstacles
Obstacles can be broken down into various types that have an effect on the ball or its flame.

Air
If the ball is left in contact with these types of objects, its flame will be extinguished over time however these objects can propel the ball into an ideal direction. The player can prevent the flame from being blown out by tilting it away from the air flow.

- Fans: The size of this obstacle will indicate the strength of the fan, larger fans can push the ball away and lower the flame's temperature. A high temperature flame can destroy small fans but not industrial sized ones.
- Air Vents: The ball can be pushed in the direction that it faces however the flame can be reduced to Red if encountered.
- Wind Turbines and Wind Mills: These can push the ball back a long distance and blow the flame out.

Water
The majority of these obstacles will immediately douse the flame causing an instant game over. The player should avoid these.

- Puddles: Will lower the temperature of the ball and reduce its flame with prolonged exposure.
-Ice: This will melt when in contact with the ball's flame and the resulting water can extinguish the flame.
- Hoses: Can produce pools and streams of water that will put the flame out.
- Sprinklers: Produces a moving stream of water that the player should avoid.
- Pools: This will extinguish the flame immediately upon collision, these will vary in size.
- Fire Hydrants: Will produce a jet of water for a long period of time if the hydrant is destroyed.

Mineral
Prolonged contact with these can snuff out the flame and slow down the ball's movement. Tilting the world can shift the ball out of these traps. These traps are ranked by the rate they impede the ball's movement starting from low - high.

Dirt, sand, mud, slime, quicksand

Chemical
These obstacles can fuel or extinguish the ball's flame, a logo distinguish these obstacles from destructible objects. Extinguishing effects will be marked by a countdown

- Fire Extinguishers: Fire extinguishers can put the flame out momentarily dependant on its size in relation to the ball.
- Liquid Nitrogen: Will immediately extinguish the ball upon contact.
- Oxygen Tanks: Contact with these will enable the player to have a prolonged flare up for a set amount of time.
- Bicarbonate Soda: This can extinguish the ball upon prolonged contact with the contents of its container.
- Flour: Sacks of flour become explosive upon contact with the ball and can obscure some of the surrounding area from the player's view.

Physical
Physical obstacles can be used to negotiate the ball around other obstacles or to travel further across the world. Unlike other objects, these are inflammable.
- See saw: These react to the ball's position along the see saw's beam and can be used to reach higher ground or as a destructive tool.
- Conveyor Belt: These can be used to transport the ball over unsafe obstacles, reach higher locations or holds destructible objects. Conveyor belts can go in any direction.
- Cannons: This can be used to shoot the ball across the map, the distance and angle of trajectory is random and cannot be controlled by the player. The ball can set off loaded cannons to destroy nearby buildings.
- Catapults: These will fire the ball over a set distance in a straight line.
- Weights: These can extinguish the ball's flames or be used to crush nearby objects and buildings.
- Lifts: Will move any object up or down.

World Construction
The environments of Hot Potato could be manually constructed or via procedural generation. Both methods would provide sufficient game play for the needs of this project however these methods will have an effect on production.

Manual Construction
This method is more time consuming as the design of the level is integral to providing the player with challenging and enjoyable gameplay. The level would be a closed "arena" which has the potential for the player to encounter every object and obstacle possible. To prevent a premature end game, objects would respawn over time allowing the player to continually destroy objects.

Pros:
- Can customise sections of environment for more interesting player experiences
- Opportunities to create varied experience for player
- Gameplay can be varied based on size of level and types of environments
Cons:
- Level design and construction will be a time consuming part of production
- Challenging and enjoyable gameplay dependant on level design

Procedural Generation
An environment created from this method could be a continuous level which would force the player to keep moving the ball in search for more destructible objects. Procedural generation would provide endless gameplay but it does limit the gameplay to "mindless" destruction and avoidance of obstacles.

Pros:
- Level construction done through code
- Continuous game mode suits gameplay
Cons:
- May be difficult to implement
- Object and obstacle placement dependant on code, random results may occur

Scripting

Game Control
- Tilt using keyboard
- Roll Ball

World
- World Bounds

World Construction
- Procedural generation of objects

Ball
- Ball movement

- Collisions
-Identify type of object
- Increase/ Decrease flame
- Score increase

- Move ball

- No of explosions
- Add bonus
- Flare up

- Flame
- Decrease over time
- Reach 0, end game
- Temperature (HP)
- Colour
- Flare up

World Objects
- Collision detection

Destructible Objects
- Collision detection
- Destruction of object
- Replace with destroyed instance if necessary
- Explosion generation
- Movement
- Action/Animate

Obstacles
- Collision detection
- Action (what to do when ball collides with it)

Problems

- No mention of particle systems (Argh, an oversight that must be corrected)

- Scope is fairly large
I may need to reconsider cutting out a lot of the obstacles and fleshies. Fleshies will probably need to be scaled down to something that can be textured differently and zombies and animals will get cut out.

- Control system needs refinement
I need to clarify how the player will play the game and it will be difficult to plan until prototyping demonstrates what will work.

- World Plane
This and the control system will be discussed in a later post. It hadn't occured to me until a good friend pointed it out.

- Collisions
I have yet to consider how the code will identify what sort of explosion/action to take when the ball hits an object. Need to learn some physics, Newton strike me down now! I need to define if the physics in the game will be realistic or cartoony surrealism. Take the case of liquid nitrogen and fire, you'd want the ball to ice up but it won't. Instead the liquid nitrogen will extinguish the ball by reducing the amount of oxygen present. It is explained here in this long video.

- Art style
Where the hell is it? Instant fail.

No comments:

Post a Comment