প্রকল্প সম্পর্কে

openttdrs is a transport simulation game inspired by OpenTTD, built in Rust with a Bevy-based graphical client. The project follows an incremental development philosophy, ensuring a playable version exists at all times while working toward feature parity with the original via documented cut-offs. **Key Features:** - **Simulation Core:** Handles map management, ticking, commands, road and rail simulation, partial signaling (PBS), economy, and save/load functionality (JSON and .sav import/export). - **Bevy Client:** Provides an isometric view using OpenGFX assets, along with menus, a toolbar, and UI elements. Supports both server and client modes. - **Networking:** Implements TCP lockstep protocol for multiplayer synchronization and includes a dedicated server binary. - **NewGRF:** Offers partial support for Action0/3/5 catalogs and runtime loading, with documented property matrices and callbacks. - **Map Generation:** Recently aligned with OpenTTD's generation phases (landscape, cities, industries) for specific seeds, though generalization is still in progress. **Requirements and Usage:** Requires Rust 1.98+ and native window/audio libraries. Graphical and sound assets are versioned within the repository, allowing direct execution of `cargo run` without additional downloads or setup scripts. The first run materializes local PNG files from the included atlas. **Project Status (Alpha):** Currently at version `0.1.0-alpha.1`. Milestones include a working networking MVP (I8), host migration, a basic editor, GameScript-lite, and a rival AI (TransCargo). Full raster rendering parity, complete NewGRF support, and save fidelity are still under development, with known divergences documented in canonical matrices. **Development and CI:** The project boasts a robust CI/CD pipeline covering formatting, clippy checks, documentation, security audits (cargo-audit/deny), deterministic fuzzing tests, and code coverage. `sccache` is recommended for optimizing local compilation times.