Наверное, многие помнят детскую (или не очень) игру: "12 записок". В ней нужно последовательно искать записки, в которых есть подсказки, указывающие на место, где лежит следующая записка из цепочки в 12 элементов. Игра длится до тех пор, пока не будет найдена последняя записка. Играть можно как командами, так и индивидуально. Побеждает тот, кто первый найдёт последнюю записку. Давайте вспомним босоногое детство, смешаем старые идеи с новой реальностью и попробуем изобрести 12 записок заново: 12 GitHub записок. 


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

Варианты загадок: 

  1. Загадки про названия технологий, продуктов, компонентов, компаний и т.д.. Например, какая компания имеет нарицательное имя в сфере копирования документов, прибавь к её имени год основания и получишь ответ (xerox1906).

  2. Задачки на программирование. Например, возьми слово "programming", получи из него коды ASCII-символов, переведи это в 11-ричную систему, переведи это обратно и получишь ответ. Можно усложнять, добавляя процедуры, например, XOR или ещё какое-нибудь хэширование.

  3. Можно попросить склонировать репозиторий, запустить код на выполнение и на экране будет показан ответ. Этот вариант полезен тем, кто хочет освоить азы работы с GitHub, но тут надо быть очень осторожным в плане возможных уязвимостей.

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

  5. Старый добрый ребус. Можно даже просто картинками.

  6. Ответ может быть довольно сложным, поэтому можно устроить комбинацию из разных вариантов загадок. Игроки испытают непередаваемые эмоции, когда наконец-то отгадают что-то наподобие "Terminator2ibm386zalman" (тут конечно же имеется в виду coaxial terminator, а не робот-убийца из одноимённого фильма).

  7. Дайте волю фантазии, спросите друга или GPT - наверняка есть ещё множество вариантов как интересно зашифровать какое-то слово.

Процесс игры. Старт игры начинается после публикации ссылки на первый репозиторий. Если есть несколько участников, которым по какой-то причине надо дать фору, то можно отправлять ссылку с задержкой. Каждый участник может отмечаться в репозиториях, создавая issues или даже PR-ы с указанием названия своей команды, например. Если пользователь опубликует ответ, то тем самым подскажет другим участникам и они смогут его опередить на последующих этапах. Организаторы могут пресекать такое поведение или даже дисквалифицировать этого участника, чтобы не повадно было. Также организаторы могут задать лимит времени, по истечение которого могут перевести репозитории из публичных в приватные, тем самым завершив игру. Победителем будет являться тот, кто первый закинет issue в последний 12-й репозиторий.

 Кому всё это надо? "Ну во-первых это красиво".

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

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

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

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

 Ждём в комментариях:

  1. Тех, кто соберёт свою игру в "12 GitHub записок" и не побоится опубликовать её (в т.ч. от лица компаний).

  2. Тех, кто накинет идей по улучшению механики, добавит критики или будет душнить, уверяя всех в бренности этой идеи, да и мира в целом.

  3. Желающих поучаствовать в эксперименте в качестве игрока и первым добраться до кубка последнего репозитория.

Вперёд!

Комментарии (2)


  1. souls_arch
    05.11.2023 08:02

    "Жениться вам, барин, надобно..." (с)


  1. AptRoApt
    05.11.2023 08:02

    Только наткнулся на эту статью, читаю, думаю "вау, интересная идея. Наверняка под постом куча комментариев, несколько таких игр уже идёт", а тут удивительно пусто.

    Добавлю пару своих вариантов загадок: реверс-инжиниринг и что-то в духе CTF.