Sunday, October 18, 2015

"Roll a Ball" Game Using Unity by Zach Daniels

  • Online Version: Roll A Ball (Not Supported in Google Chrome)
  • Game Goal: Try to collect as many cubes as possible in the allotted time

  • Game Mechanics:
    1. Collect cubes by colliding with them: earn 1 point.
    2. Jump into opponents: the opponent with the lower height loses 1 point.
    3. Running into walls costs points: lose 1 point.
    4. The game concludes when
      1. all 12 cubes are collected
      2. or
      3. the time runs out (after two minutes).
  • Players:
    • Player 1 is green, and all text/notifications associated with player 1 is green.
    • Player 2 is blue, and all text/notifications associated with player 2 is blue.
    • Player 3 is yellow, and all text/notifications associated with player 3 is yellow
  • Game Controls:
    • On-screen:
      • Player limit buttons:
        • One-Player: only Player 1 is active.
        • Two-Players: only Player 1 and Player 2 are active.
        • Three-Players: Players 1, 2, and 3 are active.
      • Start/Restart
        • Start: Allows players to move and begins timer countdown
        • Reset: Randomly places cubes, resets players to initial positions, resets clock and scores, clears
        • notifications
    • Off-screen:
      • Player 1:
        • Move with arrow keys
        • Jump with right-shift key
      • Player 2:
        • Move with w, a, s, and d keys
        • Jump with leftXshift key
      • Player 3:
        • Move with mouse position
        • Jump with b key
  • Features:
  • * denotes capability added beyond requirements
    • Visually appealing graphics
    • Ability to move character(s) and make character(s) jump
      • Physically realistic movement and jumps
    • Collision detection between players, walls, and cubes
      • Player-player: player with lower altitude loses one point
      • Player-wall: player loses one point
      • Player-cube: player gains one point, cube is deactivated
    • Single-* and multiplayer (up to 3 players at once*)
      • Dynamically visible (hidden during game play) buttons* for selecting mode
    • Random initial placement of cubes*
    • Ability to start and reset game o Single button* toggles start/reset
    • Count-down timer
    • Rich notifications
      • Persistent scores visible for each active player
      • Notification and score colors correspond to player of interest*
      • Notifications disappear after set number of seconds*
      • Notifications offer information about collisions, cube captures, time remaining, and wins*
    • Denote winning player/ties when all cubes are collected or time runs out
    • Denote winner of collisions
    • Denote wall collisions
    • Denote cube captures
    • Denote when 5 seconds remain
    • Color corresponds to player of interest
    • Disappear after set number of seconds
  • Multiplayer
    • Modes for 1-player, 2-player, and 3-player games
    • Various control schemes: keyboard vs mouse
      • Analysis: The keyboard is much easier to use. It is hard to predict how moving the mouse and where the mouse is placed on the screen will affect the speed and direction of the player s movement. Likewise, the keyboard controls have axis values in the range -1 to 1 which are helpful from a programming perspective in that it makes behavior more predictable. Meanwhile, using mouse movements do not have the same guaranteed range of -1 to 1 and furthermore the sensitivity is not as linear as with holding down a key; thus, when coding the forces to apply to a character s movement based on input, the forces derived from mouse movement needed to be manually calibrated to make the mouse and keyboard control-driven movements roughly equivalent. I elected to use the keyboard for both players 1 and 2, and I chose to use mouse controls for player 3. From a usability perspective: this is for two reasons. First, as mentioned, the keyboard-based controls are more stable and predictable and thus should be preferred. Second, if a user has a laptop, then the trackpad and arrow keys might be too close for comfortable simultaneous use by two players, so it makes more sense to use the wasd-keys and arrow-keys which are further apart. When all three sets of controls are used (i.e. all three players are active), usability becomes a big issue because three people are competing for limited space on what might amount to a single keyboard and trackpad on a laptop or single keyboard and external mouse. A good solution for this would be to allow multiple input sources (e.g. multiple keyboards, joysticks, etc.) or to convert to a networked version of the game where each player can use his or her own computer. However, due to limited time, this was not feasible to implement.

No comments:

Post a Comment