Свободная реализация движка Hard Truck 2 / «Дальнобойщики 2» (King of the Road) на Rust и wgpu. Цель: 1:1 совместимость с оригиналом, как у openOMSI для OMSI 2.
Проект независимый и неофициальный. Он не содержит кода и ассетов игры и не связан с её правообладателями. Для запуска нужна ваша лицензионная копия игры. Форматы разбираются clean-room, по файлам данных.
Ранняя стадия. Сейчас готово:
-
ht2-formats:.RES(141/141 файлов Steam-версии),.way(41/41),.b3d(45/45), текстуры.txr(3D-вариант),vehicle.tech -
ht2-tool:res-ls,way-ls,b3d-ls,txr-png(экспорт текстур в PNG) -
ht2-view: просмотрщик моделей на wgpu (орбитальная камера, снимки в PNG) -
ht2-game: управляемый прототип. машина целиком работает на коде, перенесённом из оригинала и сверенном с ним на эмуляторе (конструктор и шаг физики: двигатель, коробка, шины, подвеска, кузов); столкновения со сценой пока заменены сеткой дорожных треугольников -
ht2-sim: перенос физики оригинала по функциям с проверкой на эмуляторе (двигатель, коробка, фильтры,TechSystem, ввод, инициализация) - террейн (
terrain*.raw), сборка мира из локаций -
SDTE-скрипты (.sch,GAME.CNF): расшифровка и читатель S-выражений - разбор содержимого скриптов (товары, миссии, расстановка), UI-текстуры
- дорожная сеть
.wayи водитель машин ИИ (SecondCar), перенесённые из оригинала; машины ИИ ездят по дорогам (HT2_TRAFFIC=N— сколько их, по умолчанию 8) - машины ИИ видят друг друга: дистанция, перестроения, разворот
- маршруты и расстановка ИИ как в оригинале, задания, торговля, звук
Подробности: docs/FORMATS.md.
cargo build --release
cargo run --release -p ht2-tool -- res-ls "<папка игры>/ENV/aa.res"
cargo run --release -p ht2-tool -- way-ls "<папка игры>/ENV/aa.way"
cargo run --release -p ht2-tool -- txr-png "<папка игры>/ENV/aa.res" out/
cargo run --release -p ht2-view -- "<папка игры>/ENV/aa.b3d" --only Combinat
Игровой прототип: cargo run --release -p ht2-game (папку игры можно указать первым аргументом; без него берётся HT2_GAME или папка «Hard Truck 2 King of the Road» рядом с текущей или выше). Карта по умолчанию — ENV: весь открытый мир из 39 районов, старт и машина берутся из GAME.CNF (аэропорт, ЗИЛ); для отдельной локации — --map MENV/dr --truck Kamaz. Управление: W/S или стрелки — газ и тормоз (тормоз на месте включает задний ход), A/D — руль, пробел — тормоз, C — вид из кабины или сзади, R — вернуть на старт, Esc — выход. Внизу справа скорость, передача, обороты и топливо (временный интерфейс со встроенным шрифтом, пока не перенесён интерфейс оригинала); --cab делает снимок из кабины.
Снимок без окна (--shot файл.png --seconds N) едет на перенесённом водителе ИИ (HT2_WEAVE=1 — по-старому: газ в пол и покачивание рулём).
В просмотрщике: левая кнопка мыши вращает камеру, колесо приближает. Параметры --shot файл.png (снимок без окна), --yaw, --pitch, --size ШxВ.
Структуры форматов частично сверены с MIT-описаниями reRNR/RNRFileFormats. Код написан независимо.
Папка site/ публикуется на GitHub Pages workflow-ом .github/workflows/pages.yml.
В настройках репозитория: Settings → Pages → Source: GitHub Actions.
AGPL-3.0-only (как у openOMSI). Текст лицензии — в файле LICENSE.