Sobre o projeto
openttdrs é um simulador de transporte inspirado em OpenTTD, implementado em Rust com um cliente gráfico baseado em Bevy. O projeto segue uma filosofia de desenvolvimento incremental, garantindo que sempre exista uma versão jogável enquanto se trabalha para alcançar a paridade com o original, com desvios documentados.
**Características principais:**
- **Core de Simulação:** Gerenciamento de mapa, ticks, comandos, simulação de estradas e ferrovias, sinais parciais (PBS), economia e salvamento de jogos (JSON e import/export .sav).
- **Cliente Bevy:** Visualização isométrica usando assets OpenGFX, menus, toolbar e UI. Suporta modos de servidor e cliente.
- **Rede:** Protocolo TCP lockstep para multijogador e um binário de servidor dedicado.
- **NewGRF:** Suporte parcial para catálogos Action0/3/5 e execução, com matrizes documentadas de propriedades e callbacks.
- **Geração de Mapas:** Alinhamento recente com fases de OpenTTD (paisagem, cidades, indústrias) para sementes específicas, embora a generalização ainda esteja em andamento.
**Requisitos e Uso:**
Requer Rust 1.98+ e bibliotecas nativas de janela/áudio. Os assets gráficos e de som estão versionados no repositório, permitindo executar `cargo run` diretamente sem downloads adicionais ou scripts de preparação. A primeira execução materializa localmente os PNGs necessários a partir do atlas incluído.
**Estado do Projeto (Alpha):**
Atualmente na versão `0.1.0-alpha.1`. Inclui marcos como o MVP de rede (I8), migração de host, editor básico, GameScript-lite e uma IA rival (TransCargo). A paridade total em renderização raster, suporte completo a NewGRF e fidelidade de saves ainda está em desenvolvimento, com divergências documentadas em matrizes canônicas.
**Desenvolvimento e CI:**
O projeto possui uma infraestrutura robusta de CI/CD, incluindo testes de formatação, clippy, documentação, auditoria de segurança (cargo-audit/deny), testes de fuzzing determinístico e cobertura de código. `sccache` é recomendado para otimizar compilações locais.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.