Tower Buster
Development & Workflow
Gameplay Demo
Tower Buster is a small but fully playable demo project. The goal is to control a tank, destroy enemy towers, dodge incoming fire, and survive as long as possible. The demo showcases the finished gameplay. In the following sections, I also describe several aspects of the development process.

Concept & Models
The game was created as part of a certification program, so I didn’t produce a classic game design document – the core idea was clear from the start. To add my own creative touch, I developed a prototype asset pack. This pack allows me to quickly build games like Tower Buster and focus more on core game mechanics. The pack consists of simplified but modular models that can easily be extended or replaced.


Texturing
The prototype asset pack is deliberately kept simple to provide a versatile set of assets for fast iterations. I created all meshes in Blender and optimized them for performance. After unwrapping, I mapped the UVs onto small, compact textures. This makes it easy and efficient to swap colors or accents, ensuring that players and enemies remain visually distinct. The approach also enables very fast testing of new design ideas.


Programming
The tank consists of two parts (body and top), a spring arm for the camera, and a projectile spawn point. Projectile movement is handled by the UProjectileMovementComponent with a fixed initial and maximum speed. The top rotates dynamically towards the mouse position, enabling precise aiming, while movement is implemented via the Input System. Both the player and towers have a Health Component with assigned hit points. On impact, projectiles detect their target, apply damage, and destroy themselves to save resources. The game ends once either all towers are destroyed or the player is defeated, with the outcome displayed via a UI widget.



Level Building
The level design is minimalist but focuses on clear gameplay. A few props and enemies were placed to create simple but challenging scenarios. To clearly define the play area, I used blocking volumes at the map boundaries so that neither the camera nor projectiles can leave the map. The goal was to create a stable test environment for the core mechanics.

