Monopoly (Assignment)

  • studios logo

A 2D Monopoly-style board game inspired by 'Bankroll' from the Plato platform. Designed for a 2-player local multiplayer experience, this project features dice rolls, property acquisition, rent mechanics, chance events, jail system, and a full user interface with live transaction logs.

Learned and implemented automated Unity WebGL builds using GitHub Actions + GameCI, enabling continuous integration and deployment to GitHub Pages.

Project Summary

This project was developed for the Unity Game Developer Assignment. It replicates core Monopoly-style gameplay mechanics with a clean UI and object-oriented structure, entirely in Unity using C#.

🧱 Game Architecture Overview

This Monopoly-style board game is built in Unity 6 using C#, following clean architecture principles with design patterns like Singleton and Observer for maintainability and scalability.

📂 Main Systems Overview

  1. 1. Game Manager (Singleton)
    • • Controls overall game flow: turn management, dice rolling, player switching.
    • • Emits game events using the Observer pattern (OnTurnChanged, OnDiceRolled).
    • • Handles rules such as jail turns and end of turn logic.
  2. 2. Player
    • • Movement logic using IEnumerator to animate player steps.
    • • Money adjustments (rent, rewards, buying).
    • • Jail state and turns.
    • • Overlapping logic when two players are on the same tile.
    • • Owns a list of purchased properties.
  3. 3. Tile System
    • Tile.cs holds: tile type, owner ID, cost, rent.
    • • Tile types include: Property, Start, Jail, GoToJail, Chance, etc.
    • TileType enum defines the board logic.
  4. 4. UI Manager (Singleton)
    • • Reacts to game events (observer) and updates current turn indicators, player info (money, property count), transaction log.
    • • Manages Buy/Pass popup and property detail panel.
    • • Handles user input for buying/passing properties.
  5. 5. Dice System
    • • Animates and rolls dice via coroutine.
    • • Communicates result back to GameManager.
  6. 6. Event System (Observer Pattern)
    • • Allows decoupled communication between systems.
    • • UI listens to GameManager events to update turn UI, logs, and panels.

🧩 Design Patterns Used

  • • Singleton => GameManager, UIManager
  • • Observer => OnTurnChanged, OnDiceRolled
  • • Coroutine => Player movements & animations

⚙️ Key Features Implemented

  • • Turn-based gameplay with 2 players
  • • Buying and owning properties
  • • Paying rent (with jail exceptions)
  • • Jail system with 3 missed turns
  • • Chance tile with probabilistic reward/penalty
  • • Passing "Start" gives $200
  • • UI panels for property and player info
  • • Game log of actions

🎮 Playable Link: Click here