Robbo-Harvest Rumble
Desarrollo de Videojuegos, 3D

- Rol
- Desarrollador, Game designer
- Equipo
- Santiago Rodríguez, Marco Retana
- Tecnologías
- Unity, C#, Python, Mesa Ver en GitHub

Viajando a mi universo...David Langarica © 2025
Desarrollo de Videojuegos, 3D


A recuperar la Tierra de la invasión más adorable
Tras una invasión de frutas mutantes, "Robbo-Harvest Rumble" sigue a un escuadrón de robots enviados a recuperar la Tierra. Encargados de dominar a las simpáticas pero traviesas manzanas, aguacates y mangos alados, los robots se embarcan en una conmovedora misión para restaurar el planeta y dar la bienvenida a la humanidad a su abandonado hogar.
En primer lugar, creamos un sistema servidor que rastrea las posiciones y estados de varios agentes, como robots y frutas, que interactúan entre sí mediante distintos atributos y acciones. Los agentes se programaron con la biblioteca Mesa, una potente herramienta de Python que simplifica el proceso de creación de modelos basados en agentes, es decir, sistemas inteligentes que pueden interactuar entre sí (una especie de inteligencia artificial, pero sin la parte del autoaprendizaje).
En la simulación, los robots tenían dos objetivos principales. En primer lugar, tenían que detectar la ubicación de las frutas que aparecían aleatoriamente a lo largo de la simulación, así como la posición del contenedor donde tenían que depositar esas frutas. En segundo lugar, debían recoger las frutas y llevarlas al contenedor. La simulación termina cuando no quedan frutas en la cuadrícula.
La siguiente imagen muestra un fotograma de animación generado por Python. La animación se utilizó para verificar el programa.

Teníamos una restricción en nuestro proyecto en la que dos robots no podían estar en la misma celda. Para solucionarlo, decidimos que los robots sólo podían moverse siguiendo un patrón de serpiente dentro de un área específica (un número determinado y proporcional de columnas). Si un robot encontraba una fruta, rompía el patrón y se desplazaba hacia la papelera utilizando la distancia euclidiana para depositar la fruta. Después, volvía a su zona inicial para continuar con la búsqueda.
Una vez que confirmamos que el servidor enviaba con éxito los datos a través de un puerto local, decidimos dar a nuestra simulación un tema único y creativo. Se me ocurrió la idea de las frutas vivas mutantes (porque ¿qué hay más creativo que eso?) que a mi equipo y a mí nos pareció el tema más intrigante y buscamos recursos adecuados en Internet para construir el tema de la simulación en torno a eso.
Durante esta última parte del proyecto, nuestro principal reto fue utilizar eficazmente la integración C# de Unity para crear una representación visual de los datos enviados desde el programa de Python en tiempo real. Nuestro equipo tuvo problemas de latencia y de generación de frutas durante la programación, que resolví creando tres prefabs diferentes para las frutas y generándolas cada vez que se añadía una nueva posición a la matriz de posiciones de frutas enviada desde el servidor local. También me aseguré de que todo el estado de la simulación 3D coincidiera con el estado de los datos del servidor para evitar discrepancias.