Hometopia
Entré como desarrollador UI, sobreviví al colapso del equipo y acabé como programador líder. Reconstruí el multijugador desde cero, arreglé años de deuda técnica y mantuve el juego vivo.
El contexto
Entré en Hometopia como desarrollador UI/UX. El juego llevaba cuatro años en desarrollo con múltiples manos técnicas entrando y saliendo. Lo que encontré fue una base de código plagada de deuda técnica, problemas de rendimiento y bugs acumulados durante años de rotación.
Mi trabajo de UI fue bien—mejoras rápidas, buena colaboración con el director del juego y los artistas. Pero los problemas técnicos de fondo eran profundos, y el lanzamiento en Early Access fue complicado.
Luego la cosa empeoró. El liderazgo técnico se fue. La mayoría del equipo fue despedido. Pasamos de 15 personas a 5.
Qué hice
Me quedé. El equipo restante decidió no dejar morir el juego.
Como programador líder de facto, asumí la responsabilidad del rescate técnico:
Rendimiento y estabilidad
- Ataqué años de deuda técnica acumulada y problemas de rendimiento
- Implementé object pooling, streaming de LOD, texture atlasing y consolidación de materiales
- Reduje significativamente el uso de memoria y eliminé los crashes relacionados con ella
- Arreglé problemas de iluminación y post-procesado que arrastraba el juego
Rescate del multijugador
Cuando la persona asignada al multijugador no entregó, construí todo el sistema desde cero en menos de un mes:
- Integración de Unity Netcode for GameObjects + Steamworks
- Sincronización fiable de estado para un juego con miles de objetos colocables
- Esto marcó un antes y un después en mi experiencia con multijugador
Sistemas y herramientas
- Reescribí el sistema de guardado con serialización compacta y segura para red (lista para Steam Workshop)
- Construí herramientas de editor de Unity personalizadas que agilizaron la configuración de items para diseñadores y artistas
- Implementé Deshacer/Rehacer con un framework de comandos determinista
- Migré el manejo de input al nuevo sistema de Input de Unity
- Configuré automatización DevOps con Plastic SCM y Unity Cloud Build
Equipo y proceso
- Guié a desarrolladores junior durante el período de recuperación
- Establecí un ritmo de actualizaciones sostenible: actualizaciones grandes cada 1-2 meses, parches entre medias
- Trabajé con distintas zonas horarias en un equipo distribuido (liderazgo en EE.UU., desarrolladores en EU/Asia)
La realidad
Esto no fue un proyecto desde cero con arquitectura limpia. Fue una misión de rescate—heredar un código problemático, sobrevivir al colapso del equipo, y mejorar las cosas sistemáticamente mientras sacábamos actualizaciones para los jugadores.
El juego sigue en Early Access—al final se retiró la financiación y el desarrollo se detuvo. Pero el equipo que se quedó convirtió un proyecto fallido en algo jugable y estable. A veces la habilidad más valiosa es la persistencia.