Attack On Titan: Utopia is a one-player, endless tower defense game inspired by the hit anime Attack on Titan. The game is set in the Utopia District of Wall Rose, where players must defend against waves of titans using a variety of Anti-Titan weapons. The objective is to prevent the titans from breaching the walls of Utopia for as long as possible.
- Preview
- Installation
- Dependencies
- Game Elements
- Credits
- License
- Contribution Guidelines
- Commercial Use
Embed a gameplay video or provide a link to a video showcasing the game. [To Be Added]
To get started with Attack On Titan: Utopia in IntelliJ IDEA, follow these steps:
-
Clone the repository:
git clone https://github.com/yehiarasheed/Attack-On-Titan-Utopia.git cd Attack-On-Titan-Utopia
-
Open the project in IntelliJ IDEA:
- Go to
File
>Open...
and select the project directory. - Ensure the correct JDK is set up for the project (JDK 11 or higher).
- Go to
-
Set up JavaFX:
-
Download the JavaFX SDK from the Gluon JavaFX download page.
-
Extract the JavaFX SDK to a directory on your computer.
-
Go to
File
>Project Structure...
>Libraries
and add the JavaFXlib
directory. -
Go to
Run
>Edit Configurations...
and add VM options to include the JavaFX libraries:--module-path /path_to_javafx_lib --add-modules javafx.controls,javafx.fxml,javafx.media
-
-
Build and run the project:
- Build the project by going to
Build
>Build Project
. - Run the project by selecting the main class and clicking the run button.
- Build the project by going to
To get started with Attack On Titan: Utopia in Eclipse, follow these steps:
-
Clone the repository:
git clone https://github.com/yehiarasheed/Attack-On-Titan-Utopia.git cd Attack-On-Titan-Utopia
-
Open the project in Eclipse:
- Go to
File
>Import...
>Existing Projects into Workspace
. - Select the cloned repository directory.
- Go to
-
Set up JavaFX:
-
Download the JavaFX SDK from the Gluon JavaFX download page.
-
Extract the JavaFX SDK to a directory on your computer.
-
Go to
Project
>Properties
>Java Build Path
>Libraries
>Modulepath
>Add External JARs...
and add all the JAR files from the JavaFXlib
directory. -
Go to
Run
>Run Configurations...
and add VM options to include the JavaFX libraries:--module-path /path_to_javafx_lib --add-modules javafx.controls,javafx.fxml,javafx.media
-
-
Build and run the project:
- Right-click on the project and select
Build Project
. - Run the project by selecting the main class and clicking the run button.
- Right-click on the project and select
This software depends on the following applications:
- JavaFX: Required for the user interface. You can download the JavaFX SDK from the Gluon webpage.
- JDK 11 or higher: Java Development Kit (JDK) is a software development environment needed to develop Java applications and applets.
For more information on setting up JavaFX, refer to the Bro Code JavaFX Playlist.
- Titans: Enemies with various stats like HP, Damage, Speed, and special traits.
- Weapons: Defensive tools with different attack behaviors and costs.
- Wall Parts: Defensive structures with HP that need to be protected.
The game progresses through different phases based on the number of turns elapsed:
- Early Phase: Minimal titan spawns, allowing players to build up defenses.
- Intense Phase: Increased titan spawns, including tougher titan types, testing player strategies.
- Grumbling Phase: The most difficult phase with frequent spawns of the largest titans, requiring players to use all their resources and tactics to survive.
Each Phase a total of seven titans spawn, spawning one titan in each turn except for the last part of the Grumbling Phase
Phase | Description | Titan Types | Difficulty Level |
---|---|---|---|
Early Phase | Minimal titan spawns, allowing players to build up defenses. | Pure Titan, Abnormal Titan | Low |
Intense Phase | Increased titan spawns, including tougher titan types. | Pure Titan, Abnormal Titan, Armored Titan | Medium |
Grumbling Phase | Most difficult phase with frequent spawns of the largest titans. | Pure Titan, Abnormal Titan, Armored Titan, Colossal Titan | High |
Type | HP | Damage | Height | Speed | Resources Value | Danger Level | Special Trait |
---|---|---|---|---|---|---|---|
Pure Titan | 100 | 15 | 15 | 10 | 10 | 1 | - |
Abnormal Titan | 100 | 20 | 10 | 15 | 15 | 2 | Attacks twice per turn |
Armored Titan | 200 | 85 | 15 | 10 | 30 | 3 | Takes only 25% damage |
Colossal Titan | 1000 | 100 | 60 | 5 | 60 | 4 | Increases speed each move |
Weapon Type | Price | Damage | Attack Action |
---|---|---|---|
Piercing Cannon | 25 | 10 | Attacks closest 5 titans to the wall |
Sniper Cannon | 25 | 35 | Attacks the first closest titan to wall |
Volley Spread Cannon | 100 | 5 | Attacks all titans between min and max range |
Wall Trap | 75 | 100 | Attacks a titan that reached the walls |
- Winning and Losing Conditions: The game has no winning condition; players aim to survive as long as possible. Losing occurs when all wall parts are destroyed.
- Titan Movement: Titans move closer to the wall each turn based on their speed.
- Attack Actions: Titans and weapons perform attack actions each turn, affecting wall parts and titans respectively.
- Defeated Targets: Defeated titans add resources and score to the player. Destroyed wall parts render lanes inactive.
Each turn, players can choose to deploy weapons or pass. Turn sequence involves titan movement, weapon attacks, new titan spawns, and phase updates.
- Developers: Jomana Mahmoud, Nada Yasser & Yehia Rasheed.
- Inspired by: Attack on Titan anime series
All media used in this project, including images and videos, are credited to their respective creators and used under fair use for educational and demonstration purposes. If you plan to use this project for commercial purposes, you must ensure you have obtained the necessary licenses or permissions for any copyrighted media.
This project is licensed under the Attack On Titan: Utopia License - Version 1.2. See the LICENSE file for details.
- License Grant: You are granted a non-exclusive, worldwide, royalty-free, perpetual license to use, modify, distribute, and contribute to the project.
- Contributions: Contributions must be submitted via GitHub pull requests and are subject to review and approval.
- Commercial Use: Requires separate agreement with the project owners. Notification and licensing for commercial use are required.
- Attribution: Proper credit must be given to the project and its media sources.
- Disclaimer: The project is provided "as is" without warranties.
- Termination: License may be terminated for non-compliance.
For full license terms, please refer to the LICENSE file.
We’re excited that you’re interested in contributing to this project! Whether it's fixing bugs, adding features, or improving documentation, your contributions are welcome and appreciated.
For more detailed information on how to contribute, please check out our CONTRIBUTING.md file.
- Submit a Pull Request: If you’ve made changes that you think will benefit the project, please submit a pull request on GitHub.
- Review Process: All contributions will be reviewed by the project owners. We’ll provide feedback, and once everything looks good, your changes will be merged into the project.
- Discretion: Contributions will be incorporated into the project at the discretion of the project owners, but don’t worry—your work is valued, and we’ll do our best to include it if it fits with the project’s goals.
Thank you for helping make this project better!
If you intend to use this project for commercial purposes, please follow these steps:
- Contact: Reach out to the project owners at [email protected] to request permission for commercial use. Notification and licensing from original copyright holders for commercial use are required.
- Agreement: A separate agreement must be made with the project owners regarding commercial use. This may include terms for revenue sharing or other considerations.