top of page


About
Tanks 'N Towers is an cooperative, isometric tower defense with tanks. Your goal is to defend against ten waves of different types of enemies. To your help you got two different tanks with their own playstyle and upgrades. There is also four types of towers with three uppgradeable states. In this project i learned the importance to communicate with people, and especially with people i barely knew before this project. I also learned how to use subclasses to improve the code in a bigger project.
​
Itch Link: Tanks 'N Towers by StvlKrddn (itch.io)
Contribution
​​​​​
-
Gameloop​
-
Economy
-
Progression
-
Enemy AI
-
Waves
-
Weapons & Abilities
-
Savesystem​
-
Pooled Shots and Enemies
Programming
Wavemanager
Wavemanager is a script that holds multiple waves with enemies and spawns them in the right order. As you can see in the GIF I tried to make the wavemanager readable and at the same time include everything that was needed for the game designer to edit a specific wave. In my wave system you can change everything to how many enemies that are going to spawn to adding another subwave that includes a new batch of enemies. To make a wave system like this I needed three different structs that interact with each other.
A wave is built up by different subwaves where each subwave includes different types of enemies. Each subwave randomizes which order the enemies spawn in so that the game designers can pick if they want some enemies randomized.
​
The wavemanager was iterated thoroughly to add spawnrate, bonus money after a wave, using pooling for performance and randomizes the order of the enemies. It works based on our project ideas and is optimized for even spread on spawning of enemies.
Wavemanager Showcase

Weapon Showcase
_gif.gif)
Weapon Slot
Both tanks have a starting weapon in the WeaponSlot script. The weapon is saved as a scriptable object as it gives stats to the tank weapon. Examples of stats that change are fire rate, spread, damage. The big difference between the two tanks is that the sniper tank gets shots that can pierce through enemies and increases the higher level the tank gets meanwhile the fire tank gets a flamethrower that deals less damage but on more enemies.
​
When the players upgrade their tanks they go through an upgrade tree based on the tank they picked and both the players get different types of upgrades.
The GIF shows the difference between the two tanks each level. To the right is the flamethrower tank and left sniper tank.
Portal Enemy
When we made the game, My task was to make enemies. The enemy types were not complicated except the portal enemy. The portal enemy walks on the path like a regular enemy but works a little differently when it spawns. When the enemy is picked by the wavecontroller it creates a portal where the enemy spawns after a duration.
When the enemy spawns, the alpha value in their RGBA is set to 0, making the enemy’s color invisible. The code also disables the collider and animation, which makes the enemy not affect gameplay before it has fully spawned.
​
After that, the code sets the animation duration for the portal effect based on where the enemy should spawn as shown in the GIF. The closer the enemy spawns to the base, the longer it takes for the enemy to spawn. When the portal is active, the enemy’s alpha value is added up to 1 over the spawn duration (lerps). When the alpha value is 1 the enemy activates and acts like a normal enemy.
Portal Spawn Prototype

Gameplay

Co-op Aspect
The players need to work together to overcome the aliens. ​Our game has different damage types that are good for a specific enemies, for example an ice enemy that needs the player with the flamethrower to break the ice for the other player. I was the programmer who enforced the cooperation while playing. Another example is that the players can buy so the other player to resurrects if it has been killed in the current wave.
Team
Our team felt that we handled the project very well. Everyone fulfilled their own roles. It seemed like everyone in our group wanted the game to succeed, which makes me very happy to have been part of such a team. If we had a little longer the game would have been more juicy than this is now but I am still proud of making this a game I can show my family and friends and have very fun with.
Credits

bottom of page