
ARTDEPARTMENT

En una época en la que los videojuegos son desarrollados por equipos de cientos de personas, con motores gráficos complejos y presupuestos multimillonarios, resulta casi inverosímil pensar que uno de los títulos más innovadores, complejos y queridos de los abriles 90 fue obra de una sola persona. Pero así fue.
Pero Chris Sawyer (un programador escocés con una cierta obsesión por el rendimiento de sus creaciones) no sólo creó RollerCoaster Tycoon prácticamente en solitario, no: igualmente lo hizo usando uno de los lenguajes de programación más temidos. Ensamblador.
Los 25 juegos mas dificiles de la historia
Como explicaba en una entrevista para Atari-Club, todo comenzó en 1996 o 1997, cuando Sawyer trabajaba en la secuela de su previo éxito, Transport Tycoon. Frustrado por las limitaciones técnicas de la época y desmotivado con el rumbo del tesina, encontró inspiración en un hobby inesperado: su creciente fascinación por las montañas rusas y su ingeniería. Así nació una idea que cambiaría su vida y la historia de los videojuegos.
En un principio, no tenía una idea clara de cómo quería que fuese el solaz final. De hecho, RollerCoaster Tycoon comenzó como un simple 'conjunto de construcción de montañas rusas' en el interior del motor isométrico de Transport Tycoon.
Pero lo que empezó como un cuestionario personal creció hasta convertirse en uno de los simuladores de parques de atracciones más completos, entretenidos y técnicamente admirables nones hechos.

Christ Sawyer, en fotograma de vídeo de 'Waldoc' en YouTube
A primera horizonte, RollerCoaster Tycoon es un solaz simpático, colorido y accesible. Pero bajo esa estética afable se esconde una simulación rica en detalles. Cada visitante tiene personalidad propia, gustos específicos, niveles de tolerancia al miedo y al aburrimiento, e incluso diferente poder adquisitivo. La diligencia económica del parque —costos, ingresos, campañas de marketing, personal, mantenimiento— igualmente influye en el éxito de cada ambiente.
Encima, el solaz incluye una construcción modular de montañas rusas que, gracias al motor físico personalizado de Sawyer, permite diseñar atracciones realistas (o completamente disparatadas) cuyas características son evaluadas automáticamente por el solaz en términos de emoción, intensidad y mareo.


La selección de una horizonte isométrica pre-renderizada no fue una valor estética, sino técnica. Los gráficos 3D en tiempo actual eran inviables si se quería apoyar un stop rendimiento. En su emplazamiento, el actor Simon Foster creó miles de sprites pre-renderizados con consistencia de iluminación y perspectiva, usando una paleta de 256 colores optimizada para permitir variaciones de color sin impacto en el rendimiento.
La coherencia visual del solaz, sus animaciones fluidas y su intuitiva interfaz de usufructuario fueron claves en su éxito. Muchos aún recuerdan con nostalgia su estética 'pixel-art' tridimensional, que ha envejecido sorprendentemente acertadamente.
En 1999, muchos juegos ya se desarrollaban en lenguajes de medio/stop nivel como C/C++. Sin confiscación, Sawyer optó por el ensamblador x86, un jerigonza de muy bajo nivel (lo más bajo que se puede usar sin acudir al propio jerigonza binario) que interactúa directamente con el hardware. ¿La razón? Rendimiento.
Sawyer quería un solaz fluido, capaz de fingir cientos de visitantes interactuando con decenas de atracciones, sin inmolar la calidad visual ni el nivel de detalle. Para conseguir esto en los modestos ordenadores de finales de los 90, necesitaba extraer hasta el postrero ciclo de CPU adecuado.
Cada hábitat —desde la 'inteligencia sintético' de los visitantes hasta la física de las montañas rusas— fue cuidadosamente optimizado para ejecutarse a gran velocidad. Esto permitió que el solaz funcionara sin problemas incluso en PCs de bajo coste, ofreciendo una experiencia sin ralentizaciones. En una era sin actualizaciones por Internet, el código tenía que ser valentísimo desde el primer día.

'Pensamientos recientes: "...aunque puede ser desmoralizante tener que descartar una o dos semanas de trabajo, siempre tenía un costado positivo: el futuro intento o el nuevo enfoque solían salir mucho mejor"'. (Chris Sawyer)
Para quienes no tienen experiencia en programación, es importante entender por qué usar ensamblador para crear RollerCoaster Tycoon no solo fue inusual, sino una auténtica correr técnica.
Ya hemos dicho ayer que prácticamente supone dialogar el 'jerigonza interno' de un PC: olvídate de comandos legibles como "if", "while" o "print" que puedes encontrar en lenguajes como C, Python o JavaScript: en ensamblador las instrucciones controlan directamente la CPU y la memoria, y tiene la forma de un 'MOV AX, 4C00h' o 'INT 21h'.

Y así, amigos, se escribe "Hola, mundo" en ensamblador
Por ejemplo, una simple orientación de código en C puede convertirse en 5 o 6 líneas de ensamblador: cada operación debe ser descrita paso a paso. Encima, el programador debe aceptar todo el contexto del software en su inicio: qué registros están ocupados, dónde están los datos en la memoria, cómo evitar que el sistema se congele, etc.
Programar un solaz completo en ensamblador implica:

Y ahora piensa en las particularidades de RollerCoaster Tycoon, un solaz que requiere calcular en tiempo actual:
Todo eso, escrito orientación a orientación, como si cualquiera construyera una ciudad entera rasilla a rasilla, sin grúas y sin planos.
Por eso, que una sola persona lograra escribir un solaz con la complejidad de RollerCoaster Tycoon en ensamblador, sin errores graves, sin actualizaciones posteriores, y con un rendimiento impecable, es simplemente maravilloso.
Valiente en 1999, RollerCoaster Tycoon se convirtió en el solaz más vendido del año, superando incluso a títulos de grandes estudios, según relata Tech Stories. En el 2000, fue el segundo solaz más vendido, solo por detrás de Los Sims. Y todo esto sin campañas de marketing millonarias.
Sawyer continuó con RollerCoaster Tycoon 2, que expandía las ideas del primero pero sin grandes cambios. Más delante desarrollaría Locomotion, una especie de sucesor espiritual de Transport Tycoon. Pero con el paso del tiempo y el avance de la tecnología, el ensamblador dejó de ser una preeminencia competitiva y Sawyer optó por retirarse del explicación activo.


Su última gran contribución fue supervisar RollerCoaster Tycoon Classic, una adecuación para móviles que requirió reescribir el solaz desde cero en un jerigonza de stop nivel como C++. Irónicamente, este proceso tomó más tiempo que el explicación flamante en ensamblador, y tuvo que ser realizado por un equipo sereno.
Aunque Sawyer se retirase de la secuencia, su obra vive gracias a comunidades como OpenRCT2, que han adaptado y expandido el código flamante para hacerlo compatible con sistemas modernos y añadir nuevas funcionalidades. En YouTube, creadores como Marcel Vos siguen explorando los límites del solaz con diseños de montañas rusas imposibles y experimentos fascinantes.
El propio Sawyer, siempre modesto, ha dicho que no descarta retornar a crear otro solaz, pero que no siente la misma privación de ayer. Para él, el objetivo siempre fue simple: "crear poco divertido".
Imagen | RollerCoaster Tycoon
En Genbeta | En 'Star Wars' igualmente se programaba: este es el jerigonza que usaban en la Destino de la Crimen
Compartir este artículo
Consultoria Personalizada
¡Si aun no tienes presencia en internet o
necesitas ayuda con tus proyectos, por favor, escribenos!