1 of 19

CPSC 4160/6160: Milestone 1 Presentation�

Sarah Tetterton

CPSC 4160

2 of 19

Game description

Name title:

Space Cargo Scramble

Genre:

Space cargo Scramble is a top-down action game

The player avoids enemies and navigates a small area in a given stage for a given amount of time. Meanwhile, they are tasked with collecting 3 cargo boxes.When the time is up, the player leaves the level by going to the escape pod.

3 of 19

Game description

Game Objectives:

The cargo ship needs to deliver valuable cargo across the galaxy. As a consequence, package pirates are now trying to take the cargo. Can you help the ship collect the missing cargo so it can be delivered?

4 of 19

Game information

Skill rating: 10+ year-olds.

Skill requirements: The player needs to be able to use a keyboard with both hands and the ability to read instructions.

Audience: Gender and mostly age neutral audience. The game is specifically targeted towards people who are busy and want a short, simple game to play during breaks.

5 of 19

References and inspirations

Website:

https://www.coolmathgames.com/

6 of 19

7 of 19

Color palette with Sample environment

8 of 19

Entities – Player character

  1. Cargo ship
    1. Moves in the direction of your input.
    2. Blue, 16-bit spaceship.
    3. The player will be spawned at different points in each level, and the sprite will rotate to point to the movement direction.
    4. WASD to move in the cardinal directions, press two of these keys at once to go diagonal, and O or P to dash left or right.

9 of 19

Entities - Enemies

  1. Basic Ship
    1. Chases the player at a given speed.
    2. Red 16 bit ship of a variable size.
    3. This enemy will be spawned at a given location with a given size and speed. It will also point in the direction of its movements.

2. Sluggish ship

  1. Chases the player. Starts slow, but gets faster over time.

2. Cyan 16 bit ship with long wings.

3. This enemy will be spawned at a given location with a given size, speed and acceleration rate. It will also point in the direction of its movements.

3. Asteroid

  1. Moves up and down at a set pace. Acts as an instant kill.
  2. 16 bit asteroid.
  3. This enemy will have a variable bounds, speed and size depending on the level.

10 of 19

Entities - Enemies

  1. Phaser Ship
    1. Chases the player at a given speed and goes through walls.
    2. green 16 bit ship of a variable size.
    3. This enemy will be spawned at a given location with a given size and speed. It will also point in the direction of its movements.

11 of 19

Entities - Items

  1. Wall
    1. Prevents
    2. Looks like a variety of gray scifi walls
    3. Variable size and spawn point

2. Left-Right portal

1. Spawns at the left side and teleports the player and enemies to the opposite side of the screen.

2. 16 Bit cyan light portal.

3. Variable size and spawn point.

3. Right - Left portal

  1. Spawns at the left side and teleports the player and enemies to the opposite side of the screen.
  2. 16 Bit orange Light portal.
  3. Variable size and spawn point.

12 of 19

Entities – Non-Player Characters

  1. Escape pod
    1. The player finishes a level by going to the pod.
    2. 16-bit circular metal escape pod

    • The escape pod will not move, but it will be spawned in a different area for each level.

13 of 19

Entities – Non-Player Characters

  1. Cargo
    1. The player activates the escape pod after the time limit if 3 of them are collected
    2. 16-bit orange box

    • The cargo will not move, but it will be spawned in a different area for each level.

14 of 19

Game mechanics

  • Evading: The player cannot shoot or otherwise attack enemies. Instead, the player will have to avoid the enemies.

  • 8-way movement: The cargo ship will be able to move in the cardinal and diagonal directions.

  • Conditional HP: The player does not have designated health points. Instead, the player will lose under the following conditions:
    • Shield broken: If an enemy is in contact with the player for enough time (3-5 seconds) .
    • Asteroid: If the player touches an asteroid, then they will lose instantly.

15 of 19

Game mechanics

  • Level bounds: Both the player and enemies cannot leave the window sized bounds of the level.

  • Progression: Everytime the player wins a level, they have the option to progress to the next one or go back to the main menu.

  • Dashing: Every 5 seconds, the player will have the opportunity to perform a dash.

  • Countdown and Escape: Every level has a set time the player has to survive until the escape pod shows up. When the pod appears, they player wins when they go to it.

  • Cargo collecting: There are 3 boxes that need to be collected every level. If they are not, the player fails.

16 of 19

Player’s mechanics

The mechanics of The cargo ship are:

  • 8-way flying
  • Dashing left or right
  • Interacting with items
    • Going to the next level and collecting cargo

17 of 19

Modules

  1. Current modules in development:
    1. Menu.py: handles the main menu and passes the menu functions to main.
    2. Main.py: gets the game running.
    3. GameHandler.py: Handles and runs the core gameplay loop
    4. Movement.py: handles the player’s movement and controls
      1. Player movement is mostly going to be a static speed. However, the player will slightly accelerate on turns and diagonals.
    5. Levels.py: Handles, constructs and passes the level design (item placement, level time, types and amount of enemies) into the game loop.
    6. Enemy.py: allows for the construction of the enemies
    7. Obstacle.py: allows for the construction of items.
  2. Module(s) that have not been started yet
    • Save.py: handles the saving and reloading of game data.

18 of 19

Software architecture

19 of 19

Technical descriptions

  • Obstacle.py and Enemy.py both act as constructors for their respective item. Levels.py is then used to to call these constructors and then determine where and how they will be used in a given level
  • Because there are no health points, collision detection is very simple.
  • Levels.py passes level data to the menu so that they can easily be selected. When a player chooses a level, Levels.py will then construct the given level and pass it to GameHandler.py. When a level is completed, the player has the option to go to the next level or menu. their choice will be passed to meny.py which will then either show the title screen or automatically select the next level.
  • There is a specific algorithm to determine the speed of the sluggish ship:
    • It checks if the player is moving to start following them
    • As it follows the player, it gradually increases in speed until it is slightly faster than the player