Рубрики
Без рубрики

Lgtm Devlog 3: Идеи дизайна для игры 2

Продолжая от последнего поста, давайте поговорим о принципах дизайна для предоставления задачи пользователю … Tagged с DevJournal, GitHub, Git, Python.

Продолжая от последнего поста, давайте поговорим о принципах дизайна для предоставления задачи пользователю

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

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

Давайте рассмотрим:

Поднимая репо

Подвеска репозитория – самый простой путь. Игроку просто нужно щелкнуть значок «Вилка» в правом верхнем углу одного из репо LGTM. Это создает копию/вилку репо в аккаунте игрока, это Очень быстрый и низкий уровень фарки Анкет

Есть некоторые плюсы и минусы этого:

Плюсы:

  • Очень легко для игрока
  • Наш бэкэнд игры может получить уведомление GitHub, когда это происходит через крючки, поэтому мы знаем, кто развел наш репо, и мы можем начать игру для них
  • Наша бэкэнд игры может отправить билеты на выпуск в этот раздробленный репо
  • Легко отслеживать, кто играет в нашу игру, потому что мы можем видеть и перечислить все вилки!

Минусы:

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

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

Пользователь создает репо

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

Плюсы:

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

Минусы:

  • Комплекс для игрока

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

Мы создаем репо

Мы можем создать репо и поделиться им с игроком. Это намного проще для пользователя, чем он создает его, но есть и другие соображения:

Плюсы:

  • Репо теперь частное
  • Наш бэкэнд игры теперь может получить полный доступ
  • Проще для игрока

Минусы:

  • Наш аккаунт должен будет содержать один репо на одного игрока

Единственным недостатком этого варианта является то, что наше бэкэнд игры потребуется Отдельный репо на пользователя , чтобы мы могли поделиться этим. Если у нас есть 1000 игроков, нам понадобится 1000 репо. С кодовой точки зрения, это не проблема, но ли мы достигли бы какого -то своего рода предел счета ?

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

Вывод

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

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

Что интересно, так это то, что эти варианты не обязательно являются взаимоисключающими! Мы занимаемся обучением игрока GIT и GitHub, поэтому варианты, которые считались слишком сложными для игрока, могут стать жизнеспособными позже, просто играя! Это означает, что мы сохраняем возможность, чтобы пользователь поделился с нами репо на более поздних этапах игры.

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

Так что я собираюсь начать с GIT -задач, которые можно выполнить с пользователем, разбейте репо, и добавить более сложные задачи позже. Это ограничивает, с какого взаимодействия мы можем начать, но мы можем оставить все остальное для версии 2

Оригинал: “https://dev.to/meseta/lgtm-devlog-3-design-ideas-for-the-game-2-o01”