This project is a Capture The Flag (CTF) game developed for the course "Software Engineering" at the University of Mannheim. The game is divided into three components: the server, the client and the ai client. The server is responsible for managing the game, the client is responsible for the user interface and the ai client is responsible for the artificial intelligence of the game.
- Virgil Baclanov https://itsgil.com (virgil.baclanov@students.uni-mannheim.de)
- Robert J. Kratz https://rjks.us (robert.kratz@students.uni-mannheim.de)
- Benjamin Sander Linkedin (benjamin.sander@students.uni-mannheim.de)
- Joel Bakirel (joel.bakirel@students.uni-mannheim.de)
- Juan Steppacher (juan.steppacher@students.uni-mannheim.de)
- Christopher Issa (christopher.issa@students.uni-mannheim.de)
- Gabriel Himmelein Website (gabriel.victor.arthur.himmelein@students.uni-mannheim.de)
To learn more about the project, please refer to the documentation.
Important: All client tests are disabled by default. The reason for this is that the client module relies on the server module to be running. To enable the tests, you need to start the server module first. For this reason, the client tests are disabled for pipeline runs.
- Start the server:
$ java -jar server-1.0-SNAPSHOT-exec.jar
- Start a client:
$ java -jar client-1.0-SNAPSHOT.jar
- Start the AI client:
$ java -jar ai-1.0-SNAPSHOT.jar
-
Download the Linux JavaFX module from our repository here.
-
Unzip the file.
-
Start the server:
$ java -jar server-1.0-SNAPSHOT-exec.jar
- Start a client by importing the JavaFX module present in the .zip archive (downloaded in step 1):
$ java --module-path <path to JavaFX module lib> --add-modules javafx.controls,javafx.fxml -jar client-1.0-SNAPSHOT.jar
Example
$ /home/peitscha/.jdks/openjdk-21.0.2/bin/java --module-path/home/peitscha/Downloads/openjfx-22.0.1_linux-x64_bin-sdk/javafx-sdk-22.0.1/lib --add-modules javafx.controls,javafx.fxml -jar client-1.0-SNAPSHOT.jar
- Start the AI client by importing the JavaFX module present in the .zip archive (downloaded in step 1):
$ java --module-path <path to JavaFX module lib> --add-modules javafx.controls,javafx.fxml -jar ai-1.0-SNAPSHOT.jar
Example
$ /home/peitscha/.jdks/openjdk-21.0.2/bin/java --module-path /home/peitscha/Downloads/openjfx-22.0.1_linux-x64_bin-sdk/javafx-sdk-22.0.1/lib --add-modules javafx.controls,javafx.fxml -jar ai-1.0-SNAPSHOT.jar
-
Download the Linux JavaFX module from our repository here.
-
Unzip the file.
-
Start the server:
$ java -jar server-1.0-SNAPSHOT-exec.jar
- Start a client by importing the JavaFX module present in the .zip archive (downloaded in step 1):
$ java --module-path <path to JavaFX module lib> --add-modules javafx.controls,javafx.fxml -jar client-1.0-SNAPSHOT.jar
Example
$ java --module-path C:\Users\virgi\Downloads\openjfx-21.0.2_windows-x64_bin-sdk\javafx-sdk-21.0.2\lib --add-modules javafx.controls,javafx.fxml -jar client-1.0-SNAPSHOT.jar
- Start the AI client by importing the JavaFX module present in the .zip archive (downloaded in step 1):
$ java --module-path <path to JavaFX module lib> --add-modules javafx.controls,javafx.fxml -jar ai-1.0-SNAPSHOT.jar
Example
$ java --module-path C:\Users\virgi\Downloads\openjfx-21.0.2_windows-x64_bin-sdk\javafx-sdk-21.0.2\lib --add-modules javafx.controls,javafx.fxml -jar ai-1.0-SNAPSHOT.jar
To connect the client and the ai to a different server, you can pass the server address as an argument. The default server address is localhost
, the default port is :8888
.
Start the Client client with a different server address:
$ java -jar client-1.0-SNAPSHOT.jar --url http://cfp1.rjks.us
Start the AI client with a different server address:
$ java -jar ai-1.0-SNAPSHOT.jar --url http://cfp1.rjks.us