День рождения и квесты!
Все события произошли ещё в июне прошлого года, но написать о всём том решил я только сейчас. Почему? Не знаю! Хотел ещё тогда, но как-то руки не доходили, а потом уже подзабылось как-то и стало не очень актуально, но сейчас по некоторым причинам немножко снова взялся за этот проектик, вот и вспомнил, захотелось поделиться теми классными впечатлениями и событиями, что были тогда, в самый первый раз :)
Кому-то покажется это всё ерундой и чем-то не интересным, а кто-то, быть может, с интересом прочитает, каждому своё, но я чувствую, что сейчас я должен это всё написать.
Дело в том, что общался я тогда с одной замечательной девушкой, хорошо общались мы, было круто! Но сейчас история общения и что было дальше не особо интересна, не о ней речь. Единственное, что нужно знать, что девушка та очень любит сов в любом их виде (нет-нет, про их поедание речи не идёт!). И захотелось мне сделать подарок ей на день рождения, да не обычный какой-нибудь, а особый, какого раньше ещё не делал никому! Решил я сделать для неё квест небольшой. Но делать просто квест одноразовый -- это как-то не круто. Поэтому решил написать я небольшой квестовый движок, чтоб потом можно было какие угодно задания туда писать и всё менять на ходу, без необходимости лезть в какие-то исходники и вручную править код, а чтоб всё красивенько и удобненько работало через интерфейс приятный, да и чтоб можно было потом и другие квесты тоже проводить, штука-то полезная и в перспективе тоже, ведь можно применить много где.
Начал разработку этого квестового движка. По сути, это просто определённой функциональности сайт с адаптивной вёрсткой, чтоб автоматически подстраивался под размер экрана, чтоб и с телефона было удобно пользоваться, и с устройств с большим экраном тоже.
Делать всё это было весьма интересно! Вот ещё раз убедился, что когда под вдохновением делаешь что-то для кого-то, то мозг намного больше энергии на это всё выделяет, как-то намного охотнее и интереснее это делать, да и приятнее тоже.
Пока писал движок, в это же время готовил разные части подарков, которые должны были тоже участвовать в квесте, хоть я пока точно не представлял, как именно это будет. Среди них было два набора стикеров с совами (заказывал где-то), кружка с собственным дизайном, тоже с совами и ещё другими животными; и ещё вручную на маленьком прямоугольном кусочке фанеры выжег тоже сову, получилась прикольная такая фанерная карточка с совой, пусть и немного криво выжженой, потому что большим жалом маленький рисунок не очень удобно выжигать, особенно, когда опыта в этом особо нет.. )
Ещё подготовил аудиозапись специальную, FM-передатчик, роутер с OpenWRT на борту и настроенным веб-сервером и Wi-Fi с определённым паролем, были некоторые задумки по этому поводу тоже.
Две недели в свободное время я пилил движок (больше по ночам, днём другие дела были), наверное, даже жил этим, представлял, что и как можно сделать, какие задания и т.д. Но точного сценария так и не было.
В движке есть поддержка заданий, карта, инвентарь. Меня очень пёрло от мыслей о том, что можно связать реальность и виртуальность, потому что предметы, что были в реальности, я загнал и в движок тоже, они могли выдаваться за задания и находиться в инвентаре игрока. Карта нужна для того, чтоб знать, куда идти, если это необходимо по заданию (заодно и я мог наблюдать, где находится сейчас она). А в самих заданиях можно писать текст, по разному оформленный, картинки вставлять, там удобный редактор, позволяющий делать всё это. В заданиях можно указывать координаты, куда нужно идти; запрашивать определённый ответ, присваивать определённый текст кнопки для выполнения задания, чтоб можно было не просто на "Дальше" нажимать, а именно в зависимости от тематики задания указывать определённый текст на кнопке. Также можно указать предмет из инвентаря, необходимый для выполнения задания, а при завершении задания можно выдать какой-то предмет, а также есть возможность указать следующее задание, таким образом строится цепочка заданий в нужном порядке. Хотел сделать возможность разветвления: разные кнопки -- разные следующие задания, но подумал, что это не особо нужно было, на тот момент достаточно было и одной сюжетной ветки, к тому же, времени было мало. Ещё были мысли тогда про такой тип заданий, где нужно придти в определённую точку на карте, и лишь после этого можно будет продолжить, но тоже пока реализовывать не стал.
Свой подарок "вручить" решил я на пару дней позже, чем был сам день рождения, чтоб не было слишком много впечатлений было в один день, да и просто не успевал я немного.
Но вот настал тот самый день!
Помню, это была пятница, шёл дождик. Я назначил время старта на 3 часа дня. А сам только в два часа закончил делать движок. И то, не всё до конца закончил, со стороны "админки" там вообще почти ничего нет, кроме самого необходимого минимума. И вот за час до начала игры пошёл готовить локации. Опять же, не было ни сценария, ни плана, были просто разные части подарков и некоторые идеи. И лил дождь. Ввиду того, что по работе есть много знакомых в городе, потому что мы обслуживаем разные организации, то пошёл я в первую очередь именно к тем людям, которых знал уже, в фирмы какие-то, в магазины. Пришёл, объяснил, что придёт девушка, отдаст шишку лесную (они у неё заранее были, в день рождения отдал вместе с коробочкой-инвентарём, а шишки -- это как валюта), а ей в обмен на шишку должны будут отдать очередной предмет.
На каждом предмете был указан код, который необходимо было ввести в движке для выполнения задания.
Ходил также и к незнакомым людям, в пиццерию, в цветочный магазин, помню, зашёл, объяснил всё это той девушке, что там работала, она так заинтересовалась и так серьёзно к этому отнеслась, что даже на бумажке инструкции для себя записала и тоже ждала с нетерпением нужного времени!
В офисе на работе на окошко поставил плеер с зацикленной аудиозаписью, в которой бот Максим говорил своим голосом нужный циферный код, и всё это транслировалось по обычному радио, на частоте 108.0 FM. Для передачи использовал недорогой FM-трансмиттер, купленный на алике и собранный вручную (это был DIY-комплект).
Недалеко от рабочего офиса находится другая обслуживаемая нами фирма, туда поставил небольшой роутер на окошко, а в роутере... А об этом позже :)
За пол часа до начала игры сел писать сценарий. Было известно, где какие части подарков находятся, в каких локациях, и какие коды на них написаны. Задания, состоящие просто из текста были не так интересны, поэтому решил привлечь кота Пушина, будто бы он обращается к нашей главной героине и просит помощи в поиске пропавших сов! Сначала было пару заданий для обучения, где показано было, как вводить ответы, как по карте ориентироваться, а потом уже началась сама история сюжетом, который был буквально на ходу придуман.
Выглядело это всё вот так:
В списке заданий изначально отображались только активные задания, а уже позже, через пару месяцев после всех этих событий, добавил возможность просматривать уже выполненные задания, чтобы ещё раз пройтись по той истории :)
И, кстати, активных заданий может быть несколько, поэтому, всё же, можно делать разные сюжетные линии и связывать их. Например, в одной ветке в каком-то задании будет выдан предмет, который нужен будет в задании другой ветки. Так-то!
Началось всё с обучения, ведь нужно показать, что как.
Нажали на кнопку и попали в следующее задание.
Вот так выглядел инвентарь, но это из панели администрирования, где можно было редактировать описание, картинки устанавливать каждому предмету, удалять их и т.д.
Некоторые предметы, хоть они и не участвовали непосредственно в игре, но были подарены на ДР, решил тоже добавить в инвентарь. Они ведь есть у неё уже, так что пусть будут и в инвентаре!
А вот так инвентарь выглядит со стороны игрока. Не стоит удивляться, что там такое количество предметов. Дело в том, что сейчас скриншоты делаю я из под своего аккаунта, а пока тестировал разные задания, их проходилось по несколько раз проходить, поэтому некоторые предметы выдавались несколько раз.
Итак, продолжим проходить по заданиям! Тут я сначала нарочно ввёл неправильный ответ, чтобы показать, что происходит при этом.
Ввели правильный ответ, следующее задание.
Если нажать на ссылку "показать локацию на карте", то откроется, как ни странно, карта, где будет указано, куда идти. А также можно быстро вернуться обратно к заданию.
А ещё на карте можно посмотреть свою текущую позицию, которая, кстати, отображается тоже в виде совы. Ну, почему бы и нет? Жмёшь на кнопку "Где я?", а тебе в ответ вот это:
И снова возвращаемся к заданиям. Вот, всё началось!
А вот в следующем задании уже нужно было "перехватывать радиоэфир" для того, чтобы узнать код. Как я уже писал выше, с плеера через FM-трансмиттер транслировался записанный аудио-код, который и нужно было ввести в качестве ответа на задание. Помню, сидел я тогда в офисе, смотрел из окошка (второй этаж), и вот она подошла к окну, но тут я уже вышел помочь, потому что до этого там ещё парень с девушкой были в качестве помощников, но они потом ушли по делам, поэтому дальше решил я сам сопроводить, к тому же, приближалась сложная часть. Технически сложная. Может, и не сложная, но человеку, который этим не занимается, всё же, не совсем понятная. Уже тогда у главной героини торжества впечатления были очень хорошие, эмоций тоже много! Всё же, не каждый раз так интересно день рождения проводится :)
Настало время рассказать про ту штуку с роутером, хотя, думаю, из следующего задания всё и так понятно будет :)
Но суть в том, что на роутере был поднят небольшой веб-сервер, где была простенькая веб-страничка со ссылкой на другую страницу, где просто лежали файлики текстовые, в одном из них был ответ на задание, а ещё там были мои заметки, которые тоже были частью подарка. Этот роутер раздавал не только wi-fi, но и интернет, чтобы можно было, будучи подключенным к нему, не только в его файлах поковыряться, но и доступ к интернету иметь для продолжения выполнения заданий. Единственное, чего я не учёл -- это то, что в той фирме рабочий день окончился, и они почему-то отключили интернет, поэтому роутер раздавал просто wi-fi, но это не стало большой проблемой.
К сожалению, не могу показать сейчас, как выглядела страничка из роутера, потому что за этот год уже много раз там всё переделывалось, а сам роутер тот трудится сейчас совершенно в другом месте.
И вот всё уже подходит к завершающей стадии.
Самое последнее задание -- чаепитие :)
Даже сейчас, делясь с вами этими заданиями, сам снова испытал хотя бы немножко те клёвые эмоции, что были тогда! Для меня это было чем-то необычным, ведь не часто такое происходит, да и реакция девушки, для которой всё это делалось, тоже порадовала весьма! А учитывая то, что планировать я не умею, а тут удалось так хорошо всё провернуть, то это вдвойне приятней, хотя, учитывая то, что сам квест был написать за пол часа до его начала... :)
И в начале я писал, что не знаю, зачем захотелось поделиться этим всем, но сейчас понимаю, что оно точно того стоило! А движок до сих пор используется порой на каких-нибудь праздниках или других событиях, и пусть проводятся не такие сложные и масштабные квесты, но приятно помнить о том, с чего всё началось, и что сейчас это тоже приносит пользу.
Всем спасибо за внимание и за возможность поделиться :)
Надеюсь, мне удалось хоть немножко передать ту необычную атмосферу, заинтересовать вас и поколебать стрелку мимиметра )
Программирование на PHP
63 поста2K подписчика
Правила сообщества
- запрещено добавлять посты отличной от мира программирования тематики (так как пикабу - это в первую очередь развлекательный ресурс, то посты с юмором, историями, изображениями и всем, что связано с php - разрешены);
- запрещено добавлять посты с содержанием в виде вопроса, или просьбы о помощи, для этого есть тематические ресурсы;
- запрещено добавлять посты провакационной тематики, нацеленные на бессмысленные споры и оскарбления;
- в копипастах и переводах указывайте источники;