Soy Ignacio Tapia, programador y diseñador de videojuegos, con estudios en la Universidad de diseño y desarrollo, UDIT. Cuento con varios años de experiencia en lenguajes como C++, C# y JavaScript, además de en herramientas como Unity y Unreal Engine.
Tanto en mi formación y como en mi etapa como desarrollador he trabajado, personalmente y en equipo, en distintos proyectos ejerciendo de programador principal, diseñador y productor.
Especializado en el desarrollo de videojuegos en motores, considero que mi capacidad para entender la programación a un nivel lógico me permite trabajar sobre cualquier proyecto que se me presente.
Me defino como una persona resolutiva y creativa. Siempre busco estar aprendendiendo y desarrollando nuevas ideas.
Con una gran pasión por crear videojuegos y llevar mis proyectos a cabo, mi objetivo es seguir creciendo como desarrollador en la industria del videojuego.
Hi! I'm Ignacio Tapia, a video game programmer and designer, with studies at the University of Design and Technology, UDIT. I have several years of experience in languages such as C++, C#, and JavaScript, as well as in engines like Unity and Unreal Engine.
Throughout my education and development career, I have worked both in personal and team projects, taking on the role of lead programmer, designer, and producer.
Specialized in engine-based game development, I believe my ability to understand programming from a logical perspective allows me to work on any project that comes my way.
I consider myself a creative and resourceful person. I'm always looking to learn and develop new ideas.
With a strong passion for creating video games and bringing my projects to life, my goal is to keep growing as a developer in the video game industry.
Juego de disparos en el que tendrás que acertar a tantas frutas como puedas. Realizado entre dos personas para ScoreSpace Jam #27 de Itch.io.
Programador y Diseñador.
A shooting game where you have to hit as many fruits as you can. Created by two people for ScoreSpace Jam #27 on Itch.io.
Programmer and Designer.
Juego en el que tendrás que atravesar la mazmorra con solo un objeto. Realizado entre dos personas para la TavernGameJam - Summer'24.
Programador y Diseñador.
A game where you must cross the dungeon using only one item. Created by two people for TavernGameJam - Summer'24.
Programmer and Designer.
Dos dignos caballeros se enfrentan en una dura partida de Pong.
Programador y Diseñador.
Two noble knights face off in an intense match of Pong.
Programmer and Designer.
Juego de ritmo en el que tendrás que bloquear todo lo que te lancen.
Programador.
Rhythm game where you have to block everything thrown at you!
Programmer.
Juego realizado con C++ en Unreal Engine 5.4.
Lead programmer, implementación de assets y arte, diseño de mecánicas.
Actualmente contamos con una demo inicial del juego,
con la cual asistimos al CyL InGame 2025.
ZEP Demo
Game developed in C++ using Unreal Engine 5.4.
Lead programmer, responsible for asset and art integration, and game mechanics design.
We currently have an initial demo of the game,
which we showcased at CyL InGame 2025.
ZEP Demo
Sistema de diálogos con Structs y DataTables. Cada NPC tiene estados distintos según tus interacciones y el progreso del juego.
El componente de diálogo lanza el texto adecuado según los medidores enviados como strings.
Este sistema es reutilizable con solo configurar los datos, ideal para otros objetos o NPCs.
Dialogue system built from scratch using Structs and DataTables. NPCs change based on interaction history and game phase.
The Dialogue Component sends strings with meter values and retrieves the correct dialogue from the DataTable.
This makes the system easily reusable for any object or NPC with simple data configuration.
Todos los minijuegos derivan de un objeto padre, compartiendo una estructura base común.
Esto permite añadir nuevos fácilmente, incluso fuera del sistema de pesca.
All minigames inherit from a parent object with a shared structure.
This allows for easy creation of new ones, even beyond the fishing system.
Sistema de objetos basado en Structs con un struct general que engloba structs específicos.
Ampliable fácilmente: basta con crear un nuevo struct y añadirlo.
Se almacenan en una DataTable con IDs únicos para fácil acceso.
Item system based on Structs: a general struct contains all common info plus a specific-type struct.
Easily expandable by adding new type structs.
Items are stored in a DataTable with unique IDs for easy lookup.
He creado y gestionado un repositorio usando SourceTree, y he utilizado herramientas como Figma, Canva y Excel para organizar y diseñar el proyecto.
El código no está disponible por razones de copyright.
I created and managed a repository using SourceTree, and used tools like Figma, Canva, and Excel for project organization and design.
The source code is not available due to copyright reasons.
Juego realizado con JavaScript, HTML y Css.
Para este proyecto realicé toda la programación, así como el diseño del juego.
Para probar el proyecto puedes encontrarlo en mi página de Itch.io.
BlasterCannon
Game developed with JavaScript, HTML, and CSS.
For this project, I did all the programming as well as the game design.
You can play the project on my Itch.io page.
BlasterCannon
Para este juego, después de implementar y trastear con librerías de JS como Matters o Planck, decidí gestionar yo mismo las físicas, debido a que lo que yo necesitaba era más simple.
Para esto añadí diversos comportamientos a las pelotas para simular el rebote, la caída y la rotación de una forma más o menos arcade que es lo que mejor quedaba con el concepto del juego.
For this game, after experimenting with JS libraries like Matters or Planck, I decided to manage the physics myself since what I needed was simpler.
I added various behaviors to the balls to simulate bouncing, falling, and rotating in a more or less arcade style, which fit best with the game's concept.
Además creé mi propio sistema de partículas, este es un sistema simple en el que se genera un número aleatorio de partículas, con velocidad y tamaños aleatorios y estas se van volviendo translúcidas hasta desaparecer.
Cuando estas están invisibles se eliminan.
I also created my own particle system, which is a simple system where a random number of particles is generated with random speeds and sizes. They gradually become translucent until they disappear.
Once invisible, they are removed.
Para la implementación de la LeaderBoard utilicé la API de FireBase.
Ahí creé con FirestoreDatabase una base de datos con una tabla para guardar todas las puntuaciones. Cada una con un nombre y una puntuación.
Después, llamo a esta tabla desde un archivo JS para introducir la puntuación.
También hice una función para sacar los datos y generar una LeaderBoard con las puntuaciones de los 5 mejores.
I used the FireBase API to implement the LeaderBoard.
There, I created a FirestoreDatabase with a table to store all the scores. Each score is associated with a name and a value.
Then, I call this table from a JS file to insert the scores.
I also made a function to fetch the data and generate a LeaderBoard with the top 5 scores.
Para ver el código entero de este proyecto se puede ver en mi github.
GitHub/BlasterCannonYou can view the full code for this project on my GitHub.
GitHub/BlasterCannon