Rust parecía el lenguaje ideal para programar videojuegos. Este estudio acabó abandonándolo tras tres años centrados en él

El estudio de videojuegos LogLog Games se da por vencido con Rust, al que siguen viendo muchas ventajas... para todo lo que no sean videojuegos

Rust Games
2 comentarios Facebook Twitter Flipboard E-mail

El lenguaje de programación Rust no ha hecho más que ganar popularidad en los últimos años, gracias a su enfoque en la seguridad y el rendimiento. Eso hace que muchos lo consideren, también, una de las opciones más prometedoras en el mundo del desarrollo de videojuegos frente a lenguajes más establecidos como C++, Unity (C#) y Godot.

Sin embargo, no todo es tan idílico como parece: después de tres años dedicados a desarrollar videojuegos en Rust, el estudio indie LogLog Games decidió abandonar su apuesta por este lenguaje como herramienta principal de desarrollo, pese a las miles de horas que habían invertido en su uso.

Un vistazo a…
Los 25 juegos mas dificiles de la historia

Un comienzo prometedor, pero con desafíos persistentes

Cuando LogLog Games comenzó a utilizar Rust, lo hicieron con altas expectativas. Rust prometía un rendimiento excelente y herramientas que garantizaban la ausencia de errores comunes relacionados con la memoria, algo crucial en un entorno tan exigente como el desarrollo de videojuegos.

Durante este periodo, el equipo lanzó varios juegos en plataformas como Steam, utilizando frameworks como Bevy y Macroquad, además de crear su propio motor 2D desde cero. Sin embargo, a medida que avanzaban en su experiencia, los problemas comenzaron a acumularse.

Uno de los principales retos fue la curva de aprendizaje del lenguaje: Rust es notoriamente complicado para principiantes y, aunque los desarrolladores de LogLog Games no eran precisamente inexpertos (escribieron más de 100.000 líneas de código en esos tres años), muchos de los problemas iniciales no desaparecieron con el tiempo.

El coste oculto de los lenguajes robustos

El principal obstáculo técnico fue el 'borrow checker', una herramienta que asegura que los datos no sean modificados de manera insegura en tiempo de ejecución: si bien esta característica es un pilar del diseño de Rust, en el contexto de los videojuegos —donde la iteración rápida y la flexibilidad son esenciales—, resultó ser una traba constante.

Según explican los desarrolladores,

"El 'checker' obliga a realizar refactorizaciones en los momentos menos convenientes. [...] en el tiempo que un desarrollador de Rust termina de refactorizar su código para cumplir con el 'borrow checker', un desarrollador de C# ya ha probado varias ideas y ha iterado en ellas".

Esto dificultaba la implementación de prototipos rápidos, y hacía que incluso las modificaciones más simples resultaran tediosas y lentas, un lujo que los estudios independientes con recursos limitados no pueden permitirse...

...pero crear un prototipo funcional en poco tiempo es lo que permite a los desarrolladores experimentar y evaluar ideas antes de invertir recursos significativos en su desarrollo completo.

Los desarrolladores de LogLog Games encontraron que realizar pequeños cambios en el diseño a menudo requería grandes refactorizaciones, impuestas por el propio compilador

En otros lenguajes, como C# o C++, es común implementar soluciones rápidas y "desordenadas" durante la fase de prototipado, para luego refinarlas. En Rust, esta práctica es casi imposible debido a las restricciones del lenguaje:

"El código en Rust a menudo es más limpio, pero eso no garantiza que el juego sea mejor. Lo que importa no es un sistema perfecto, sino cuán rápido puedes implementar y probar mecánicas para descubrir qué funciona y qué no".

Un ecosistema poco enfocado a videojuegos

A pesar de las críticas, LogLog Games reconoce que Rust tiene fortalezas innegables. El lenguaje es excepcionalmente bueno en áreas como herramientas de línea de comandos, procesamiento de datos y algoritmos. Además, su rendimiento "por defecto" es impresionante, superando a lenguajes como C# incluso sin optimizaciones exhaustivas:

"Rust es un lenguaje que funciona bien para proyectos donde la seguridad y la estabilidad a largo plazo son prioritarias. Pero para nosotros, el desarrollo de videojuegos es sobre velocidad y creatividad. Y en esos aspectos, Rust simplemente no nos ayudó".

Tras tomar la decisión de abandonar Rust, LogLog Games planea volver a usar Unity, aprovechando su ecosistema avanzado y herramientas que favorecen la iteración rápida.

Por el contrario, el ecosistema de Rust carece de herramientas maduras comparables a las que ofrecen Unity o Unreal Engine: ni editores visuales, ni sistemas avanzados de interfaz de usuario, etc.

Un punto recurrente de frustración fue el uso extendido de sistemas de componentes (ECS) en Rust, como el que implementa Bevy. Aunque estos sistemas ofrecen beneficios en memoria y modularidad, logran que

"lo que podría ser una línea de código en Unity o Godot se convierta en una tarea de 30 líneas dividida en múltiples lugares".

Vía | LogLog Games

Imagen | Marcos Merino mediante IA

En Genbeta | Qué es Rust y por qué Elon Musk piensa que será el lenguaje con el que crearemos la 'IA General'

Inicio