1 of 17

CPSC 4160/6160

Milestone 1 Presentation

Spicer Pagan

CPSC 4160

2 of 17

Game Title:

Timber Defender

Overview: Timber Defender is about a monkey protects its home tree from waves of lumberjacks by throwing bananas and using power-ups.

Genre:

Timber Defender is a 2D defense-style arcade game with light tower-defense mechanics.

The player experiences the game via two game screens: an overworld map and a defense level screen.

Game Description (1)

2

3 of 17

Game Objectives: ��The monkey must protect its home tree from waves of lumberjacks who are trying to cut it down.

To do this, the player has to throw bananas and other objects to stop the enemies before they reach the tree.

By surviving each wave, the player keeps the forest safe and unlocks new levels on the map to defend.

Game Description (2)

3

4 of 17

Game Objectives: ��Paths on the forest map connect to different defense zones (levels), each representing an area of the forest under attack.��Selecting a zone begins a defense stage, where waves of lumberjacks attempt to reach and cut down the monkey’s home tree.��The majority of the game takes place in these defense levels, where the player must aim and throw bananas to stop incoming enemies, protect the tree, and survive each wave to advance to new areas of the forest.

Game Description (3)

4

5 of 17

Skill Rating:�- 7+ years old��Required Skills:�- Basic aiming and clicking; no complex controls�- Ability to read short on-screen hints�- Quick reaction time for wave defense gameplay��Content Rating:�- Cartoon violence only (throwing bananas)�- No blood, gore, or mature themes��Audience:�- All genders ages 7+�- Casual players who enjoy quick, light 2D arcade or defense games

Game Information

5

6 of 17

Other games:

https://www.crazygames.com/game/bloons-tower-defense

Game References

6

7 of 17

Main character (Monkey)

    • Behavior: Defends the tree by throwing bananas and coconuts at incoming lumberjacks; cannot move but can aim and attack in any direction.

    • Looks: Small brown monkey with expressive eyes and a simple idle animation; raises its arm when throwing.�
    • Technicality: Controlled through a Player class that handles aiming, cooldown timing, and projectile spawning; rotation of the arm or sprite follows mouse position.�
    • Input description: Mouse movement is the aim direction, Left click is throw banana, right click is throw coconut.

Entities - Player Character

7

8 of 17

Enemy (Lumberjacks)

    • Behavior: Walks toward the tree in waves, attempting to chop it down when close; stronger types move faster or take more hits.�
    • Looks: Pixel-style human wearing a red flannel shirt, blue overalls, and beanie; carries an axe or chainsaw depending on type (Not shown).�
    • Technicality: Each lumberjack is an instance of the Enemy class, controlled by the EnemySystem; moves along a set path toward the tree, switches to a “chop” state on contact, and uses simple health and speed variables that scale with wave difficulty.

Entities - Enemies

8

9 of 17

Entities (Banana Bunch, Coconut Bomb, Banana Shield, Golden Banana)�

    • Behavior: Power-ups occasionally fall from the sky during waves; the player must hit them with a banana to activate temporary effects such as faster throws, double shots, shields, or explosive attacks.�
    • Looks: Bright, easily visible pixel icons, triple bananas, golden bananas, banana shields, or coconut bombs, each with a short sparkle animation while falling.�
    • Technicality: Handled by the PowerUp class and spawned through the SpawnerSystem; each power-up has a type, fall speed, and activation method triggered by a projectile collision, applying its effect through flags or timers in the player or tree data.

Entities - Items

9

10 of 17

NPC (The Sun)

    • Behavior: Floats near the top corner of the screen, smiling and when clicked, gives the player helpful hints or encouragement during gameplay.�
    • Looks: Bright yellow circular face with orange spiky outline and simple, kind eyes.�
    • Technicality: Created as a SunNPC class rendered above the background; detects mouse clicks and cycles through preset text messages displayed in a small dialogue box for a few seconds before fading out.

Entities - Non-Player Characters (NPCs)

10

11 of 17

For the current version, the game takes place on a tropical beach zone, where the monkey defends its tree from lumberjacks arriving along the shore.

The setting uses bright sand tones, ocean blues, and palm tree greens to match the warm, cartoon-style color palette.

Future zones, which might not be seen in the scope of this project, such as the jungle and forest, will expand the island as development continues.

Environment

11

12 of 17

  • Stationary Defense: The core gameplay of Timber Defender revolves around stationary defense, where the player controls a monkey who must protect its tree from incoming waves of lumberjacks.�
  • Aiming and Throwing: Players use directional input to aim and press a key (e.g., spacebar or mouse click) to throw bananas or other projectiles at enemies. Accuracy and timing are key to survival as the waves get faster.�
  • Power-Ups: The game features several collectible items that enhance the monkey’s abilities:
    • Banana Bunch: Allows the player to throw 2 bananas at once with slight spread.
    • Coconut Bomb: Explodes on impact, dealing area damage.
    • Banana Shield: Temporarily protects the tree from one hit.
    • Golden Banana: Increases throw speed and score multiplier for a short time.

Game Mechanics (1)

12

13 of 17

  • Defense Zones: Each defense zone has its own layout and background theme, such as a tropical beach, riversides, and logging camps. Some zones feature different enemy paths or environmental hazards like falling branches. For the purpose of this project likely only working on the beach.

  • Enemies: The game features a variety of enemies, including basic lumberjack with axe, lumberjack with chainsaw, etc. These enemies can be defeated with the use of bananas and various power ups.

  • Defense Waves and Time Limit: Each level is made of several timed waves. The player must survive until the timer ends to clear the area and unlock the next zone.

Game Mechanics (2)

13

14 of 17

Modules:��GameManager controls all systems (Player, Enemy, PowerUp, Collision, Effects, UI, NPC).�Each system has its own update loop and handles one major function of gameplay.��Levels:��Currently one zone; the Beach Defense stage.�Future zones (forest, jungle) will use the same system structure with new visuals.��Effects:��Leaf bursts, splinters, and hit flashes on impact.�Potentially screen shake for heavy hits, possibly rain for some scenes.

Technical Description (1)

14

15 of 17

Collision Detection:��Grid-based checks (64px cells).�Projectiles use circular hit zones�Enemies and tree use sprite rect collisions��Physics:��Bananas use parabolic arcs with gravity = 1200 px/s^2; coconuts heavier with small splash radius.��Algorithms:��Fixed 60 FPS update loop for consistent timing.�Wave scaling: enemy speed +6% and HP +8% per round.�Object pooling for projectiles to reduce lag.

Technical Description (2)

15

16 of 17

Software Architecture

16

GameManager.cs controls update order:

Input → Player → Enemy → PowerUp → Collision → Effects → UI → NPC

17 of 17

10/15 – 10/18:��Create base project & main loop (GameManager, window, clock).�Add InputSystem and test throwing with placeholder sprites.��10/19 – 10/22:��Implement EnemySystem with one basic lumberjack type.�Basic CollisionSystem for bananas hitting enemies.�Add simple Tree HP counter.��10/23 – 10/26:��Add HUD (tree HP + timer).�Introduce one Power-Up (Golden Banana = faster throw).�Light EffectSystem (leaf burst or hit flash only).��10/27 – 10/30:��Tune difficulty & add short intro screen.�Small polish (sound, background image, text).�Prepare short gameplay demo for class.

Timeline

17