Towering: A Tower Defense + Incremental Game
Inspiration: Old Chrome Game The Perfect Tower
The inspiration for Towering comes from an old browser game called The Perfect Tower. This game blended elements of incremental games with traditional tower defense mechanics. What made The Perfect Tower stand out was how it merged two gameplay loops: one focused on active defense strategies against waves of enemies and another centered on long-term progression, upgrades, and automation.
I was drawn to the way The Perfect Tower allowed players to start with a simple, vulnerable tower and gradually transform it into an unstoppable force through persistent upgrades. The progression was satisfying and each play session felt like an investment into something greater.
This game introduced me to a hybrid genre where action-based gameplay could coexist with idle mechanics, allowing players to balance moment-to-moment decision-making with longer-term automation and resource management. I wanted to bring that same engaging experience into my own project, Towering, while also expanding on its potential with new mechanics and features.
What Towering Does
At its core, Towering is a fusion of a tower defense game and an incremental game, designed to let players grow their defenses over time. Players start with a basic tower, which they must use to defend against increasingly difficult waves of enemies. Unlike traditional tower defense games where players place multiple towers along a path, Towering focuses on a single, upgradable tower that gradually becomes more powerful.
- Active Combat: The player-controlled tower can shoot and defend itself against waves of incoming enemies.
- Incremental Growth: Resources earned from defeating enemies can be reinvested into permanent upgrades.
- Wave Scaling: Enemies become progressively stronger, requiring the player to continuously upgrade their tower.
- Endless Progression: While each individual run resets in difficulty, long-term progress ensures that future runs become easier or introduce new mechanics.
The game blends the fast-paced action of defending against waves with the slower, more strategic decision-making of how to invest resources between rounds.
How We Built It: Unity & C
We built Towering using Unity with C# as the primary programming language. Given that Unity is well-suited for both 2D and 3D game development, it provided an excellent framework for handling the game's mechanics, UI, and rendering.
Core Development Process:
- Basic Tower Defense System – We started by creating a simple combat system where the tower could fire projectiles at incoming enemies.
- Enemy AI & Pathfinding – Implemented enemy movement logic where waves of enemies spawn and approach the tower.
- Resource and Upgrade System – Designed an economy where players could earn points or currency to invest in upgrades.
- Wave Scaling & Progression – Balanced difficulty scaling to ensure that the game remained challenging over time.
- UI & User Experience – Designed a simple, effective UI for managing upgrades, tracking resources, and displaying wave information.
We took inspiration from The Perfect Tower in the way that upgrades carried over between runs, providing players with a sense of long-term progression even after failing a wave.
Challenges We Ran Into
1. Balancing Mechanics
One of the biggest challenges was ensuring that the game felt engaging without requiring constant interaction from the player. Since it combines tower defense with incremental mechanics, we needed to find the right balance between manual gameplay and letting the tower do its thing.
2. Unity Optimization
Handling large waves of enemies efficiently proved to be a performance challenge. At higher levels, the number of enemies on screen increased drastically, requiring us to optimize our rendering and AI logic.
3. Scaling Progression
Finding the right pacing for upgrades was difficult. If upgrades were too weak, the game felt grindy; if they were too strong, the difficulty curve flattened out too quickly.
4. Enemy Variety & AI
Ensuring enemies had different behaviors and attack patterns added complexity to our design. Creating simple enemies was easy, but adding advanced AI for higher-level waves was tricky.
5. Keeping the Game Engaging Over Time
One issue with many incremental games is that they can become repetitive. We wanted to ensure that players always had something new to strive for, whether through unlockable upgrades, evolving enemy patterns, or additional automation features.
Accomplishments That We're Proud Of
Despite the challenges, we’re incredibly proud of what we’ve been able to accomplish:
- **Building a fully functional game.
Log in or sign up for Devpost to join the conversation.