Towerdefensio - Prototype


Home | Trailer | Description | Details


TowerDefensio is a prototype developed in Godot, featuring the core mechanics of the Tower Defense genre.

Inspiration & Idea

I set out to create a simple Tower Defense game prototype for study purposes, incorporating random level generation, a fantasy setting, and 2D artwork to keep improving my skills both in Godot and pixel art.

Project details [Click to expand]

Towers


The main objective of the game is to strategically place towers along the enemy's path to prevent them from reaching the castle. There are three types of towers available, each of which can be purchased using in-game currency earned by defeating enemies:

Archer Tower: This is the cheapest tower, dealing low damage to a single target. It’s best suited for dealing with weaker enemies and serves as an affordable option for early game defense.

Oil Tower: This tower fires an oil barrel, creating an oil splash on impact. The splash has an area-of-effect, so any enemies that enter the zone are temporarily slowed, making it easier for other towers to eliminate them. It’s a strategic choice for slowing down large groups of enemies.

Mortar Tower: The most expensive tower in the game, the mortar deals significant area damage. It’s highly effective against clustered enemies, offering massive firepower but at a higher cost.

All towers are upgradable. Upgrading towers increases both their damage output and their rate of fire, making them more effective as the game progresses.

Enemies


In TowerDefensio, only ground enemies are currently featured, and they all use Godot's built-in pathfinding functions to navigate their way from the portal to the castle. The game is designed to be scalable, leaving room for the addition of flying enemies in future updates. The key differences between the enemies lie in their health and speed. Currently, there are three types of enemies in the game:

— Skeleton: This is the first and weakest enemy you’ll encounter. It has a small amount of health and moves at medium speed, providing a small amount of gold when defeated.

— Ghost: The ghost moves at incredible speed and has more health than the skeleton, making it harder to defeat. It presents more of a challenge but also rewards more gold.

— Stone Golem: The slowest enemy in the game, but also the one with the most health. The golem acts as a damage sponge, attracting most of the towers’ attention and taking significant damage. Defeating the golem rewards players with the highest amount of gold.

Generation: road & complexity


Each game session in TowerDefensio is unique. First, the game randomly generates the path for enemies from the portal to the castle by selecting five random points across the map. This ensures that no two sessions have the same layout. Additionally, the composition of each wave and stage is randomly determined. The set of enemies in each wave is generated based on the complexity of the wave and the complexity value of each enemy. For instance, if a wave has a complexity cost of 200 points, the game will randomly choose enemies that collectively meet that 200-point cost. This system ensures that every wave is different, providing a new challenge each time you survive.

Economics balancing

Based on feedback from a playtest, several adjustments were made to the game's economy. First, the amount of starting gold was increased to ensure that players could survive the initial waves of enemies. Additionally, the gold reward system underwent a significant overhaul. Initially, players would only receive gold after successfully surviving a wave. However, the system was redesigned so that now players earn gold each time an enemy is eliminated. This change offers greater flexibility, allowing players to place new towers during waves if the situation becomes critical.

Towers balancing

Towers were also adjusted following the playtests. The most significant change was made to the oil tower. Initially, the speed debuff applied to enemies was permanent, meaning once an enemy stepped into an oil splash, their speed was reduced for the rest of the game. This gave players a considerable advantage, so now the slow effect only lasts for a few seconds. The mortar tower also received changes. It was overly powerful, instantly killing skeletons and ghosts with a large explosion radius. To balance this, the price of the mortar tower was increased, and both its damage and explosion radius were reduced.

• Play in browser at Itch.Io: Link

• Download at GitHub: Link

Evaluation & Outcomes

TowerDefensio was initially planned as a quick side project. My main goal was to create a Tower Defense prototype with scalability potential, and I believe that goal was fully achieved. The result is a complete and playable prototype that includes all the core mechanics of the genre. Additionally, the game features unique artwork that I created myself, which is something I’m particularly proud of.

That said, there are still some issues that need to be addressed. The game becomes too easy rather quickly, and if I were to improve it, I would focus on balancing the gameplay. This could involve adding new enemies and introducing debuffs for the player to ensure the game remains challenging throughout the entire experience.

Details

• Game engine: Godot
• Engine version: 4.2
• Coding language: GDScript
• Other tools: Aseprite (pixel art)

Return to top ↑