Wednesday, February 2, 2011

Hot Potato v.0.8

This post is just a record of a version of Hot Potato that was going to happen during the break but didn't eventuate. I rewrote the previous doc to suit the proposed two-person project.

This Hot Potato became a lot simpler and (probably) less fun. It was an exercise in getting something done. Yes, I'm aware this design has problems and I don't care much to fix them since this version is no longer happening.

Hot Potato

Genre
Destructive Platformer

Platform
Standalone application

Engine
Unity 3

Premise
Keep the ball (Hot Potato) airborne for as long as possible.

Project Aim
To produce a demo level of the game to showcase how the game's system works.

Gameplay
The player keeps the ball airborne by tilting the world and guiding the ball to collide with objects. Collisions and the resultant explosions aid with the ball's upward propulsion. The ball is propelled when it collides with objects but will gain an additional boost when it explodes objects.

The player can only control the world by tilting it left or right, this could be done by keyboard or via on screen buttons. The player will need to calculate the world and ball's positions to optimise their play.

The ball's movement is affected by its temperature and the angle of the world. The gravity affecting the ball will shift accordingly to the angle of the world, objects will not move with these forces unless under certain conditions.





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 how the ball moves and how destructive it can be.

Points are rewarded for the number of destroyed objects and explosions. Additional points can be earned by chaining destruction and explosions and the duration of play.
The game ends when the ball is "dropped" or when its temperature reaches 0. The ball can be dropped if the player is unable to keep it airborne and it drops off screen.

Controls
The world tilt can be controlled via the keyboard, the amount of tilt is dependent on the duration of the key press.

GUI
The GUI for this demonstration level could be the score, additions could be a timer and a directional arrow that indicated the ball's upwards direction.



Level Construction
The demo level could be built in 2 ways, manual placement or procedural placement (script). Both methods would provide sufficient game play for the needs of this project however these methods will have an effect on production.

Manual Placement
This method requires a detailed level design that provides enjoyable and challenging gameplay. It will also be the more time consuming building method.

Procedural Placement
The scripting and debugging involved with this method has the potential to be fairly time consuming however it would provide less work when it came to building.

Ball's Properties
Temperature: Degrades over time and affects the majority of the ball's properties. A high temperature ball has less weight and more mobility than a low temperature ball. The temperature can also affect how destructive and explosive the ball is. It is indicated by colour.

Flame: Degrades over time and if it is extinguished, the level will end. The flame's size indicates the destruction radius of the ball.

Weight: Affects the ball's movement as it travels and how far it can be propelled by explosions. Also affects ball's bounce and how much force it applies to an object.

Explosive Power: Determines how much power to multiply collision based explosions.

Destruction
The ball can destroy objects by either crushing, burning or exploding them. Destroying objects will add fuel to the flame while shrapnel can fly and damage other objects. Points are rewarded for how many objects are destroyed and additional points can be rewarded if explosions occur during the destruction.

Explosions
Explosions occur when the ball collides with explosive objects or randomly during destruction chains. Explosions will fuel the ball's flame for longer and can create or multiply a destruction chain by burning or smashing other objects.

Depending on 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 level or reach more objects.

Dropping the Ball
The ball is dropped when its temperature reaches 0 or when it falls off screen. There are options for the player to be alerted visually or audibly when they are in danger of dropping the ball. Possible indicators could include a timer, this would allow the player time to salvage the situation.




Art Assets
The art in the game could be realistic or cartoony, this would be dependent on the realism of the physics involved. Realistic reactions would be more engaging if the art assets matched whereas exaggerated explosions would benefit from a less realistic style.

Objects could also be identified by colour, this would make it easier for the player to identify the most explosive objects but also it will save time in asset production as assets could be reused.

Scripting
The physics system is integral to the production of this game as the gameplay is dependent on how the ball will interact with the world. Below is a possible breakdown of the scripts needed for this demo.

Game Control
- Tilt using keyboard

World Bounds
- Collision detection (Detection of when the ball drops off screen)
- Movement with ball (Needs to shift in relation to ball)

Ball
- Collisions

- Temperature
- Movement
- Flame control (Has an effect on flame's destructive ability)
- Weight
- Game Over (If temperature reaches 0, game will end)

- Flame
- Size
- Destruction (Is affected by temperature)
- Radius
- Power

Objects
- Collision detection
- Destruction of object
- Explosion chance

- Placement

Menu Layout
Main Menu
Play
Options

Problems
- Small project scope = less fun gameplay/world
The prototype doesn't really indicate if this is a casual game experience where you can just play and always cause an explosion or a frantic twitch game where you're trying to explode stuff by making instant calculations.
- Objects undefined
No object list
- Lack of GUI
A directional arrow would help the player to know which way the ball was travelling and which direction is "up".
- Physics strange and potentially unrealistic
Changing weight of the ball could be problematic and doesn't make sense if the prototype uses realistic physics.
- Unclear level structure and goals
If the goal of the game is to keep airborne, the level construction/design and gameplay should reflect this. Therefore does the player keep moving in an endless environment or avoid hitting walls in a defined space?
- World Bound detection is unclear
How will the game and player know that they have "died"? Will the camera follow the player down the "pit"? Visible boundaries would be helpful.
- Art style is still undefined
This prototype has yet to mention if the game is in 2D or 3D however the use of Unity does imply 3D art.

No comments:

Post a Comment