Skip to content

arianasadeghi/RPG_GAME

Repository files navigation

Modular Grid-Based RPG Game

Key Features

  • Advanced OOP Architecture: Built using Inheritance, Abstract Classes, and Polymorphism to structure characters, enemies, and abilities.
  • Design Patterns: Implements Singleton (for game state), Factory (for character/enemy creation), and Builder patterns for scalable and clean entity management.
  • Graphical User Interface (GUI): Features an interactive desktop interface built with Java Swing for grid navigation, character selection, and real-time turn-based combat.
  • Data Persistence: Integrates JSON serialization and deserialization (org.json) to securely store, read, and maintain player credentials, multi-character accounts, and gameplay history.
  • Algorithmic Logic & Robustness: Uses randomized algorithms for procedural map generation (placing enemies, portals, and sanctuaries) and ensures stability through custom exception handling (e.g., ImpossibleMove).

Technologies & Tools

  • Language: Java
  • UI Framework: Java Swing
  • Data Handling: org.json library
  • Version Control: Git & GitHub

How to Run Locally

  1. Clone the repository:
  1. Open the project in IntelliJ IDEA.

  2. Ensure the json-20240303.jar (located in the lib/ directory) is added to your project structure (File -> Project Structure -> Modules -> Dependencies).

  3. Run the LoginPage.java file to start the game using the interface.

About

A modular Java turn-based RPG game using OOP principles, Design Patterns, and Swing GUI.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages