- 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).
- Language: Java
- UI Framework: Java Swing
- Data Handling: org.json library
- Version Control: Git & GitHub
- Clone the repository:
-
Open the project in IntelliJ IDEA.
-
Ensure the json-20240303.jar (located in the lib/ directory) is added to your project structure (File -> Project Structure -> Modules -> Dependencies).
-
Run the LoginPage.java file to start the game using the interface.