Попытка переписать известный в узких кругах текстовый квест «Герои Мата и Меха» на 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 x86_64-apple-ios
-
Если будем собирать проект для устройства (а не для симулятора), нужно будет в каталоге
mmheroes-ios
создать файл с именемDeveloperSettings.xcconfig
и следующим содержимым:DEVELOPMENT_TEAM=<your team ID> ORGANIZATION_IDENTIFIER=<your organization identifier>
DEVELOPMENT_TEAM
— это идентификатор, который можно узнать, залогинившись в Apple Developer Center и открыв раздел "Membership". Team ID — это оно.ORGANIZATION_IDENTIFIER
— это любая строка в reverse-DNS-нотации. Используется для формирования bundle identifier'а. -
Открываем проект Xcode и собираем, проблем быть не должно. Проблемы всё же есть? Смело открывай issue.