Игра с друзьями в моментальные игры

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

Связанные игроки

Метод FBInstant.player.getConnectedPlayersAsync() позволяет получить список пользователей, которые связаны с текущим игроком в Messenger. Этот метод возвращает только связанных пользователей, которые предоставили игре разрешение на доступ к своей информации.

Примечание. Этот метод не позволяет определить, играли люди в разных контекстах или в одном. Информацию о контексте можно получить из FBInstant.context.getPlayersAsync().

Получение списка друзей игрока

FBInstant.player.getConnectedPlayersAsync()
  .then(function(players) {
    _leaderboard.render(players);
  }); 

Получение списка игроков в контексте

FBInstant.context.getPlayersAsync()
  .then(function(players) {
    _leaderboard.render(players);
  }); 

Смена контекста

В Моментальные игры можно играть в разных контекстах, например в переписках Messenger или в новостях из Ленты. Вызовы SDK, приведенные ниже, позволяют переключать контексты из любого сеанса вне зависимости от точки входа. Это означает, что игроки смогут переключаться на другие переписки, не выходя из игры и не запуская ее повторно.

Сменить контекст можно тремя способами:

  • FBInstant.context.chooseAsync() открывает нативный диалог, где игрок может выбрать, в какую переписку перейти.
  • FBInstant.context.switchAsync(contextId) позволяет разработчику отправить игрока в предварительно настроенный контекст (например, чтобы продолжить матч, начатый в другой переписке).
  • FBInstant.context.createAsync(playerId) пытается создать контекст с указанным игроком (например, чтобы начать матч между игроком и рекомендуемым другом).

Организация состязаний с другими игроками

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

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

Осмысленная социальная динамика в геймплее делает моментальную игру увлекательнее и мотивирует пользователей делиться вашей игрой с друзьями.

Рекомендуемое использование:

  1. Используйте API Matchmaking, чтобы дать игрокам возможность играть совместно не только с друзьями, но и с другими людьми. Это особенно полезно в случае с пошаговыми и многопользовательскими играми, но может быть полезным и в других играх, если у пользователя нет друзей, играющих в эту же игру, или они играют недостаточно регулярно, либо если он просто хочет поиграть в новой компании.
  2. Заменяйте участников, вышедших до завершения матча, ботами.

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

Существуют два способа сопоставления:

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

По умолчанию минимальное и максимальное количество игроков, сопоставляемых одновременно в одной переписке, составляет 2 и 20 соответственно. Эти значения можно изменить в файле fbapp-config.json.