Dune is a turn-based fighting game inspired by classics like early Final Fantasy, Chrono Trigger, and Pokémon. The theme draws from Frank Herbert's Dune, while the characters and artwork are a frankenstein of Dota 2, Cyberpunk 2077, and other sources.
This project served as a hands-on way to practice and showcase foundation Object-Oriented Programming concepts, using Scala as the language, and Model-View-Controller (MVC) as the design pattern.
- SBT: Version 1.8.0+
- JDK: Version 11 (highly recommended: Liberica Full JDK 11 LTS, which includes JavaFX 16)
- JavaFX: Version 16
-
Clone the repository:
git clone git@github.com:amadzai/dune-game-oop.git
or, if using HTTPS:
https://github.com/amadzai/dune-game-oop.git
-
Navigate to the project directory:
cd dune-game-oop -
Build the project:
sbt compile
or, if using Maven:
mvn compile
-
Run the project:
sbt run
or, if using Maven:
mvn exec:java
- After running, use the Main Menu to navigate to either the Battle, or the Tutorial to learn more about Dune.
- Each player is randomly generated an army of 3 Heroes, each with their own Hero Type, as seen here in the Tutorial.
- When in Battle, attack or debuff the opponent, buff your own Hero, or swap Heroes to have a higher Type Effectiveness.
- Defeat all 3 of the opponent's Heroes to be victorious. Return to the Main Menu to begin a new battle.
- When I sbt run, I encounter a missing library error, with an exception in thread "JavaFX Application Thread".
- This is an issue when downloading and installing an LTS release of JDK (11 in this case). These versions may not have the necessary JavaFX libraries installed. Either install from the recommended JDK link above, or manually add the missing libraries into your JDK bin folder. (Possible missing libraries: glib-lite.dll, gstreamer-lite.dll, jfxmedia.dll, fxplugins.dll)
- Why can't I expand the game window into fullscreen?
- The current version of the project has not implemented dynamic window sizes as well as fullscreen, will be looking to add this in the future :).



