Skip to content

About

a program to make an economic system in Run8

Resources

Stars

1 star

Watchers

1 watching

Forks

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚂 Run8Economy — Sistema Económico para Run8

Run8Economy es un addon de gestión económica desarrollado para el simulador ferroviario norteamericano Run8.

Run8 es conocido por ser un "sandbox" extremadamente realista pero carente de un sistema de progresión o incentivos económicos. Este programa llena ese vacío, permitiendo a los conductores "cobrar" por sus servicios, gestionar finanzas y dar un propósito de negocio a cada movimiento de vagones y locomotoras.


📜 Contexto y Aprendizaje (Pre-42)

Este proyecto fue desarrollado en una etapa pre-42, representando mis primeros pasos serios con C++.

Arquitectura "Logic-in-Headers"

Una característica notable de este código es que la mayor parte de la lógica de negocio se encuentra desarrollada directamente en los archivos .hpp. En aquel momento, ante el desconocimiento de las convenciones estándar de separación entre interfaces (.hpp) e implementaciones (.cpp), utilicé los headers como módulos completos. Aunque no es la práctica convencional en C++, permitió una estructura modular que facilitó el desarrollo asistido por IA en aquel entonces.


🛠️ Cómo Funciona el Sistema

El programa actúa como un procesador de datos que interpreta el estado del mundo de Run8 y lo traduce en transacciones financieras.

1. Ingesta de Datos (XML Parsing)

Run8 genera archivos XML detallados que contienen la ubicación exacta y el estado de cada componente del mundo (vías, locomotoras, vagones e industrias). Run8Economy lee estos archivos para obtener una "foto" del estado actual de tu sesión.

2. Detección de Trabajo mediante Etiquetas (Tags)

El núcleo de la lógica se basa en las etiquetas de las locomotoras y vagones. El programa escanea el XML buscando:

  • Locomotora Activa: Identifica qué tren está operando el usuario.
  • Etiquetas de Destino/Trabajo: Lee los tags que el usuario asigna en el simulador.
  • Ubicación Geográfica: Compara las coordenadas de los activos con la base de datos de industrias y espuelas (spurs) del mundo de Run8.

3. Cálculo de Baremos y Pagos

Dependiendo del tipo de tarea detectada, el programa aplica diferentes fórmulas de pago (Switching, Local Hauls, Long Haul). La recompensa varía según la distancia recorrida, el tipo de carga y la precisión en la entrega.


⚙️ Configuración de Rutas XML

Para que el programa pueda calcular tus ganancias, necesita saber dónde guarda Run8 la información de tu mundo actual.

Localización de archivos en Run8

Normalmente, Run8 guarda los archivos de sesión en una ruta similar a: C:\Run8TrainSimulatorV3\Content\V3Sessions\Ruta_Especifica\Nombre_Sesion\World.xml

Cómo configurar la ruta en el programa

Dado que la lógica reside en los archivos de cabecera, tienes dos formas de configurar la ruta:

  1. Archivo de Configuración (si existe config.txt): Abre el archivo de configuración en la carpeta del ejecutable y pega la ruta completa hacia tu archivo World.xml o CurrentWorld.xml.

  2. Modificación en el Código (.hpp): Si vas a recompilar el proyecto con VS Code, busca en los archivos .hpp (normalmente en el encargado de la gestión de archivos o el main) la variable de tipo string que define la ruta del XML:

    // Ejemplo de lo que buscar en el .hpp
    std::string xmlPath = "C:/Ruta/A/Tu/Run8/World.xml";

    Cambia esa cadena por tu ruta real, guarda y compila.

Nota: Es fundamental que el archivo XML esté actualizado. Se recomienda hacer un "Save" en Run8 justo antes de ejecutar Run8Economy para que los datos reflejen tu posición y tags actuales.


🚀 Características Técnicas

  • Lenguaje: C++ (97.1%).
  • Entorno de Desarrollo: Compilado originalmente con Visual Studio Code (MSVC/MinGW).
  • Interfaz: Basada en texto (Consola).
  • Persistencia: Capacidad para guardar el balance acumulado entre sesiones.

💻 Ejecución

El proyecto está diseñado para ejecutarse mediante un archivo .exe ya compilado.

  1. Asegúrate de tener Run8 en ejecución y haber guardado la sesión.
  2. Configura la ruta del XML según las instrucciones anteriores.
  3. Ejecuta Run8Economy.exe.
  4. El programa procesará los tags y te mostrará el desglose de ingresos en la consola.

📈 Reflexión

Mirando hacia atrás, Run8Economy fue el proyecto que me enseñó la importancia del parseo de datos y cómo una herramienta externa puede transformar la experiencia de un software cerrado. Aunque hoy aplicaría patrones de diseño más estrictos aprendidos en 42, la lógica de cálculo y la integración con los XML siguen siendo el motor fundamental de este addon.

About

a program to make an economic system in Run8

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages