3 min de lectura

Un simulador en Rust modela una economía espacial que se ejecuta sola

El proyecto de código abierto de Kalcode en Rust y Bevy simula cientos de naves, estaciones, mercados y facciones en un único binario nativo.

Imagen: Hacker News

The Space Project es un simulador de economía espacial de código abierto construido en Rust con Bevy 0.18, y está diseñado para funcionar en gran medida por sí solo. Creado por Kalcode (David Clausen) y publicado bajo la licencia MIT, el proyecto simula una economía viva con cientos de naves autónomas que comercian, extraen recursos, transportan carga, aceptan contratos, se quedan sin combustible y, a veces, quiebran.

No hay una historia guionizada ni un objetivo explícito para el jugador. En su lugar, el usuario actúa como observador —o como administrador con controles de modo dios— mientras las naves, las instalaciones, las facciones y las poblaciones reaccionan a las condiciones del mercado y entre sí. Clausen dice que los precios no están fijados en ningún sitio; las estaciones usan un mercado de libro de órdenes y un modelo de cobertura con multiplicadores de urgencia por escasez para fijar el precio de 13 mercancías.

A nivel de simulación, cada nave es un agente autónomo con sus propios créditos, tripulación, combustible, bodega de carga y un planificador GOAP que puede elegir entre comerciar, repostar, descansar, reacondicionar o aceptar contratos. Las instalaciones pueden ejecutar cadenas de producción, degradarse, autorrepararse, subir de nivel de 1 a 10 y ser abandonadas si se quedan sin fondos. Las poblaciones consumen alimentos y combustible, generan mano de obra y migran cuando el sentimiento colapsa, mientras que las facciones recaudan impuestos, otorgan subsidios y financian nueva construcción donde persisten las escaseces.

En este momento, Clausen dice que la simulación funciona con unos ~485 agentes activos: 282 naves, 93 instalaciones, 27 poblaciones, 8 facciones y 60 cuerpos celestes. Los tiempos de tick están en p50 ≈ 10–20 ms dentro de un presupuesto de 125 ms, y la arquitectura está pensada para escalar hacia más de 100.000 entidades.

La base de código comenzó como un prototipo en Elixir/Phoenix, pero Clausen lo reescribió en Rust después de que el planificador BEAM tuviera problemas en PCs de juego con Windows. La arquitectura resultante gira en torno a sim_core, un motor Rust puro, sin IO y sincrónico. El front-end client_bevy incrusta esa simulación directamente, permitiendo que el renderizador y la simulación compartan el mismo mundo ECS sin necesidad de marshalling.

Recomendado

Meta añade Xbox Game Pass a Horizon+

El proyecto está dividido en cinco crates:

  • sim_core para la lógica de simulación, GOAP, economía y contratos
  • sim_db para persistencia en SQLite mediante sqlx
  • sim_server para controladores HTTP y WebSocket en modo sin interfaz (headless)
  • sim_protocol para los tipos de mensaje de WebSocket
  • client_bevy como el binario principal con Bevy 0.18 y egui

Clausen describe la publicación más como una base sólida que como un juego acabado. Escribe que no lo está impulsando hacia algo «listo para lanzar», pero lo publicó porque los sistemas subyacentes son sólidos y podrían ser reutilizados, ampliados o convertidos en algo más grande por otros. La licencia lo deja explícito: «Haz con él lo que quieras.»

El proyecto es compatible con macOS, Windows y Linux, guarda partidas en SQLite, se reanuda desde el tick exacto en que se dejó y incluye un modo headless para CI y uso scriptado. Antes de enviar cambios, se pide a los colaboradores que ejecuten make verify, que comprueba compilaciones, unas ~250 pruebas y clippy con ajustes estrictos.

La versión actual está marcada como experimental, pero incluso ahora condensa una pretensión sorprendentemente ambiciosa en un único binario nativo sin dependencias en tiempo de ejecución.

Maya Lindqvist

Culture Editor

Maya explores gaming, streaming, and the internet as a place where people actually live. From deep-dives into creator economies to the anthropology of digital communities, she tracks platform drama and cultural shifts so you don't have to. She believes the best tech stories are fundamentally about human behavior.

vía Hacker News

// Sigue leyendo