Giter Club home page Giter Club logo

txtquest's Introduction

Командный проект. Текстовый КВЕСТ 🕹️

1. Структура проекта

📁 Техническая составляющая проекта содержит три пакета: 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 # Запуск игры

2. Об этой игре

🎲 Текстовая РПГ по мотивам мастера ужасов Говарда Лавкрафта 💀

Сюжет

📕 Игровой сюжет основывается на произведении «Храм» (первая публикация - сентябрь 1925 года):

Во время подъема на поверхность экипаж немецкой подводной лодки обнаружил на палубе труп неизвестного молодого человека, в руке которого была зажата статуэтка. Когда моряки попытались забрать ее, один из боцманов заметил, что мертвый юноша на мгновение открыл глаза и ухмыльнулся. После этого странного случая на борту стали происходить необъяснимые вещи: несколько матросов бесследно исчезли, а остальные начали сходить с ума от приступов панического страха и галлюцинаций . . .

Это атмосферная, стильная, жуткая и затягивающая история, после которой в Вас точно проснется желание погрузиться в мир мистики и ужасов Лавкрафта 🌊

После прохождения пролога, персонаж попадает в таинственный ХРАМ, но о том, что произойдет дальше Вам предстоит выяснить самим...

📕 Прочесть произведение Вы можете здесь (время прочтения ~30 минут).

Механики

🎲 1. Рассудок

Основная характеристика персонажа. Очень важный аспект игры. При перемещении по ХРАМУ с некоторым шансом шкала в нижней части экрана может понизиться. Чем ниже рассудок, тем выше шанс попасть в неприятности. Ужасный головные боли и голоса будут препятствовать Вашим исследованиям. Будьте бдительны.

❔ 2. Активности

Способ повышения уровня рассудка. При низком уровне рассудка с шансом в 10% Вы можете встретить мини-игру, результат которой либо повысит заветную шкалу, либо понизит ее. Все в Ваших руках.

🌀 3. Сюжетная линия

В некоторых локациях Вы можете наткнуться на квесты, движущие вас по сюжету. Состояние текущего квеста всегда видно в соответствующем баре.

На момент релиза проекта сюжетная линия представлена несколькими небольшими задачами. Возможно, игра будет наполняться контентом и дальше...

📄 4. Самособирающаяся карта

ХРАМ представляет собой уникальную обширную карту размером 10x10 клеток. Каждая новая игровая сессия - новая версия карты, которая генерируется буквально у вас под носом. Составление карты искусственным интеллектом задача не из простых, этот процесс занимает от 20 до 25 секунд. Если вдруг карта не успеет сгенерироваться, Вам будет предложен вариант прошлой карты.

На момент релиза проекта все ключевые предметы и квесты зафиксированы на карте и не перемешиваются.

🔧 5. Игровые предметы

  • Люмен

    Ваш союзник. Едва ли светящееся нечто, что помогает Вам не терять рассудок в кромешной темноте. Люмен гарантирует, что шкала рассудка не опустится ниже текущего значения. Однако, даже союзники могут предать Вас. С шансом в 15% люмен может пропасть из инвентаря. Запасайтесь светом!

  • Прах

    Один из сюжетных предметов. Испол%з** №@#-_/ . . . .

  • Статуя

    Один из сюжетных предметов. Исп"льз** №>#-</ . . . .

Более подробно о каждом предмете Вы узнаете в процессе игры.

📁 6. Сохранения

Доступны в главном меню. Всего имеется 5 ячеек для сохранения прогресса. Уникальных локаций довольно много и все они разбросаны случайным образом. Порой прохождение может занять у Вас довольно много времени, поэтому не лишним будет сохраниться!

3. Галерея скриншотов

Нажимайте на изображения, чтобы разглядеть их получше.

Кадр из приветственного интро

Главное меню

Игровая справка

Меню загрузки

Успешное выполнение сюжетного задания

Мини-игра

Встреча с новым предметом

Поражение

Кадр из аутро в случае проигрыша

4. Почему ХРАМ?

Вы когда-нибудь видели что-то подобное? Нет, даже не так... Вы когда-нибудь видели полноценную игру с TUI в CMD Windows, да еще и с нейронной сетью, генерирующей описания локаций!? Мы сомневаемся в этом.

Однозначно ХРАМ стоит Вашего внимания.

Увидеть это собственными глазами и потргать собственными руками такой интересный продукт - очень крутой опыт!

5. Что говорят кураторы

Никита Евгеньевич

Блин, круто! Очень круто. Прекрасно.

Павел Викторович

Неплохо-неплохо. :godmode:

Дмитрий Скоробогатов

Я ЖДАЛ ХРАМ ДВА ГОДА! :rage1:

6. Системные требования и установка

💻 Кратко о системных требованиях: ХРАМ не требователен к ресурам. Игра запуститься на любом компьютере под управлением Windows с установленным Python (>= 3.7), если следовать нашей простой инструкции. :trollface:

💻 Установка. Игра выгружена на сервер PyPi.org (ссылка ведет на страницу загрузки архива пакета).

Убедитесь, что Python добавлен в PATH!

1. Устновка через CMD.

  1. Вы можете загрузить пакет архивом .tar.gz и установить его при помощи pip:
> pip install ~/TEMPLECMD-1.0.tar.gz
  1. Или же установить пакет без загрузки из терминала, если Вам, конечно, так удобнее:
> pip install TEMPLECMD
  1. Команда pip install помимо игры установит и все необходимые зависимости.

ВАЖНО: Вышеупомянутый pip install не установит один важный форк библиотеки npyscreen, который обеспечивает корректную работу этой библиотеки на Windows, поэтому, вслед за установкой пакета установите и форк, находящийся по адресу https://github.com/shasoka/npyscreen. Для этого воспользуйтесь командной:

> pip install git+https://github.com/shasoka/npyscreen
  1. После установки для запуска игры Вам всего лишь необходимо запустить CMD в любом каталоге на вашем компьютере и:
> temple!

2. Запуск с помощью .bat файла

Вы можете загрузить исходный код проекта и найти в корневой папке файл run.bat. Он не устанавливает необходимых зависимостей, но запускает игру по вашему нажатию. Если Вы обладаете достаточным опытом, или если пакет не устанавливается корректно, этот способ для Вас.

Не забудьте прочесть справку перед игрой (а еще чекбокс Свойства консоли -> Терминал -> Отключить прокрутку вперед должен быть пустым 😄)

Готово! Добро пожаловать в ХРАМ!

7. Разработчики

  • 👤 Мочалов Семен. КИ21-17/1Б. (https://vk.com/semen397) Ответственный за работу нейронной сети и основных игровых механик.
  • 👤 Шенберг Аркадий. КИ21-17/1Б. (https://vk.com/shxnbxrg) Ответственный за текстовый интерфейс и визульную составляющую.

txtquest's People

Contributors

shasoka avatar infern397 avatar

Stargazers

Vladislava Nazarova avatar

Watchers

 avatar

Forkers

infern397

txtquest's Issues

CMD

  • Разобраться с тем, возможно ли получить доступ к таким свойствам консоли как размер и начертание шрифта
  • Попробовать "слить" интро с функциональным интерфейсом

My dear issue...

Ну, поехали 😄

Это большой папа-issue (или мама).

Вот дети-issues:

Кажется, кто-то подкидывает дров 👀

Раскаяние в грехах

В третий спринт наша дружная команда напрочь забыла о ведении записей в Issues..
Но для истории проекта оставить третий спринт пустым было бы совсем плохо.
Из основного: написано и перенесено в TUI очень много игровой логики (всяческие кнопки, меню, система поиска и подбора предметов); много графических изменений (всплывающие окна, ошибки, подсказки, обучение, окно справки)

Очередное раскаяние в грехах...

За четвертый спринт были написаны несколько движущих сюжет квестов, добавлены несколько предметов.
Отредактирована работа карты и предметов (кажется теперь оно работает лучше).
Добавлено входное меню. Начата работа с сохранениями. Снова много косметики.

ИИ

Написать прототип ии генератора описаний.

Додумать идеи по сюжету

  • Собрать характерные описания локаций из романов Г.Ф. Лавкрафта
  • Определиться с основной концепцией (квест/серьезная РПГ с прокачкой/...)
  • Утвердить основные, привязанные к сюжету, механики

Вопросы на будущее

  • По какому принципу должно работать сохранение
  • Проблема совместимости для разных разрешений (возможно стоит отказаться от полного экрана)
  • Добавить help
  • Добавить бинды

Работа с npyscreen

  • Написать логику чек-боксов для выбора действий игрока
    *Ремарка: Библиотека хорошо написана с использованием наследования классов, напоминает Qt, но все-таки логика отрисовки и обновления окон совершенно иная. На данном этапе все выглядит довольно трудно, но интересно =)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.