Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Chirping Unicorns 🦄

A Story-Driven 2D Action-Adventure Game

Status Language Engine

📖 Project Overview

Chirping Unicorns is a 2D action-adventure game developed as a capstone project for the Integrated Computer Science (ICS 499) program at Metropolitan State University.

The game follows the journey of Archibald, a young boy with no formal skills or training, who embarks on a perilous quest of revenge after a fearsome dragon destroys his family's farm. Players must navigate through a variety of environments, engage in dialogue, and make critical choices that determine the outcome of the story and the fate of the world of Moorhollow.

✨ Key Features

  • Dynamic Narrative: A complex branching storyline where player choices influence the "path" of the hero, villain, or coward.
  • Blurb System: Unique narrative delivery utilizing three types of "Blurbs":
    • No-Sided: Environmental narration and exposition.
    • One-Sided: Inner monologues and character-specific internal thoughts.
    • Two-Sided: Interactive dialogue between two characters.
  • Active Rendering Engine: Implemented a custom active rendering loop to ensure precise frame rate control (30 FPS) and eliminate screen tearing issues common in standard Swing implementations.
  • State Management: A robust state machine architecture handles transitions between the Main Menu, Pause Menu, Inventory, and various "Game States" (Combat, Exploration, Conversation).
  • Persistence System: Full implementation of a Save/Load/Delete system with dedicated save slots to preserve player progress.
  • Customizable Experience: In-game settings for music, sound effects, and resolution scaling.

🏗️ Architecture & Technical Highlights

This project was built using a Layered Architecture to ensure modularity and maintainability:

  1. Outer Layer (Infrastructure): Handles global systems like resource loading (images/audio), preference management, and the primary game loop.
  2. Inner Layer (Game Logic): Manages the specific logic of the current scene, including entity updates, collision detection, and state-specific rendering.

Key Technical Decisions:

  • Active Rendering: We chose active rendering over passive rendering to gain full control over the Graphics object lifecycle, ensuring that UI updates are immediate and frame rates remain consistent.
  • Abstract GameState: By utilizing an abstract GameState class, we were able to decouple the game's core engine from specific content (levels/cutscenes), making it easy to add new "states" without modifying the primary framework.

🛠️ Technologies Used

  • Language: Java
  • Graphics Library: Java Swing & AWT
  • Audio Handling: Java Sound API
  • Architecture: Layered Architecture, State Pattern, Observer Pattern (for Input handling).

🎮 How to Run

  1. Clone the repository:
    git clone https://github.com/verna-stack/chirping-unicorns.git
  2. Navigate to the project directory:
    cd chirping-unicorns
  3. Compile and Run:
    • Ensure you have JDK 8 or higher installed.
    • Run the GameFramework class (or use your IDE's "Run" button).

📁 Project Structure

src/
├── com/cu/ag/
|           ├── framework/       # Core framework (GameClock, GamePanel, Engine)
|           ├── game/            # Entry point (GameFramework.java)
|           ├── game_objects/    # Items used by players in the game
|           ├── interfaces/     # Components of the user interface
|           ├── screens/         # Menus end rendered environments
|           └── utilities/       # Input handling and helper classes
├── preferences/                 # Specific game scenes (DemoState, ConversationState, etc.)
├── resources/                   # Images, Sounds, and Data files
└── saves/                       # Reference points (player_data_slot-1)

👥 The Team

  • Hanna Prussog - UI Design & Lead Narrative
  • Khang Tran - Systems Engineering
  • Daniel Duvernais - Core Framework
  • Waathiq Juma - Logic Implementation
  • Blouneu Yang - Mechanics & Systems
  • Thomas Carney - Graphics & Integration

This project was completed as part of the ICS 499 Capstone Course at Metropolitan State University.

About

2D action-adventure game developed by Team Chirping Unicorns

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages