📁 Техническая составляющая проекта содержит три пакета: AI
, TUI
и MAP (генератор карты)
. Точка входа находится в модуле __main__.py
пакета TUI
(на самом деле это не совсем так; точка входа, которая должна начинаться с if __name__ == '__main__'
нужна лишь для запуска .bat
, как альтернативный вариант запуска; в релизной версии точкой входа является функция main()
, которая вызывается из модуля __main__.py
при запуске игры из CMD
по команде).
----...\
|
|----MAP\ # Генератор карты
| |----AI\ # Генератор описаний (нейронная сеть)
| | |----__init__.py
| | |----text_generator.py
| | |----data
| | | |----char_to_idx.pickle
| | | |----entire_model.pt
| | | |----idx_to_char.pickle
| | | |----text.txt
| |----__init__.py
| |----map_generator.py
| |----data
| | |----map.json
|
|----TUI\ # Текстовый пользовательский интерфейс
| |----saves\
| | |----.gitkeep
| |----data\
| | |----helpstr.json
| | |----intro.json
| | |----intro.jpg
| | |----lose.jpg
| | |----outro.jpg
| |----__init__.py
| |----__main__.py # Точка входа
| |----intro.py
| |----lose.py
| |----main_hero_class.py
| |----map_output.py
| |----outro.py
| |----quests.py
| |----words.py
|
|----setup.py # Модуль для сборки и установки проекта
|----run.bat # Запуск игры
🎲 Текстовая РПГ по мотивам мастера ужасов Говарда Лавкрафта 💀
📕 Игровой сюжет основывается на произведении «Храм» (первая публикация - сентябрь 1925 года):
Во время подъема на поверхность экипаж немецкой подводной лодки обнаружил на палубе труп неизвестного молодого человека, в руке которого была зажата статуэтка. Когда моряки попытались забрать ее, один из боцманов заметил, что мертвый юноша на мгновение открыл глаза и ухмыльнулся. После этого странного случая на борту стали происходить необъяснимые вещи: несколько матросов бесследно исчезли, а остальные начали сходить с ума от приступов панического страха и галлюцинаций . . .
Это атмосферная, стильная, жуткая и затягивающая история, после которой в Вас точно проснется желание погрузиться в мир мистики и ужасов Лавкрафта 🌊
После прохождения пролога, персонаж попадает в таинственный ХРАМ, но о том, что произойдет дальше Вам предстоит выяснить самим...
📕 Прочесть произведение Вы можете здесь (время прочтения ~30 минут).
Основная характеристика персонажа. Очень важный аспект игры. При перемещении по ХРАМУ с некоторым шансом шкала в нижней части экрана может понизиться. Чем ниже рассудок, тем выше шанс попасть в неприятности. Ужасный головные боли и голоса будут препятствовать Вашим исследованиям. Будьте бдительны.
Способ повышения уровня рассудка. При низком уровне рассудка с шансом в 10% Вы можете встретить мини-игру, результат которой либо повысит заветную шкалу, либо понизит ее. Все в Ваших руках.
В некоторых локациях Вы можете наткнуться на квесты, движущие вас по сюжету. Состояние текущего квеста всегда видно в соответствующем баре.
На момент релиза проекта сюжетная линия представлена несколькими небольшими задачами. Возможно, игра будет наполняться контентом и дальше...
ХРАМ представляет собой уникальную обширную карту размером 10x10
клеток. Каждая новая игровая сессия - новая версия карты, которая генерируется буквально у вас под носом. Составление карты искусственным интеллектом задача не из простых, этот процесс занимает от 20 до 25 секунд. Если вдруг карта не успеет сгенерироваться, Вам будет предложен вариант прошлой карты.
На момент релиза проекта все ключевые предметы и квесты зафиксированы на карте и не перемешиваются.
-
Ваш союзник. Едва ли светящееся нечто, что помогает Вам не терять рассудок в кромешной темноте. Люмен гарантирует, что шкала рассудка не опустится ниже текущего значения. Однако, даже союзники могут предать Вас. С шансом в 15% люмен может пропасть из инвентаря. Запасайтесь светом!
-
Один из сюжетных предметов. Испол%з** №@#-_/ . . . .
-
Один из сюжетных предметов. Исп"льз** №>#-</ . . . .
Более подробно о каждом предмете Вы узнаете в процессе игры.
Доступны в главном меню. Всего имеется 5 ячеек для сохранения прогресса. Уникальных локаций довольно много и все они разбросаны случайным образом. Порой прохождение может занять у Вас довольно много времени, поэтому не лишним будет сохраниться!
Нажимайте на изображения, чтобы разглядеть их получше.
Успешное выполнение сюжетного задания
Кадр из аутро в случае проигрыша
Вы когда-нибудь видели что-то подобное? Нет, даже не так... Вы когда-нибудь видели полноценную игру с TUI в CMD Windows, да еще и с нейронной сетью, генерирующей описания локаций!? Мы сомневаемся в этом.
Однозначно ХРАМ стоит Вашего внимания.
Увидеть это собственными глазами и потргать собственными руками такой интересный продукт - очень крутой опыт!
Блин, круто! Очень круто. Прекрасно.
Неплохо-неплохо.
Я ЖДАЛ ХРАМ ДВА ГОДА!
💻 Кратко о системных требованиях: ХРАМ не требователен к ресурам. Игра запуститься на любом компьютере под управлением Windows с установленным Python (>= 3.7), если следовать нашей простой инструкции.
💻 Установка. Игра выгружена на сервер PyPi.org (ссылка ведет на страницу загрузки архива пакета).
Убедитесь, что Python добавлен в PATH!
- Вы можете загрузить пакет архивом
.tar.gz
и установить его при помощиpip
:
> pip install ~/TEMPLECMD-1.0.tar.gz
- Или же установить пакет без загрузки из терминала, если Вам, конечно, так удобнее:
> pip install TEMPLECMD
- Команда
pip install
помимо игры установит и все необходимые зависимости.
ВАЖНО: Вышеупомянутый
pip install
не установит один важный форк библиотекиnpyscreen
, который обеспечивает корректную работу этой библиотеки наWindows
, поэтому, вслед за установкой пакета установите и форк, находящийся по адресу https://github.com/shasoka/npyscreen. Для этого воспользуйтесь командной:
> pip install git+https://github.com/shasoka/npyscreen
- После установки для запуска игры Вам всего лишь необходимо запустить
CMD
в любом каталоге на вашем компьютере и:
> temple!
Вы можете загрузить исходный код проекта и найти в корневой папке файл run.bat
. Он не устанавливает необходимых зависимостей, но запускает игру по вашему нажатию. Если Вы обладаете достаточным опытом, или если пакет не устанавливается корректно, этот способ для Вас.
Не забудьте прочесть справку перед игрой (а еще чекбокс Свойства консоли -> Терминал -> Отключить прокрутку вперед должен быть пустым 😄)
Готово! Добро пожаловать в ХРАМ!
- 👤 Мочалов Семен. КИ21-17/1Б. (https://vk.com/semen397) Ответственный за работу нейронной сети и основных игровых механик.
- 👤 Шенберг Аркадий. КИ21-17/1Б. (https://vk.com/shxnbxrg) Ответственный за текстовый интерфейс и визульную составляющую.