День рождения и квесты!

Все события произошли ещё в июне прошлого года, но написать о всём том решил я только сейчас. Почему? Не знаю! Хотел ещё тогда, но как-то руки не доходили, а потом уже подзабылось как-то и стало не очень актуально, но сейчас по некоторым причинам немножко снова взялся за этот проектик, вот и вспомнил, захотелось поделиться теми классными впечатлениями и событиями, что были тогда, в самый первый раз :)

Кому-то покажется это всё ерундой и чем-то не интересным, а кто-то, быть может, с интересом прочитает, каждому своё, но я чувствую, что сейчас я должен это всё написать.


Дело в том, что общался я тогда с одной замечательной девушкой, хорошо общались мы, было круто! Но сейчас история общения и что было дальше не особо интересна, не о ней речь. Единственное, что нужно знать, что девушка та очень любит сов в любом их виде (нет-нет, про их поедание речи не идёт!). И захотелось мне сделать подарок ей на день рождения, да не обычный какой-нибудь, а особый, какого раньше ещё не делал никому! Решил я сделать для неё квест небольшой. Но делать просто квест одноразовый -- это как-то не круто. Поэтому решил написать я небольшой квестовый движок, чтоб потом можно было какие угодно задания туда писать и всё менять на ходу, без необходимости лезть в какие-то исходники и вручную править код, а чтоб всё красивенько и удобненько работало через интерфейс приятный, да и чтоб можно было потом и другие квесты тоже проводить, штука-то полезная и в перспективе тоже, ведь можно применить много где.

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

Делать всё это было весьма интересно! Вот ещё раз убедился, что когда под вдохновением делаешь что-то для кого-то, то мозг намного больше энергии на это всё выделяет, как-то намного охотнее и интереснее это делать, да и приятнее тоже.

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

Ещё подготовил аудиозапись специальную, FM-передатчик, роутер с OpenWRT на борту и настроенным веб-сервером и Wi-Fi с определённым паролем, были некоторые задумки по этому поводу тоже.

Две недели в свободное время я пилил движок (больше по ночам, днём другие дела были), наверное, даже жил этим, представлял, что и как можно сделать, какие задания и т.д. Но точного сценария так и не было.

В движке есть поддержка заданий, карта, инвентарь. Меня очень пёрло от мыслей о том, что можно связать реальность и виртуальность, потому что предметы, что были в реальности, я загнал и в движок тоже, они могли выдаваться за задания и находиться в инвентаре игрока. Карта нужна для того, чтоб знать, куда идти, если это необходимо по заданию (заодно и я мог наблюдать, где находится сейчас она). А в самих заданиях можно писать текст, по разному оформленный, картинки вставлять, там удобный редактор, позволяющий делать всё это. В заданиях можно указывать координаты, куда нужно идти; запрашивать определённый ответ, присваивать определённый текст кнопки для выполнения задания, чтоб можно было не просто на "Дальше" нажимать, а именно в зависимости от тематики задания указывать определённый текст на кнопке. Также можно указать предмет из инвентаря, необходимый для выполнения задания, а при завершении задания можно выдать какой-то предмет, а также есть возможность указать следующее задание, таким образом строится цепочка заданий в нужном порядке. Хотел сделать возможность разветвления: разные кнопки -- разные следующие задания, но подумал, что это не особо нужно было, на тот момент достаточно было и одной сюжетной ветки, к тому же, времени было мало. Ещё были мысли тогда про такой тип заданий, где нужно придти в определённую точку на карте, и лишь после этого можно будет продолжить, но тоже пока реализовывать не стал.


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


Но вот настал тот самый день!
Помню, это была пятница, шёл дождик. Я назначил время старта на 3 часа дня. А сам только в два часа закончил делать движок. И то, не всё до конца закончил, со стороны "админки" там вообще почти ничего нет, кроме самого необходимого минимума. И вот за час до начала игры пошёл готовить локации. Опять же, не было ни сценария, ни плана, были просто разные части подарков и некоторые идеи. И лил дождь. Ввиду того, что по работе есть много знакомых в городе, потому что мы обслуживаем разные организации, то пошёл я в первую очередь именно к тем людям, которых знал уже, в фирмы какие-то, в магазины. Пришёл, объяснил, что придёт девушка, отдаст шишку лесную (они у неё заранее были, в день рождения отдал вместе с коробочкой-инвентарём, а шишки -- это как валюта), а ей в обмен на шишку должны будут отдать очередной предмет.

На каждом предмете был указан код, который необходимо было ввести в движке для выполнения задания.

Ходил также и к незнакомым людям, в пиццерию, в цветочный магазин, помню, зашёл, объяснил всё это той девушке, что там работала, она так заинтересовалась и так серьёзно к этому отнеслась, что даже на бумажке инструкции для себя записала и тоже ждала с нетерпением нужного времени!

В офисе на работе на окошко поставил плеер с зацикленной аудиозаписью, в которой бот Максим говорил своим голосом нужный циферный код, и всё это транслировалось по обычному радио, на частоте 108.0 FM. Для передачи использовал недорогой FM-трансмиттер, купленный на алике и собранный вручную (это был DIY-комплект).

Недалеко от рабочего офиса находится другая обслуживаемая нами фирма, туда поставил небольшой роутер на окошко, а в роутере... А об этом позже :)

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

Выглядело это всё вот так:

В списке заданий изначально отображались только активные задания, а уже позже, через пару месяцев после всех этих событий, добавил возможность просматривать уже выполненные задания, чтобы ещё раз пройтись по той истории :)

И, кстати, активных заданий может быть несколько, поэтому, всё же, можно делать разные сюжетные линии и связывать их. Например, в одной ветке в каком-то задании будет выдан предмет, который нужен будет в задании другой ветки. Так-то!

День рождения и квесты! Сова, Движок, Квесты в реальности, Квест, Сайт, Разработка, Длиннопост

Началось всё с обучения, ведь нужно показать, что как.

День рождения и квесты! Сова, Движок, Квесты в реальности, Квест, Сайт, Разработка, Длиннопост

Нажали на кнопку и попали в следующее задание.

День рождения и квесты! Сова, Движок, Квесты в реальности, Квест, Сайт, Разработка, Длиннопост

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

Некоторые предметы, хоть они и не участвовали непосредственно в игре, но были подарены на ДР, решил тоже добавить в инвентарь. Они ведь есть у неё уже, так что пусть будут и в инвентаре!

День рождения и квесты! Сова, Движок, Квесты в реальности, Квест, Сайт, Разработка, Длиннопост

А вот так инвентарь выглядит со стороны игрока. Не стоит удивляться, что там такое количество предметов. Дело в том, что сейчас скриншоты делаю я из под своего аккаунта, а пока тестировал разные задания, их проходилось по несколько раз проходить, поэтому некоторые предметы выдавались несколько раз.

День рождения и квесты! Сова, Движок, Квесты в реальности, Квест, Сайт, Разработка, Длиннопост

Итак, продолжим проходить по заданиям! Тут я сначала нарочно ввёл неправильный ответ, чтобы показать, что происходит при этом.

День рождения и квесты! Сова, Движок, Квесты в реальности, Квест, Сайт, Разработка, Длиннопост

Ввели правильный ответ, следующее задание.

День рождения и квесты! Сова, Движок, Квесты в реальности, Квест, Сайт, Разработка, Длиннопост

Если нажать на ссылку "показать локацию на карте", то откроется, как ни странно, карта, где будет указано, куда идти. А также можно быстро вернуться обратно к заданию.

День рождения и квесты! Сова, Движок, Квесты в реальности, Квест, Сайт, Разработка, Длиннопост

А ещё на карте можно посмотреть свою текущую позицию, которая, кстати, отображается тоже в виде совы. Ну, почему бы и нет? Жмёшь на кнопку "Где я?", а тебе в ответ вот это:

День рождения и квесты! Сова, Движок, Квесты в реальности, Квест, Сайт, Разработка, Длиннопост

И снова возвращаемся к заданиям. Вот, всё началось!

День рождения и квесты! Сова, Движок, Квесты в реальности, Квест, Сайт, Разработка, Длиннопост
День рождения и квесты! Сова, Движок, Квесты в реальности, Квест, Сайт, Разработка, Длиннопост
День рождения и квесты! Сова, Движок, Квесты в реальности, Квест, Сайт, Разработка, Длиннопост
День рождения и квесты! Сова, Движок, Квесты в реальности, Квест, Сайт, Разработка, Длиннопост
День рождения и квесты! Сова, Движок, Квесты в реальности, Квест, Сайт, Разработка, Длиннопост

А вот в следующем задании уже нужно было "перехватывать радиоэфир" для того, чтобы узнать код. Как я уже писал выше, с плеера через FM-трансмиттер транслировался записанный аудио-код, который и нужно было ввести в качестве ответа на задание. Помню, сидел я тогда в офисе, смотрел из окошка (второй этаж), и вот она подошла к окну, но тут я уже вышел помочь, потому что до этого там ещё парень с девушкой были в качестве помощников, но они потом ушли по делам, поэтому дальше решил я сам сопроводить, к тому же, приближалась сложная часть. Технически сложная. Может, и не сложная, но человеку, который этим не занимается, всё же, не совсем понятная. Уже тогда у главной героини торжества впечатления были очень хорошие, эмоций тоже много! Всё же, не каждый раз так интересно день рождения проводится :)

День рождения и квесты! Сова, Движок, Квесты в реальности, Квест, Сайт, Разработка, Длиннопост

Настало время рассказать про ту штуку с роутером, хотя, думаю, из следующего задания всё и так понятно будет :)

Но суть в том, что на роутере был поднят небольшой веб-сервер, где была простенькая веб-страничка со ссылкой на другую страницу, где просто лежали файлики текстовые, в одном из них был ответ на задание, а ещё там были мои заметки, которые тоже были частью подарка. Этот роутер раздавал не только wi-fi, но и интернет, чтобы можно было, будучи подключенным к нему, не только в его файлах поковыряться, но и доступ к интернету иметь для продолжения выполнения заданий. Единственное, чего я не учёл -- это то, что в той фирме рабочий день окончился, и они почему-то отключили интернет, поэтому роутер раздавал просто wi-fi, но это не стало большой проблемой.

К сожалению, не могу показать сейчас, как выглядела страничка из роутера, потому что за этот год уже много раз там всё переделывалось, а сам роутер тот трудится сейчас совершенно в другом месте.

День рождения и квесты! Сова, Движок, Квесты в реальности, Квест, Сайт, Разработка, Длиннопост

И вот всё уже подходит к завершающей стадии.

День рождения и квесты! Сова, Движок, Квесты в реальности, Квест, Сайт, Разработка, Длиннопост

Самое последнее задание -- чаепитие :)

День рождения и квесты! Сова, Движок, Квесты в реальности, Квест, Сайт, Разработка, Длиннопост

Даже сейчас, делясь с вами этими заданиями, сам снова испытал хотя бы немножко те клёвые эмоции, что были тогда! Для меня это было чем-то необычным, ведь не часто такое происходит, да и реакция девушки, для которой всё это делалось, тоже порадовала весьма! А учитывая то, что планировать я не умею, а тут удалось так хорошо всё провернуть, то это вдвойне приятней, хотя, учитывая то, что сам квест был написать за пол часа до его начала... :)

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


Всем спасибо за внимание и за возможность поделиться :)

Надеюсь, мне удалось хоть немножко передать ту необычную атмосферу, заинтересовать вас и поколебать стрелку мимиметра )

Правила сообщества

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

- запрещено добавлять посты с содержанием в виде вопроса, или просьбы о помощи, для этого есть тематические ресурсы;

- запрещено добавлять посты провакационной тематики, нацеленные на бессмысленные споры и оскарбления;

- в копипастах и переводах указывайте источники;