Actualizar un juego de 10 años con Unity: desafíos y cambios

Fuentes: Updating Gun Rocket through 10 years of Unity Engine — Jack Pritz

Este artículo de Jack Pritz narra su experiencia al intentar actualizar el juego 'Gun Rocket', creado hace 10 años con Unity, a versiones más recientes del motor. La historia es una ventana a la evolución de Unity a lo largo de una década, revelando cambios significativos en su numeración de versiones y en su filosofía de desarrollo.

Inicialmente, Pritz se encontró con el problema de que 'Gun Rocket' no se abría en la versión actual de Unity. Esto se debió a que el juego fue desarrollado originalmente en Unity 4.6.0p1, y posteriormente migrado a 5.5.0f3 en 2018. La numeración de versiones de Unity ha sufrido cambios importantes: inicialmente se usaba un sistema numérico simple (5.5), luego se adoptó una numeración basada en el año (Unity 2017), y finalmente, ha vuelto a un sistema numérico más complejo (6000.4.1f1) para facilitar la gestión del soporte a largo plazo. Esta transición no fue directa, ya que Unity 5.5.0f3 también presentaba problemas de compatibilidad.

El proceso de actualización implica avanzar versión por versión, comenzando con 5.6.7f1 y luego a Unity 2017.4.40f1. Durante este proceso, Pritz destaca la introducción del gestor de paquetes de Unity, una herramienta diseñada para modularizar el código, permitir a los usuarios controlar las dependencias y estandarizar el uso de módulos C#. También menciona la experiencia de trabajar en Unity durante la implementación del gestor de paquetes, reconociendo los desafíos que surgieron al gestionar las dependencias entre los diferentes equipos.

El artículo no solo es una guía práctica para actualizar proyectos antiguos de Unity, sino también una reflexión sobre la evolución de la tecnología y los desafíos de mantener la compatibilidad a lo largo del tiempo. Pritz planea abordar los errores encontrados durante la migración de forma secuencial, priorizando la actualización del motor antes de solucionar los bugs, y documentando el proceso para compartirlo con la comunidad de Unity.