Hochperformanter Editor fuer AutoDrive-Kurse in Farming Simulator 25, geschrieben in Rust.
Der originale AutoDrive Course Editor (JavaScript/Electron) von KillBait wird bei grossen Karten mit 10'000+ Wegpunkten bei mir langsam. Dieser Editor nutzt GPU-Rendering fuer fluessiges Arbeiten auch bei sehr grossen Kursnetzwerken.
- Laden & Speichern von AutoDrive-Configs (FS25 XML-Format)
- GPU-Rendering via wgpu mit Instancing – 100k+ Nodes fluessig
- Spatial Index (KD-Tree) fuer schnelle Punkt-Abfragen
- Map-Hintergrund – DDS/PNG/JPG als Uebersichtskarte
- Uebersichtskarten-Generierung – Erzeugt vollstaendige Map-Uebersichten direkt aus Map-Mod-ZIPs (Terrain, Farmlands, POIs), Layer einzeln konfigurierbar
- Auto-Detection – Erkennt nach dem Laden automatisch Heightmap und passende Map-Mod-ZIPs im Mods-Verzeichnis (Umlaut-tolerantes Fuzzy-Matching)
- Heightmap-Support – 8/16-Bit PNG, automatische Hoehenrekonstruktion beim Speichern
- Duplikat-Erkennung – Findet und bereinigt doppelte Wegpunkte
- Distanzen-Neuverteilung – Catmull-Rom-Spline-basierte gleichmaessige Neuverteilung von Wegpunkten (nach Abstand oder Anzahl)
- Route-Tools – Kurven (Bézier), Splines (Catmull-Rom) und Geraden mit Tangenten-Ausrichtung und Verkettung
- Cross-Platform – Native Binaries fuer Linux und Windows
Fertige Binaries findest du unter Releases.
| Plattform | Datei |
|---|---|
| Linux x64 | FS25-AutoDrive-Editor_x64_linux |
| Windows x64 | FS25-AutoDrive-Editor_x64_windows.exe |
- Rust (stabile Toolchain, Workspace auf Edition 2024)
- Linux: GPU-Treiber mit Vulkan-Support
# Ubuntu/Debian: benoetigte System-Libraries
sudo apt install libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev \
libxkbcommon-dev libssl-dev# Release-Build
cargo build --release -p FS25-AutoDrive-Editor --bin FS25-AutoDrive-Editor
# Starten
cargo run --release -p FS25-AutoDrive-Editor --bin FS25-AutoDrive-Editor
# Gesamten Workspace pruefen
cargo fmt --all -- --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspaceBenoetigt cargo-xwin:
cargo install cargo-xwin
rustup target add x86_64-pc-windows-msvc
cargo xwin build --release --target x86_64-pc-windows-msvcOder via Makefile:
make # Release: Linux + Windows
make linux-release # Nur Linux
make windows-release # Nur Windows- Datei oeffnen:
Datei → OeffnenoderStrg+O– eine AutoDrive XML-Config laden - Navigieren: Mausrad zum Zoomen, Rechtsklick + Ziehen zum Verschieben
- Hintergrundkarte:
View → Hintergrund laden– eine overview.dds/png/jpg laden - Bearbeiten: Punkte auswaehlen, verschieben, verbinden, loeschen
- Speichern:
Strg+S– Hoehen werden automatisch aus der Heightmap rekonstruiert
Ausfuehrliche Anleitung: docs/howto/index.md
| Crate | Aufgabe |
|---|---|
FS25-AutoDrive-Editor |
Root-Fassade und nativer Launcher |
fs25_auto_drive_engine |
Host-neutrale Engine (app, core, shared, xml) |
fs25_auto_drive_host_bridge |
Toolkit-freie Host-Bridge-Core-Crate ueber der Engine |
fs25_auto_drive_host_bridge_ffi |
Linux-first-C-ABI-Adapter ueber HostBridgeSession und den nativen Shared-Texture-/v4-Transportpfaden |
fs25_auto_drive_render_wgpu |
Host-neutraler wgpu-Renderer-Kern |
fs25_auto_drive_frontend_egui |
Desktop-Frontend (ui, editor_app, runtime, render als Host-Adapter) |
fs25_map_overview |
Overview-, Terrain- und Farmland-Generierung |
Die Root-Crate fs25_auto_drive_editor bleibt als Kompat-Fassade erhalten und re-exportiert die kanonischen Engine-Module weiterhin fuer Tests, Benches und bestehende Rust-Imports.
Direkte Flutter-/FFI-Consumer nutzen fs25_auto_drive_host_bridge ohne separate Zwischen-Crate; bestehende Engine*-/FlutterBridgeSession-Namen stehen dort weiterhin als Kompat-Aliase bereit.
Native C/C++- oder Flutter-FFI-Hosts konsumieren die stabile Session-/Render-Surface ueber fs25_auto_drive_host_bridge_ffi und den Header crates/fs25_auto_drive_host_bridge_ffi/include/fs25ad_host_bridge.h.
Detaillierte Beschreibung: docs/ARCHITECTURE_PLAN.md
cargo test # Tests
cargo clippy # Linter
cargo fmt # Formatierung
./scripts/check_layer_boundaries.sh # Layer- und Architektur-Guardrails
./scripts/check_api_docs_sync.sh # API-/Doku-Sync-Guardrails
cargo bench # Benchmarks| Zweck | Crate |
|---|---|
| UI | egui / eframe |
| Rendering | wgpu |
| XML | quick-xml |
| Spatial Index | kiddo (KD-Tree) |
| Bildverarbeitung | image |
| Map-Uebersicht | fs25_map_overview (integriertes Crate) |
| Mathe | glam |
| Pattern-Matching | regex |
- AutoDrive von Stephan S. – Die Grundlage fuer das XML-Format und die Wegpunkt-Logik
- grleconvert von Paint-a-Farm – Konvertierung von GIANTS-Engine
.grle-Dateien - GRLE/GDM-Parsing basiert auf
grleconvertvon Kim Brandwijk (MIT-Lizenz) und Erkenntnissen der FS-Modding-Community - Die Uebersichtskarten-Generierung (
fs25_map_overviewCrate) dekodiert GIANTS-eigene GDM/GRLE-Formate fuer Farmland-Grenzen und Terrain-Daten
GPL-3.0 – siehe LICENSE.
Dein Feedback, Issues und Pull Requests sind willkommen! Ich freue mich über Verbesserungen und Anregungen. Erstelle gerne ein Issue oder einen Pull Request.
Sprache / Language: Meine Muttersprache ist Deutsch. Ich verstehe Englisch, aber eine umfangreiche Unterhaltung auf Englisch faellt mir schwer. Issues und Kommentare auf Deutsch sind willkommen – English is fine too for short messages.