Создаем собственный текстовый квест в Telegram. Как сделать текстовый квест

Теперь нам нужно научиться переходить от выполнения одного куска кода к другому. Для этого надо разбить код на отдельные участки, или по-другому “локации”.

Создай свою текстовую игру онлайн за 5 минут!

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

Не будем тянуть кота за хвост, приступим к созданию своей новой текстовой игры!

Комментарий разработчика.

Структура языка очень похожа на URQL, а значит тем, кто знаком с «уркой», разобраться будет проще некуда. Но синтаксис языка построен таким образом, что все символы базовых конструкций можно набирать не меняя раскладки клавиатуры на русском языке. Это очень удобно, когда, что называется, нашло вдохновение, и нет времени спотыкаться об англоязычные операторы.

Создай текстовую игру онлайн!

Не пугайся слова код, никаких «010010» из матрицы здесь не будет.

Код для Аперо — это обычный текст, размеченный особым образом.

В процессе обучения сразу пробуйте выполнять примеры, которые мы будем разбирать.

Для этого создай тестовую онлайн игру для обучения здесь, назови например «Обучение» и описание, например: «Это моя игра, в ней я научусь создавать свои текстовые игры онлайн на платформе Аперо». (Доступно только зарегистрированным пользователям)

Назови игру и напиши текстовое описание

Нажми кнопку «Создать!», и игра появится в твоем списке разработки здесь. После этого появится блок для редактирования исходного кода, туда ты будешь вводить свой код. Там уже есть базовый исходный код для примера, но его можно удалить.

Базовый исходный код для примера

После этого ты можешь нажать кнопку «Тестовый запуск игры!», и откроется страница твоей только что созданной новой текстовой онлайн игры, на ней ты можешь посмотреть, как будет выглядеть игра для игрока.

Как будет выглядеть игра для игрока

Таким образом происходит создание текстовой игры прямо здесь на сайте онлайн. Теперь вернись в редактирование кода и удали весь базовый исходный код для примера, сейчас мы будем создавать текстовую онлайн игру с полного нуля.

Теперь нам нужно научиться переходить от выполнения одного куска кода к другому. Для этого надо разбить код на отдельные участки, или по-другому “локации”.

Пробуем создать бота

Давайте сделаем нашего первого бота — бота-попугая. На все сообщения он будет отвечать повторением.

Помимо текстовых сообщений, в телеграме есть команды, они начинаются со слэша, например, /start или /help . Их тоже можно обрабатывать.

Давайте добавим пояснение к нашему боту, которое объяснит пользователю, что он делает.

Взаимодействуем с несколькими пользователями одновременно

Предположим мы хотим сделать бота, которы будет запоминать какую-то фразу, а затем по просьбе пользователя напоминать ее ему. Чтобы решить эту задачу, нам понадобится где-то хранить последнее сообщение пользователя.

Если мы будем использовать переменную, то сможем сохранить сообщение только одного пользователя. Например, Вася попросил запомнить слово kitten . Мы положим эту строку в переменную note . А затем Петя, попросить запомнить слово puppy , и мы снова положим это переменную note . Когда Вася попросит нам напомнить его последнее сообщение, мы напишем ему puppy вместо kitten . Совершенно не годится!

> Удобнее всего хранить все данные, которые привязаны к конкретному пользователю в словаре. Ключем в этом словаре будет id пользователя, а значением — произвольные данные.

Предположим, что наш словарь называется notes — заметки. Теперь, когда Вася (id88000) пришлет слово kitten мы положим его в notes88000 , а слово puppy от Пети (id5300) — в notes5300 . Посколько теперь мы используем разные переменные для хранения слова, сообщения от разных пользователей не будут путаться.

Поскольку мы учимся создавать текстовые игры, то показывать весь текст игроку сразу мы не хотим. Чтобы остановить платформу нужно написать так:

При создании квестовых игр нужно соблюдать несколько правил и принципов, которые помогут создать качественные квесты:

— Определение цели (для чего проводится игра)

— Количество и возраст участников

— Территория проведения квеста

— Наличие поисковой деятельности и решение загадок, будь это математическая или логическая загадка

— Подсказки, позволяющие участнику дойти до финала (в основном подсказки бывают 3 в разных промежутках времени)

— Разнообразие этапов и заданий (то есть в квестах должна быть сменяющейся деятельность, уровень сложности, которая заставляет участника совершать усилия и этим делает квест интересным)

— Продумывание прохождения процесса (на время, на очки или на соревнование)

— Наличие дополнительных заданий (при случае, если участник не cможет пройти задания из-за разных причин, в помощь приходят дополнительные задания)

— Тестирование созданного квеста (нужно убедится в решимости и правильности загадок и головоломок)

Механизм заданий

При разработке заданий и подсказок в квестах можно применять две разные механизмы:

— Цепочный, который предполагает последовательность действий (нельзя приступить к следующему заданию, не выполнив предыдущую)

— Штурмовой, где участники определяют последовательность самостоятельно. Этот механизм в основном используется, когда в квесте участвуют несколько команд и нужно их развести в самом начале игры

Последняя версия для Windows 5.7.0. Если у вас Linux или Mac, то можете использовать онлайн редактор. Он лицензирован под MIT. Исходный код доступен здесь.

Squiffy

Squiffy — это еще одно средство для создания текстовых игр от разработчиков Quest. Его отмечают как “простой способ создания интерактивной прозы”. Squiffy не сильно отличается от предыдущих вариантов, так как позволяет выводить результат в HTML и javascript, как и Twine, чтобы можно было сыграть в браузере. Для превращения игры в приложение можно использовать PhoneGap.

Самый актуальный релиз Squiffy 5.0. Его можно запускать на Linux, Mac и Windows; можно использовать в браузере. Она лицензирована под MIT. Исходный код здесь.

TADS

TADS или Text Adventure Development System – это “прототипный предметно-ориентированный язык программирования и набор стандартных библиотек” для создания интерактивной прозы. Наиболее свежая версия языка TADS основана на C++ и javascript. Она предоставляет компилятор как для создания игр, так и для самой игры.

TADS вне всяких сомнений самый сложный вариант из представленных в этом списке. Не уверен какая у него лицензия, но если верить официальному сайту, то любая созданная на нем игра может быть распространена и продана без ограничений.

Вторая подсказка: Open the tragedy of «Hamlet» count the number of string and the number of letter. 1-15, 2-3, 1-19, 3-6, 3-1, 3-23, 4-3, 4-22

Наличие франшиз

Сегодня на франчайзинговом рынке России представлена 61 франшиза по открытию квеструмов. В пакет франшизы, как правило, входит:

  • разработанный сценарий;
  • техническое обеспечение;
  • реквизиты;
  • программное обеспечение для наблюдения и контроля за квестом;
  • разработка плана комнаты;
  • консультации по оформлению комнаты;
  • консалтинговая поддержка в момент открытия и дальнейшего функционирования компании франчайзи;
  • бренд-бук (логотип, нэйминг, атрибутика);
  • работа с кадрами;
  • налаженная система отчетности и записи клиентов.

Квесты: требования безопасности

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

Изучение квест-комнаты.

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

Интерактивная проза была первой попыткой программистов познать еще зарождавшийся мир компьютерных игр. Сегодня они до сих пор не потеряли актуальности, так как в них можно играть где угодно, да и средств для их создания достаточно.

Урок 1. Создаем текстовую игру онлайн с полного нуля

Написать Аперо-игру – это значит написать “код”, который понимает платформа Аперо.

Что же из себя представляет “код” для Аперо? Код для Аперо – это обычный текст, размеченный особым образом.

Создаем тестовую игру

После регистрации можно создать собственную игру для обучения здесь. Например, название “Обучение” и описание, например: “Это моя игра, в ней я научусь создавать свои текстовые игры онлайн на платформе Аперо”.

Назови игру и напиши текстовое описание

Нажми кнопку “Создать!”, и игра появится в твоем списке разработки здесь. После этого появится блок для редактирования исходного кода, туда ты будешь вводить свой код. Там уже есть базовый исходный код для примера, но его можно удалить.

Базовый исходный код для примера

После этого ты можешь нажать кнопку “Тестовый запуск игры!”, и откроется страница твоей только что созданной новой текстовой онлайн игры, на ней ты можешь посмотреть, как будет выглядеть игра для игрока.

apero

Таким образом происходит создание текстовой игры на сайте онлайн.

Игра с нуля

Вывод текста

Давай напишем текст. Просто введи любое слово или предложение в форму для ввода исходного кода. Можешь в несколько строк (через enter). Например так:

Вывод текста - исходный код

После этого нажми кнопку “Тестовый запуск игры!” и узнаем, что же увидел бы игрок после начала этой текстовой игры.

Как видишь, в правом блоке появился точно такой же текст.

Вывод текста - результат выполнения

Платформа действует так: Начиная с первой строчки перебирает все по очереди и выводит их пользователю.

Поскольку мы учимся создавать текстовые игры, то показывать весь текст игроку сразу мы не хотим. Чтобы остановить платформу нужно написать так:

Обрати внимание на первый символ в строке “\” – это косая черта, наклоненная влево. Ее так же называют “обратный слэш”.

Это специальный символ для платформы, чтобы она понимала, что это команда, а не обычный текст. Если слово “СТОП” в коде было бы написано без обратного слэша, то платформа просто вывела бы его пользователю на экран как обычный текст.

Чтобы понять, как работает команда стоп, выполним следующий пример:

Команда СТОП - исходный код

После этого нажми кнопку “Тестовый запуск игры!” и посмотри на результат выполнения.

Команда СТОП - результат выполнения

Платформа показывает игроку первую строчку, потом встречает команду СТОП и прекращает выполнение. Все просто.

Само слово “СТОП” тоже не будет видно пользователю в процессе игры, это служебная информация.

\Локации

Теперь нам нужно научиться переходить от выполнения одного куска кода к другому. Для этого надо разбить код на отдельные участки, или по-другому “локации”.

Чтобы различать локации между собой, они должны иметь свои названия. Причем уникальные, то есть названия локаций не должны повторяться.

Полные правила объявления локации здесь.

Если хочешь быть уверен, что имя локации задано правильно, используй только кириллические и латинские символы в нижнем регистре и знак “_” для разделения слов в имени переменной.

Название локаций не будет видно пользователю в процессе игры, это служебная информация для автора.

Не забывай в конце каждой локации писать строчку с командой \СТОП.

В коде выше есть две локации с именами “Первая локация” и “Вторая локация”.

Сначала код выполняется начиная с \Первая локация и до команды \СТОП

После запуска мы убедимся, что выполнился только код первой локации. А как же игроку попасть на вторую локацию? Для этого есть кнопки.

Создать кнопку - исходный код

Что же произойдет после запуска? На экране появится кнопка с текстом “Перейти на вторую локацию“, которая будет видна игроку. А если он на нее нажмет, то попадет на локацию с именем “Вторая локация“, которая должна быть объявлена ниже.

Создать кнопку - результат выполнения

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

Оцените статью
Новости, гайды, обзоры, рецензии все о лучших компьютерных играх