Mastodon
← Todas las entradas
por Casey Jones Labs · 9 min de lectura

Construyendo SkyChart: cómo una carta de amor a Aerobiz se convirtió en un simulador de aerolíneas completo

devlogskychartbehind-the-scenes
Este artículo fue traducido automáticamente del inglés. Leer el original
Tabla de contenidos

Hay un juego de 1992 que nos arruinó. Aerobiz Supersonic en la SNES no tenía por qué ser tan adictivo como resultó. Comprar slots de aeropuerto en Lagos, esquivar crisis del petróleo, ver cómo tus pequeños sprites de avión se arrastraban por un globo pixelado mientras tramabas la dominación mundial, un hub a la vez.

Nadie ha hecho un sucesor propiamente dicho. Así que decidimos construir uno.

SkyChart: Airline Executive es nuestra respuesta. Un simulador retro-moderno de gestión de aerolíneas construido en Godot 4, que abarca 90 años de historia de la aviación, desde la era dorada de los hidroaviones hasta la era del A380. Hoy corremos el telón para mostrar cómo se armó todo esto.


El concepto: “¿Y si Aerobiz tuviera una UI moderna?”

La fantasía central es simple: eres el CEO de una aerolínea incipiente, compitiendo contra rivales de IA en cuatro eras históricas (de 1930 a 2020). Eliges rutas, compras aviones, inviertes en ciudades, manejas diplomacia con regiones del mundo e intentas no quebrar cuando la OPEP decide arruinarle el trimestre a todo el mundo.

Pero donde Aerobiz te daba menús y texto, nosotros queríamos un mapa del mundo vivo. Trazos de círculo máximo, radar meteorológico, ciclos día/noche, animaciones de auge urbano y sprites de aeronaves que se inclinan al girar. El tipo de cosa que te hace recostarte en tu silla y pensar: “Sí, yo construí esta red”.

El ambiente al que llegamos: retro de alta tecnología. Líneas con brillo neón sobre un mapa oscuro. Botones hexagonales en el HUD. Un ticker de noticias que podría haber salido de una terminal Bloomberg de los 90. UX moderna envuelta en ese inconfundible encanto de la era SNES.

El mapa del mundo de noche con líneas de ruta neón entrecruzando el globo mientras sprites de aeronaves trazan rutas de círculo máximo entre ciudades La vista global: tu red aérea de un vistazo. Cada línea brillante es una ruta. Cada punto en movimiento es ingreso.


150 ciudades, 33 aeronaves, 90 años de historia

Hablemos de escala. SkyChart trae:

  • 150 ciudades en 7 regiones del mundo (más la Rusia posterior a 1991), cada una con datos reales de población, perfiles económicos y curvas estacionales de demanda. Tokio se dispara en la temporada de los cerezos en flor. Miami despega en invierno. Calcuta tiene su pico durante Durga Puja.
  • 33 aeronaves históricamente precisas, desde el Douglas DC-3 (1936) hasta el Boeing 787 Dreamliner. Cada una tiene alcance, velocidad, capacidad, costos operativos y año de retiro auténticos. Vuela un DC-3 hasta la era del jet y verás cómo los costos de mantenimiento te comen vivo.
  • 60+ eventos históricos que reconfiguran el tablero. La Gran Depresión hunde la demanda. La Segunda Guerra Mundial bombardea Londres y Berlín (literalmente, vas a tener que reconstruir esos aeropuertos). La crisis del petróleo de 1973 duplica tus costos de combustible de la noche a la mañana. El COVID-19 aparece en la Era 4 y, bueno… ya te acuerdas.
  • 4 eras jugables, cada una con objetivos más exigentes. La Era 1 te pide sobrevivir con aviones de hélice y 5 millones de dólares. La Era 4 pide un imperio de 2 mil millones que abarque las siete regiones.

Cada era se siente como un juego distinto. El cálculo estratégico de una red de hidroaviones de los años 30 no se parece en nada a la guerra despiadada de hub-and-spoke de los años 90.

Pantalla de selección de era mostrando cuatro eras históricas con sus objetivos y condiciones iniciales Elige tu era: cada una es un juego distinto, con diferentes aeronaves, eventos y condiciones de victoria.

Un aviso emergente de evento histórico anunciando la pandemia de COVID-19 La historia no se repite, pero sí te sube los costos de combustible.


La IA que de verdad te responde

Una cosa con la que nos negamos a lanzar fue una IA sin cerebro. Las aerolíneas rivales de SkyChart no solo se expanden al azar. Tienen regiones de origen, selección ponderada de rutas basada en datos de población y economía, ajustes trimestrales de precios, actualizaciones de flota cuando se retiran aviones y estrategias de inversión en hubs.

Te bajan los precios en rutas disputadas. Te compran slots en ciudades que tenías en la mira. Incluso arriendan aviones cuando andan cortas de efectivo, igual que lo haría una aerolínea de bajo costo real.

Y en la Era 4, si ya construiste un imperio contra el que no pueden competir, podrían convertirse en un objetivo de adquisición. Una adquisición hostil por era. Sus rutas, sus slots y sus hubs, todo tuyo. Por un precio.

El panel de Inteligencia Competitiva mostrando la expansión de aerolíneas rivales en distintas regiones Conoce a tu enemigo: el panel de Intel rastrea cada movimiento de los rivales en las siete regiones.


La cabina: una UI que no pelea contra ti

Si alguna vez jugaste un sim de gestión donde la UI era el verdadero jefe final, sabes el dolor. Hemos invertido una cantidad poco razonable de tiempo en asegurarnos de que la interfaz de SkyChart sea algo que quieras usar.

Cada panel es una ventana arrastrable y redimensionable. Gestor de Rutas, Resumen de Flota, Asesor Estratégico, Inteligencia de Ciudades, Intel Competitivo, Reproductor de Música. Arrástralos donde quieras. Cámbiales el tamaño. El juego recuerda tu disposición entre sesiones.

El Asesor Estratégico es tu copiloto de IA. Escanea cada par de ciudades posible en el mundo (son 11.175 combinaciones), las clasifica por ganancia proyectada y te sirve las mejores oportunidades en bandeja. Corre sobre un pool de hilos en segundo plano, hasta 8 hilos de trabajo, así que nunca congela el juego, ni siquiera cuando procesa miles de rutas.

El soporte completo de mando fue una adición tardía que se volvió un proyecto de pasión. Los controles de Xbox, PlayStation y Switch funcionan de forma nativa. Un cursor virtual te permite seleccionar ciudades en el mapa con el stick derecho. Un menú radial (mantén LB) te da acceso instantáneo a cada panel. Cada ventana responde a B para cerrar. Incluso construimos una Guía de Controles gráfica con widgets de tapa de tecla y glifos de botón.

Ah, y hay un reproductor de música integrado. Tres fuentes: la banda sonora del juego acorde a la era (44 pistas que van del jazz a la electrónica moderna), tu biblioteca de música local, o integración con Spotify vía OAuth. Porque qué gracia tiene dirigir una aerolínea sin una buena playlist.

Varias ventanas arrastrables abiertas con el Gestor de Rutas, el Panel de Ciudad y el Asesor Estratégico acomodados sobre el mapa Tu cabina, tu disposición. Cada panel es arrastrable, redimensionable y recuerda dónde lo dejaste.

El panel del Asesor Estratégico mostrando rutas recomendadas clasificadas por ganancia proyectada El Asesor Estratégico procesa 11.175 pares de ciudades para que tú no tengas que hacerlo.

Guía de entrada de mando mostrando todas las asignaciones de botones del gamepad Soporte completo de mando: cada botón asignado para una gestión aérea cómoda desde el sillón.


Bajo el capó: una historia de amor en GDScript

SkyChart está construido enteramente en Godot 4 con GDScript 2.0. Sin C#, sin módulos de C++. Todo, desde el motor de economía de rutas hasta el renderizador del mapa por tiles, es GDScript puro.

Algunos puntos destacados del lado de la ingeniería:

Hilos por todos lados. Los cálculos económicos mensuales, las recomendaciones de rutas y la expansión de la IA corren todos en hilos de trabajo. El juego se mantiene fluido incluso procesando más de 2.000 rutas entre cuatro aerolíneas rivales.

Un gestor de ventanas de verdad. WindowManager es un singleton autoload que maneja el apilado foco-hacia-adelante (haces clic en una ventana y salta arriba), persistencia de posición/tamaño a disco y dimensionamiento adaptativo a la pantalla. Tres niveles: Normal (paneles de juego), Modal (ajustes, guardar/cargar) y HUD (siempre arriba).

Tiles de mapa estilo OSM. Acercas el zoom a cualquier región y los tiles de mapa de alto detalle se cargan dinámicamente. Pooling de sprites, caché de texturas LRU, caché en disco y descarga en línea. Tres estilos: Retro Dark (por defecto), Satelital y Clean Vector.

Rutas de círculo máximo con esquiva de clima. Las rutas siguen interpolación esférica para precisión geográfica y rodean dinámicamente los sistemas de tormentas en el mapa. Los sprites de avión se inclinan al girar y proyectan sombras al suelo. Son muchas matemáticas para algo cosmético, pero hacen que el mundo se sienta real.

Ruteo por círculo máximo en acción: los aviones siguen trayectorias curvas realistas por el globo Ruteo por círculo máximo en acción: los aviones siguen trayectorias curvas realistas y esquivan sistemas meteorológicos.

El mapa con zoom a una región mostrando el estilo de tile Retro Dark con detalles en neón Acerca el zoom y los tiles estilo OSM cargan al vuelo. Tres estilos de mapa a elección.


El juego de los números: economía de rutas

En el corazón de SkyChart hay un modelo económico del que estamos genuinamente orgullosos. Cada ruta calcula su ganancia mensual a través de un pipeline que considera:

  • Demanda base (población de la ciudad x multiplicador económico)
  • Variación estacional (12 multiplicadores mensuales por ciudad)
  • Bonos de inversión (hoteles, campos de golf, salas de concierto, parques temáticos)
  • Diplomacia regional (mejores relaciones = más demanda)
  • Modificadores de evento (guerras, crisis del petróleo, pandemias)
  • Reputación (historial de seguridad y servicio al cliente afectan la demanda globalmente)
  • Competencia (la demanda se reparte por puntaje de atracción, precio, lealtad y presencia en el hub)
  • Edad de la aeronave (aviones pasados de su año de retiro cuestan un +40% operar y pierden un 15% de demanda)
  • Precios de combustible (los eventos OPEP pueden duplicar tus costos variables de la noche a la mañana)

El resultado es un sistema en el que no hay dos rutas que se jueguen igual, y la red óptima en 1935 no se parece en nada a la red óptima en 2005.

El Reporte Financiero Trimestral mostrando ingresos, gastos y un gráfico de ganancia acumulada Cada trimestre, los números cuentan la historia. ¿Esa caída en Q3? Pasó la OPEP.

Dashboard de Desempeño de Rutas mostrando las rutas clasificadas por ganancia con datos de tendencia Desempeño de Rutas: cada ruta clasificada por ganancia con sparklines de tendencia. Verde es bueno. Rojo significa que toca tomar decisiones duras.


Qué sigue

Actualmente estamos en v0.2.17, que en el versionado de SkyChart significa que vamos profundo en el pulido de la Fase 16+. El juego central está completo y es muy jugable. Esto es lo que está en la pista:

  • Efectos de sonido de UI y paisaje sonoro ambiental: clics de botón, silbidos de panel, ambiente de aeropuerto
  • Tutorial de primer uso: un recorrido guiado de 12 capítulos para que los nuevos jugadores no tengan que aprender estrellándose (financieramente, no literalmente… aunque también literalmente)
  • Preparación para lanzamiento en Steam: página de la tienda, integración de logros, saves en la nube

Venimos construyendo SkyChart con la filosofía de que los sims de gestión merecen el mismo cariño de UI que reciben los juegos de acción. Cada tooltip, cada animación, cada detalle de calidad de vida existe porque nos preguntamos: “¿Qué nos haría a nosotros no querer usar alt-tab?”


Sigue el viaje

SkyChart está siendo desarrollado por Casey Jones Labs, un pequeño estudio con un gran amor por los juegos que nos formaron. Si creciste debatiendo si abrir una ruta a Anchorage o invertir en un parque temático en Honolulu, este juego es para ti.

Sigue atento a más dev blogs, y mantén las mesitas plegables en posición vertical.

El equipo de Casey Jones Labs

El menú principal de SkyChart con aviones animados cruzando el mapa de fondo SkyChart: Airline Executive, llegando a Steam para Windows, macOS y Linux. Construido con Godot 4.