Об этом проекте
openttdrs — это симулятор транспорта, вдохновленный OpenTTD, реализованный на Rust с графическим клиентом на основе Bevy. Проект следует философии итеративной разработки, обеспечивая наличие играбельной версии на каждом этапе, пока не будет достигнута полная совместимость с оригиналом. Документированные отклонения помогают отслеживать прогресс.
**Ключевые особенности:**
- **Ядро симуляции:** Управление картой, тиками, командами, симуляция дорог и железных дорог, частичная поддержка сигналов (PBS), экономика и управление сохранениями (JSON и импорт/экспорт .sav).
- **Клиент Bevy:** Изометрический вид с использованием ресурсов OpenGFX, меню, панель инструментов и пользовательский интерфейс. Поддержка режимов сервера и клиента.
- **Сеть:** Протокол TCP lockstep для многопользовательской игры и отдельный бинарный файл сервера.
- **NewGRF:** Частичная поддержка каталогов Action0/3/5 и выполнения во время игры, с документированными матрицами свойств и обратных вызовов.
- **Генерация карт:** Недавняя синхронизация с фазами генерации OpenTTD (ландшафт, города, индустрии) для конкретных семян, хотя общая генерализация еще не завершена.
**Требования и использование:**
Требуется Rust 1.98+ и нативные библиотеки для окон и звука. Графические и звуковые ресурсы включены в репозиторий, что позволяет запускать `cargo run` без дополнительных загрузок или скриптов подготовки. При первом запуске локально материализуются необходимые PNG из включенного атласа.
**Статус проекта (Альфа):**
Версия `0.1.0-alpha.1`. Достигнуты вехи, такие как MVP сети (I8), миграция хоста, базовый редактор, GameScript-lite и ИИ-соперник (TransCargo). Полная совместимость по рендерингу, полная поддержка NewGRF и точность сохранений еще находятся в разработке, с документированными расхождениями в канонических матрицах.
**Разработка и CI:**
Проект имеет надежную инфраструктуру CI/CD, включающую проверку форматирования, clippy, документацию, аудит безопасности (cargo-audit/deny), детерминированные тесты фаззинга и покрытие кода. Для оптимизации локальной компиляции рекомендуется использовать `sccache`.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.