Inspiration
I wanted to capture the feeling of stacking wooden blocks, building walls, placing toy soldiers, and creating an improvised defense that looked convincing in our imagination, even if it was structurally terrible in reality. That led to the idea of combining the creativity of toy-block construction with the strategy of a tower defense game.
What it does
Before each wave, you enter a Build Phase where you use limited resources to place wooden blocks, walls, barricades, towers, and traps. Blocks can be stacked to create walls, supports, and elevated platforms for towers.
Then the Battle Phase begins. Goblins and other toy-like enemies attack from the top of the board, attempting to break through your fortress and destroy the Core. Towers fire automatically, traps activate, and the physical structure can be damaged or collapse.
How we built it
Built with JavaScript ES modules, Vite 5, and Three.js 0.160 for rendering. Uses Ammo.js for rigid-body physics: blocks, towers, collapse, and knockback. Uses Web Audio API-generated effects, so there are no audio files to load.
Challenges we ran into
We wanted players to feel like they could actually construct their own fortress, but too many options or complicated controls could make the game overwhelming. The solution was to keep the building system readable through a grid, limited resources, and a relatively small battlefield.
Accomplishments that we're proud of
We're proud of creating a concept where building itself becomes part of the strategy.
What we learned
We learned that failure can be valuable feedback. When the player sees exactly where their fortress failed, losing becomes part of the learning process rather than simply a punishment.
What's next for Tiny Fortress
The next step would be expanding the building system with more meaningful materials and structural interactions. Wood could be cheap and lightweight, stone could be stronger but heavier, and metal could enable more advanced defensive structures.
We'd also like to introduce more enemy types, such as bombers, brutes, climbers, flying enemies, and ranged siege units. Each enemy would create a different defensive problem and force players to adapt their fortress designs.
Log in or sign up for Devpost to join the conversation.