Skip to content

JAC-CS-Game-Programming-F25/project-bigoldtrunks

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

372 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎮 MystiaJungle

📌 Overview

The game draws strong inspiration from the survival-adventure spirit of Jumanji storyline, with the where characters are trapped into a dangerous, unpredictable game world filled with escalating challenges. Similarly, this game places the player inside a magical game world where they get stuck into. it is a big jungle realm they must escape by overcoming trials, defeating creatures. To return to reality, the player must conquer different regions (Scorching wilds - hot region; Frozen Platau - cold region) to find the sacred key, which is the only way to unlock the final gate

Requirements

Control scheme:

  • Player moves using W/A/S/D keys
  • Player hit spaceBar to start a Sword swinging
  • If player can gain ability as they progress deeper in the region and collect the crystal and fire-torch item; hit J (first ability) or K (second ability)
  • Player starts playing after the FallingDownToEarthState, meaning they just get pulled to this mysterial game world.
  • Player has 3-lives, meaning they can be dead and revive, the FallingDownToEarthState comes in to play again.
  • If Player dead and have no lives left, they lose and game over.
  • Player can discover the map to find our the mini boss to get the key so he can progress to another regions, and finally meet the big boss.
  • Player escape the game world once they are holding the key enter the escape gate.
  • Player can kill creatures and big boss with his abilities.
  • His initial ability can be good for easy creatures, but can be not efficient or not sufficient for later regions and the big boss as it can take long or harder. Futher development:
  • Since we have the time limit, if the time runs out and he still unable to get the key they he also lose. (nice-to-have)
  • Player can break the barrier, remove object like tree etc, to make his way faster to find the key.

🔁 Core Gameplay Loop and requirements

  1. Explore an open map with different themed regions: 🔥 Scorching Wilds (Hot Region); ❄ Frozen Plateau (Cold Region)
  2. Fight enemies with AI behaviors
  3. Collect items (optional) and optionally unlock abilities
  4. Defeat mini-bosses to open new regions
  5. Face the final boss and collect the key to finish the game

Class Diagram

See full diagram

Flowchart Flowchart Flowchart Flowchart Flowchart Flowchart

Game Entities Summary

Player

Managed with state machine system:

  • IdleState
  • WalkingState
  • SwordSwingState
  • PerformFireFlameState
  • PerformFrozenBlastState
  • FallingDownToEartthState
  • DeadState

👾 Creatures AI Design

  • Patrol logic: creatures movement with a certain patern like left, right, up, down.
  • Chasing Logic: If player come close within certain radius, creatures start to chase player, the speed increase.
  • Attack Logic: when get close to player, they start to attack player
  • UI look: they move left and right, not all direction

Creature Escalation (Easy -> Hard)

  • Early creatures small, easy - Spider, Pinkbat

  • Mid creature: more in quantity, a bit stronger, more variety: bomberplant in addition to spider, pinkbat
    Bomberplant has different behavior, they stay still. But it explodes the player if player accidentially step on thems.

  • Final creature player faces with WaredenBear - the final boss, keeper of the Escape:

  • Higher HP
  • Larger hitbox
  • Stronger damage
  • Maybe slower movement

🦇 Creature State Specs

Disclaimer: Due to time constrain, it is more likely that this version only includes 4-group of creatures only with different behaviors or strength: Spider, BomberPlant, Skeleton, WardenBear. The other probably don't include at this point of this version.

Spider & Pinkbat (basic enemies)

  • IdleState
  • PatrolState
  • ChasingState
  • DyingState

Phantom (Mid-tier enemy) (Postponed-Later version)

  • IdleState
  • PatrolState
  • ChasingState (faster movement)
  • AttackingState
  • HurtState
  • DyingState

BomberPlant (Special behavior - stationary) (Probably later version)

  • AlertState (player nearby, priming to explode)
  • ExplodingState (attack animation + AOE damage)
  • DyingState (post-explosion).

Skeleton & WardenBear

  • IdleState
  • ChasingState
  • AttackingState
  • HurtState
  • DyingState

🧵 Wireframes

Title Screen

Title Screen

Play State - Summer Realm

Summer Realm

Play State - Winter Realm

Winter Realm

Victory State

Victory

Game Over State

Game Over

🎨 Assets

Sprites

Most of sprites included Purchase and Free Version are used from these link listed below:

🖼️ Images

All wireframe images are stored in the readme_images/ folder and are used for UI layout planning. Additional in-game backgrounds and sprites will be stored under assets/images/ during production.

Actual Implementation

TitleScreen Summer Region Winter Region

✏️ Fonts

The game uses the default in-engine font for UI, menus, and game text. Style for title screen, Pirata One font from google will be used

MystiaJungle

FontSample

🔊 Sounds

Our game uses a combination of music tracks and sound effects to support immersion, feedback, and clarity in both exploration and combat. All sounds are organized into two folders: music/ and effects/.

🎵 Music

Background music for game states and environments:

🔊 Effects

Short SFX used for actions, combat, items, and feedback:

📚 References

This project is developed using ideas, logic structures, and engine components adapted from the teaching materials provided in class Game Programming by instructor VikramSingh

General Rereference

General Architecture:

  • State Machine, Factory Pattern, OOP Structures, and Game Loop Architecture. Provided in course framework by [Instructor Name], [Institution Name].

Narrative Inspiration:

  • Part of thematic concept of this game is inspired by: The Jumanji “trapped in a game world” storyline. Region-based progression Creature difficulty escalation, collecting keys to escape the world.

Development Team

About

jac-cs-game-programming-f25-project-project created by GitHub Classroom

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 99.8%
  • HTML 0.2%