[WIP] Герои Мата и Меха
Попытка переписать известный в узких кругах текстовый квест «Герои Мата и Меха» на Rust. Ещё не закончено!
Оригинальная версия «Героев Мата и Меха» была написана в 1998-м году на Borland Pascal 7.0 под MS-DOS.
В 2012-м году появился порт на JavaScript, но у него есть свои недостатки.
Хотелось переписать игру с нуля, переосмыслив архитектуру, сделав её более портабельной и более async-friendly, ну и вообще чтобы красивенько было. Так в 2020-м году началась работа над тем, что ты сейчас читаешь.
На данный момент предварительные версии доступны на:
- Windows/macOS/Linux (через командную строку)
- iOS
- Android
- Web (через WASM)
А когда будет готово?
Не знаю. Возможно, никогда.
Структура репозитория
mmheroes-core-rs
— движок квеста, написанный на Rust + сишный FFI к нему. Спроектирован таким образом, чтобы его можно было использовать независимо от способа рендеринга, будь тоncurses
в терминале илиUIView
в iOS. Более того, поддерживаетno_std
, что теоретически позволяет использовать его в embedded-окружениях, например, на микроконтроллере или в ядре операционной системы. Не то чтобы в этом была цель, просто хотелось удостовериться в максимальной портабельности :)mmheroes-rs
— приложение для терминала, используетncurses
для рендеринга на Linux/macOS и PDCurses для рендеринга на Windows.mmheroes-ios
— приложение для iOS, состоит из графической части и обвязки FFI движка на Свифте. Намеренно сделано максимально тупым способом, без архитектурных излишеств.
Как собирать
Здесь инструкции для программистов. Если ты просто хочешь поиграть, то пока рано — разработка ещё в процессе (и пока не близится к завершению). Поиграй лучше в JS-версию.
Тулчейн для сборки программ на Rust можно взять здесь.
Приложение для терминала собирается с помощью Cargo (пакетного менеджера для Rust):
git clone https://github.com/mmheroes/mmheroes.git
cd mmheroes
cargo run
Приложения для iOS собирается с помощью Xcode. Но нужны некоторые дополнительные шаги:
- Убеждаемся, что установлен Rust.
- Устанавливаем тулчейны Rust с поддержкой сборки под iOS:
rustup target add aarch64-apple-ios armv7-apple-ios armv7s-apple-ios x86_64-apple-ios i386-apple-ios
- Устанавливаем
cargo-lipo
. Это утилита, позволяющая создавать универсальные бинарники для iOS.cargo install cargo-lipo
- Открываем проект Xcode и собираем, проблем быть не должно. Проблемы всё же есть? Смело открывай issue.