LootLand Defence
Solo project
GENRE & CORE GAMEPLAY
A single-player adaptive tower defence game for Windows PC where players face waves of enemies that adapt to tower layouts. Players strategically manage tower placement and a coin pusher mini-game, timing drops for gold and buffs to withstand intensifying waves.
Project Brief
The game was developed as a procedural tower defense game for a Game Development project at Vega School. The focus was on balancing player experience through adaptive enemy waves, strategic tower placement, and resource management, aimed at players interested in strategy games that evolve based on their actions.
Synopsis
In this adaptive tower defence game, players defend a central tower against procedurally generated waves of enemies using upgradable defenders with customizable stats. Visual effects, like swaying and color-changing flowers, enhance the player experience. Additionally, a coin pusher feature rewards player progress, providing boosts such as enemy removal and building repairs. This unique blend of strategy, procedural elements, and engaging visuals creates a dynamic and immersive gameplay experience.
My role and contribution
Programmer
Technical description of technologies/software/programming languages/game engines I used.
The game leverages Unity, which provides a modular, component-based architecture that ensures flexibility and scalability. The GameManager
orchestrates states via a state machine and event-driven design, ensuring scalability and clean separation of concerns. Procedural generation drives replayability, using a grid system for pathfinding, foliage placement, and tower spawning, with dynamic pathfinding powered by A*. AI systems integrate with NavMesh for adaptive behaviours, while the WaveManager
dynamically adjusts enemy spawns based on player defences. Towers feature upgrade mechanics and resource management. Performance is optimised using compute shaders for GPU-side tasks like vertex manipulation, ensuring smooth rendering without CPU strain. Modularity is reinforced through ScriptableObjects for configuration data and interfaces like IHealth
for polymorphic design. Adherence to principles like SOLID, KISS, and DRY ensured maintainable, extensible code. The game leverages Unity’s NavMesh, Physics, and rendering pipelines, alongside C#’s extensibility, to create a scalable and high-performance experience.
Gallery
Process work
Phase 1 of the project
Phase 2 of the project
Phase 3 of the project