{"id":21565880,"url":"https://github.com/yoc00lig/tower-defense","last_synced_at":"2025-10-19T04:26:28.849Z","repository":{"id":149391323,"uuid":"593826993","full_name":"YoC00lig/Tower-Defense","owner":"YoC00lig","description":"This is my custom-made 2D implementation of the popular \"Tower Defense\" game, developed using Java language and the JavaFX framework.  It features strategic tower placement. 🏰","archived":false,"fork":false,"pushed_at":"2023-06-18T11:13:54.000Z","size":12482,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-24T12:11:20.850Z","etag":null,"topics":["game","game-clone","java","javafx","tower-defense-game"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/YoC00lig.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-26T23:18:53.000Z","updated_at":"2024-11-28T01:48:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"fdea53f9-fb20-4cae-9fa7-01b15e7d5964","html_url":"https://github.com/YoC00lig/Tower-Defense","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YoC00lig%2FTower-Defense","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YoC00lig%2FTower-Defense/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YoC00lig%2FTower-Defense/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YoC00lig%2FTower-Defense/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/YoC00lig","download_url":"https://codeload.github.com/YoC00lig/Tower-Defense/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244160064,"owners_count":20408022,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["game","game-clone","java","javafx","tower-defense-game"],"created_at":"2024-11-24T10:22:21.562Z","updated_at":"2025-10-19T04:26:23.810Z","avatar_url":"https://github.com/YoC00lig.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1\u003e ⭐️ Tower defense ⭐️ \u003c/h1\u003e\n\u003cp\u003e A simple game whose goal is to defend the castle from the incoming waves of enemies. The player can defend the castle by placing towers that deal damage to enemies and building walls that temporarily distract the\nenemy from the target (castle). Unfortunately, enemies can destroy any object.\u003c/p\u003e\n\n\u003cp\u003e There are two types of towers in the game. They differ primarily in attack range and durability and therefore  in price. During the game, you can increase the tower's attack\nrange or sell it. Its price will of course depend on its condition - a tower that has been attacked by an enemy will no longer have its maximum value.\u003c/p\u003e\n\n\u003cp\u003e The player can also build a wall. The wall does not attack the enemy, but temporarily stops them. The enemy stands against the wall that stands in his way and destroys it until he\ncan go through it. This gives you extra time to think about your game strategy.\u003c/p\u003e\n\n\u003cp\u003e You can see different types of enemies. They differ in the maximum health and strength. If the tower kills an enemy, you will receive money - the amount depends on the type \nof enemy. Enemies are a bit lazy - they always look for the nearest object and choose the shortest path to it.\u003c/p\u003e\n\n\u003cp\u003e The castle is the most important object in the game. It stands in the center of the map and is the target of enemy attacks. The castle has a health\nbar, and when it is empty, the game is over. You can recharge its health bar to the maximum at any time - but it's not cheap.\u003c/p\u003e\n\n\u003ch2\u003e 🗺 You can choose different variants of the map: \u003c/h2\u003e\n\u003cp\u003e ⚙️ Basic - you can only place towers and walls. \u003c/p\u003e\n\u003cp\u003e 🌊 Flood - in addition, there are inaccessible places flooded by water on the map. \u003c/p\u003e\n\u003cp\u003e ✨ Extended - you can increase castle health bar, sell and upgrade towers. \u003c/p\u003e\n\n\u003ch1\u003e 🛠 Core technology stack: \u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e Java 17 \u003c/li\u003e\n\u003cli\u003e Gradle \u003c/li\u003e\n\u003cli\u003e JavaFX \u003c/li\u003e\n\u003cli\u003e The icons have been sourced from \u003ca href=\"https://www.flaticon.com\"\u003ehere\u003c/a\u003e. \u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch1\u003e 🎮 Let's begin! \u003c/h1\u003e\n\u003cp\u003e After starting the game, the following window will be displayed: \u003c/p\u003e\n\u003cimg src=\"/readme/start.gif\"\u003e\n\u003cp\u003e After pressing START GAME button you can choose a map variant (don't forget to enter your nickname - without it the game won't start). \u003c/p\u003e\n\u003cimg src=\"/readme/input.gif\"\u003e\n\n\u003ch1\u003e❓ How to place objects? \u003c/h1\u003e\n\u003ch3\u003e Tower \u003c/h3\u003e\n\u003cp\u003e It's easy. You have to click anywhere on the map (it will be the upper left corner of the tower). Then the shop window will be displayed. Click the BUY button under the selected tower. If you do not have enough money, you will see the appropriate message.\u003c/p\u003e\n\u003ch3\u003e Wall \u003c/h3\u003e\n\u003cp\u003e It's a little more complicated. You also need to click anywhere on the map - this will be the beginning of the wall. In the shop window, select the wall and click BUY. When the shop window disappears, click anywhere on the map again - this time it will be the end of the wall. When you don't have enough money, only part of the wall will be built.\u003c/p\u003e\n\n\u003ch3\u003e First objects \u003c/h3\u003e\n\n\u003cp\u003e At the beginning, you have a certain amount of money to spend. Place your first objects, then press the PLAY button to start the game. Remember that objects cannot overlap and cannot extend beyond map bounds. \u003c/p\u003e\n\n\u003cimg src=\"/readme/shop.gif\"\u003e\n\n\u003ch1\u003e ⬆️ Upgrade objects \u003c/h1\u003e\n\u003cp\u003e You can upgrade your objects during the game. To do this, click on the object you want to improve. \u003c/p\u003e\n\u003cimg src=\"/readme/upgrade.gif\"\u003e\n\n\u003ch1\u003e 🏁 End of the game \u003c/h1\u003e\n\u003cp\u003e The game ends when the castle is destroyed or the player defeats all waves of enemies. At the end of the game, a window with information and statistics is displayed. You can see your score and top three scores in the game, quit game or play again.\u003c/p\u003e\n\u003cimg src=\"/readme/end.gif\"\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyoc00lig%2Ftower-defense","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyoc00lig%2Ftower-defense","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyoc00lig%2Ftower-defense/lists"}