Table of Contents
Besieged! is a cooperative, real-time multiplayer tower defense game inspired by Viking and Norse mythology, supporting both singleplayer and multiplayer. Players collaborate to defend their village against waves of mythological creatures. Gameplay involves purchasing and strategically placing combination of "tower-cards" on the map to build unique towers that attack invading enemies. Each kill grants players money to acquire more cards. Enemies spawn in waves and follow a set path toward your village; if they succeed in destroying it, the game ends. Besieged! innovates on traditional tower defense mechanics, such as those in Bloons Tower Defense 4, by enabling dynamic tower creation through card combinations.
- Git - Version Control System
_ Download and install Git from the official Git website.
_ After installation, verify the installation by running
git --version
in your command line or terminal.
Git
Git is a distributed version control system that is used to manage the source code of this project. It is essential for cloning the project from GitHub and collaborating with other developers.- Java JDK 17 - Java Development Kit is essential for compiling and running Java applications.
_ Download and install it from Oracle's Java JDK Download Page or adopt an open-source JDK like AdoptOpenJDK.
_ After installation, verify the installation by running
java -version
andjavac -version
in your command line or terminal.
Java JDK 17 (Download from Oracle's website)
This project requires Java JDK to be installed. The project is tested with JDK 17.- Gradle 6.7 - Gradle brings advanced build toolkit to manage dependencies and other aspects of the build process.
_ You can download Gradle from the Gradle Download Page.
_ Alternatively, if you are using a Gradle Wrapper script (gradlew or gradlew.bat), you do not need to manually install Gradle, as the wrapper script will handle the installation for you. * To confirm that Gradle is properly installed, run
gradlew -v
in your command line or terminal which will display the installed Gradle version.
Gradle 6.7
Gradle is used as the build tool for this project. It automates the process of building, testing, and deploying the application.Android SDK (if you want to run the game on Android)
When testing the Android app you can run it either by connecting your Android phone via USB to your computer, or you could use an Android emulator (virtual device). To do this, you need to have the Android SDK installed. details>Android SDK (if you want to run the game on Android)
To set up the Android SDK for running the game on an emulator, you need to create a file called `local.properties` in the root of the project and add the path to your SDK with the following line:echo sdk.dir=YOUR/ANDROID/SDK/PATH > local.properties
Firebase Secret Key (for multiplayer features)
To enable multiplayer features in the game, you need to obtain a Firebase secret key. This key is necessary to authenticate and manage the game's online interactions securely.-
Obtain your Firebase secret key from the Firebase console.
-
Put the key into the asset` folder with the name
``FirebaseSecretKey.json``
Ensure that both Java and Gradle are properly installed and configured in your system's PATH environment variable to be able to run the game.
To install the project, you can use the following commands:
git clone https://github.com/SverreNystad/besieged.git
The game can be played on both desktop and Android.
You can start it on desktop using the following command:
gradlew desktop:run
To start the game on Android you need to run the APK file of Besieged. This can either be done by generating this yourself or with tools like Android Studio. When you have the APK file you can run it on an emulator or on any Android-device by executing the file.
Open the root folder as a project in Android Studio and let it configure itself the first time you open it. It should then automatically make an Android run configuration, so all you have to do is press the green run button on the top bar. Please take a look at Figure:
To run the tests, you can use the following command:
gradlew test
General overview of how the game runs when starting either a singleplayer or multiplayer-match
![]() Jens Martin Norheim Berget |
![]() Magnus Vesterøy Bryne |
![]() Mattias Tofte |
![]() Sverre Nystad |
![]() Tim Matras |
![]() Tobias Fremming |