Anduin is a 2D adventure/RPG game developed in Java. This project was created as part of a university curriculum and implements a custom game engine based on the Model-View-Controller (MVC) architecture and screen management.
The project is built upon the LibGDX framework and follows its standard project skeleton (separating platform-specific logic from the core game logic).
The game integrates several classic RPG mechanics:
- Movement System: Navigation on Tiled Maps.
- Dialog System: Interaction with NPCs (Baker, Old Man) using dialog trees.
- Inventory: Item management (Potions, Cookies, etc.) and consumption.
- State Management: Handling of different game states (Menus, Gameplay, Pause, Command Console).
- Audio: Dynamic management of background music and sound effects.
This project demonstrates the use of several key technologies and concepts:
- Language: Java 8
- Build Automation: Gradle (Dependency management and custom tasks)
- Graphics Framework: LibGDX (via LWJGL3 backend)
- Level Design: Tiled Map Editor (.tmx, .world files)
- Code Quality: Qodana integration for static analysis
- Automated Asset Management: Utilization of a custom Gradle task
generateAssetListto automatically index resources during the build process. - Modular Architecture: Clear separation between the game logic (
coremodule) and the desktop launcher (lwjgl3module), typical of LibGDX projects.
- Java JDK 8 or higher
- Git
This project uses the Gradle Wrapper, so you do not need to install Gradle manually.
-
Clone the repository:
git clone https://github.com/loicck/anduin.git cd anduin -
Launch the game (Desktop):
- Windows:
gradlew.bat lwjgl3:run
- Linux / macOS:
./gradlew lwjgl3:run
- Windows:
- W / A / S / D or Arrow Keys: Move
- E: Interact / Talk
- I: Open Inventory
- Esc: Pause Menu / Back
Assets:
- Pixel Art Top Down (Basic) - Cainos
Audio resources used in this project are from third-party artists, either royalty-free or licensed under Creative Commons.
Music:
- Cruising - Dosi & Aisake (NCS Release)
- Apart - sumu (NCS Release)
- Deeper Meaning - Liborio Conti
- Breezy - Filo Starquez & tubebackr
- Look Inside & Tulips - Snoozy Beats
- Escape - Land of Fire
