A downloadable game for Windows

This project is part of my portfolio and was developed for academic purposes.

Project Overview

This project was developed as part of my university coursework, integrating the requirements of three subjects: Modelos y Algoritmos 1, Efectos Visuales, and Diseño de Niveles. The goal was not only to deliver a functional game, but to demonstrate a strong understanding of programming architecture, visual coherence, and level design principles within a single cohesive experience.

The result is a 3D tower defense game where the player can freely move around the map and strategically place towers, combining systemic design with spatial decision-making.

Programming & Architecture (Modelos y Algoritmos 1)

One of the primary objectives of this project was to develop clean, maintainable, and scalable code by following good programming practices and established principles such as SOLID.

To achieve this, I implemented a variety of design patterns, each selected to solve specific problems within the project:

  • MVC (Model-View-Controller): To separate game logic, visuals, and input handling
  • Object Pooling & Factory: For efficient instantiation and management of game objects
  • Builder Pattern: To construct complex objects step by step
  • Strategy Pattern: To allow flexible and interchangeable behaviors (e.g., tower logic)
  • Observer / Manager Systems: For event-driven communication between systems
  • Flyweight: To optimize memory usage where possible
  • Wrappers & Abstractions: To decouple systems and improve code flexibility
  • Localization System: To support scalable text management
  • Lookup Tables: For performance optimization in frequently accessed data

This architectural approach allowed me to maintain a modular and extensible codebase, making it easier to debug, iterate, and expand features. The project successfully met all the academic requirements and was evaluated with the highest grade (10/10).

Visual Effects & Atmosphere (Efectos Visuales)

Another key focus of the project was the creation of a cohesive visual identity through the use of real-time effects and post-processing.

I worked on building an atmosphere that aligned with the game’s style by implementing:

  • Custom shaders
  • Particle systems using Unity’s VFX tools
  • Post-processing effects
  • Environmental visual feedback

Each effect was designed with intention, ensuring it contributed to the overall aesthetic rather than feeling disconnected or excessive.

Although I believe I can keep on improving in this area, this process challenged me to step outside my comfort zone and experiment with new tools and techniques. As a result, I was able to produce visually engaging scenes that supported the gameplay experience and achieved a strong evaluation (8/10).

Level Design (Diseño de Niveles)

For the level design component, I developed the game environment from scratch, going through the full pipeline:

  1. Blockout
  2. Iteration and layout refinement
  3. Texturing
  4. Final detailing and polish

One of the main challenges was designing a map that balanced player freedom with game constraints.

Since the player can move freely and place towers anywhere, I needed to:

  • Prevent unintended exploits or “game-breaking” strategies
  • Guide the player subtly without restricting their freedom
  • Maintain a clear and intentional gameplay flow

This required careful spatial design, environmental cues, and iterative testing. The final result successfully delivers a sense of openness while still directing the player experience in a controlled and meaningful way (9/10).

Debugging & Problem Solving

Throughout development, I encountered various bugs and technical issues, which became an important part of the learning process.

To address these, I relied on:

  • Debug logs for tracking system behavior
  • Unity’s Profiler to identify performance bottlenecks
  • Iterative testing and isolation of problematic systems

This process helped me improve my approach and skills on problem-solving situations, reinforcing the importance of writing clear, debuggable code. It also highlighted how early architectural decisions impact long-term stability and maintainability.

Results & Reflection

Overall, I am very satisfied with the final result of this project. It successfully meets the objectives set by each subject and represents a significant step forward in my development skills.

That said, there are areas that I could still seek for improvement:

  • The game was not extensively playtested
  • Gameplay mechanics were not the primary focus
  • Some minor bugs may still be present

Despite this, the project achieved its main goals: building a strong technical foundation, exploring visual design, and understanding level design constraints.

Some of the lessons learned were the importance of architectural decision-making to cross-disciplinary development.

Final Thoughts

This project was a challenging but highly rewarding experience. It pushed me to integrate multiple areas of game development into a single product and taught me how to approach challenges from both a technical and design perspective.

It represents not just a finished game, but a milestone in my growth as a developer.

__________________________________________________________________



NOTICE:

This build was created using a Unity version affected by a publicly reported security vulnerability.

For more information, you can refer to Unity’s official report: https://unity.com/es/security/sept-2025-01/remediation

Download

Download
Build.rar 183 MB

Leave a comment

Log in with itch.io to leave a comment.