Skip to content

Latest commit

ย 

History

History
125 lines (86 loc) ยท 3.26 KB

File metadata and controls

125 lines (86 loc) ยท 3.26 KB

๐Ÿš๏ธ Abandoned Asylum

Java Console Text Adventure Game ๐ŸŽฎ

A modular Java console-based text adventure game built with a strong focus on
โœจ clean architecture, โœจ readability, and โœจ iterative refactoring.

This project explores how ambiguous ideas (story + gameplay) can be translated into
structured, maintainable systems through code.


โœจ Highlights

โœ… Modular architecture with clear separation of concerns
โœ… Extensible branching logic for easy feature expansion
โœ… Centralized state management (player progress, inventory, decisions)
โœ… Built through multiple refactor cycles to improve maintainability
โœ… Console-based but designed with scalability in mind


๐Ÿ› ๏ธ Tech Stack

  • โ˜• Java (console application)
  • ๐Ÿงฑ Object-Oriented Programming (OOP)
  • ๐Ÿงฉ Enums & Classes for game state and logic
  • ๐ŸŒฟ Git & GitHub for version control

๐ŸŽฏ Project Goals

This project was built to practice and demonstrate:

  • โœ๏ธ Writing clean, readable Java code
  • ๐Ÿง  Breaking down ambiguous requirements into structured logic
  • ๐Ÿ”„ Improving design through iterative refactoring
  • ๐Ÿ—๏ธ Designing systems that are easy to extend without rewriting core logic

๐Ÿงฉ Architecture Overview

The codebase is organized around a few core responsibilities:

๐Ÿ•น๏ธ Game Manager / Main Loop

  • Controls the game lifecycle
  • Manages scene transitions and player progression

๐Ÿ“– Scenes / Story Modules

  • Each scene encapsulates:
    • narrative text
    • player choices
    • the next game state
  • Designed so new scenes can be added independently

โŒจ๏ธ Interaction & Input Handling

  • Centralized input validation and prompts
  • Keeps scene logic clean and focused

๐ŸŽ’ State & Models

  • Player state
  • Inventory and items
  • Decision flags that influence outcomes

โžก๏ธ This separation made it possible to:

  • add new story branches with minimal changes
  • refactor interaction logic once and improve the entire game experience

๐Ÿš€ Getting Started

โœ… Prerequisites

  • โ˜• Java 11+ (or 17+, depending on setup)
  • ๐Ÿ’ป Any IDE (IntelliJ recommended)

โ–ถ๏ธ Run Locally

1. Clone the repository:

git clone https://github.com/NYClifewithNyx/abandonedAsylum.git cd abandonedAsylum

2. Run the application

  • In IntelliJ:

    • Open the project
    • Locate the main entry class
    • Click Run
  • Or via terminal (example): javac -d out src/**/*.java java -cp out Main

๐Ÿ”ง If your entry class name or package differs, update the command accordingly.

๐ŸŽฎ Gameplay

  • ๐Ÿ“œ Read narrative prompts in the console
  • ๐Ÿ”ข Make choices using keyboard input
  • ๐Ÿง  Decisions affect:
    • story progression
    • available items
    • future outcomes

๐Ÿ—บ๏ธ Roadmap (Planned Improvements)

๐Ÿงฉ Add more scenes and branching paths
๐Ÿ’พ Save / Load game state
๐Ÿ›ก๏ธ More robust input validation
๐Ÿงช Basic unit tests for state transitions

๐Ÿ’ก Why This Project Matters

This project reflects my approach to engineering:

  • ๐Ÿ Start with a working MVP
  • ๐Ÿ”„ Improve structure through refactoring
  • ๐Ÿงผ Keep code readable and maintainable
  • ๐ŸŒฑ Design systems that grow gracefully over time

๐Ÿ“„ License

This project is shared for learning and demonstration purposes.