Multiplayer — различия между версиями

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск
(Новая страница: «Объект необходим для мультиплеерной игры (пока что) между двумя (живыми) людьми. =Парамет…»)
 
Строка 57: Строка 57:
 
*'''состояние''' - Значение нового состояния.
 
*'''состояние''' - Значение нового состояния.
  
[[Файл:+.png]] '''парам''' -  
+
[[Файл:+.png]] '''другой игрок не сможет начать игру''' - оппонент отвалился до начала игры
 
*'''объект слушателя''' - объект у которого мы меняем состояние.
 
*'''объект слушателя''' - объект у которого мы меняем состояние.
 
*'''состояние''' - Значение нового состояния.
 
*'''состояние''' - Значение нового состояния.
 +
 +
==Обработчики реванша==
 +
 +
[[Файл:+.png]] '''нам предложили реванш''' - мы получили запрос на реванш от оппонента
 +
*'''объект слушателя''' - объект у которого мы меняем состояние.
 +
*'''состояние''' - Значение нового состояния.
 +
 +
[[Файл:+.png]] '''реванш принят''' - оппонент принял наш запрос на реванш
 +
*'''объект слушателя''' - объект у которого мы меняем состояние.
 +
*'''состояние''' - Значение нового состояния.
 +
 +
[[Файл:+.png]] '''реванш невозможен''' - по каким-то причинам мы\оппонент не можем начать реванш (например если мы потеряли коннект либо оппонент завершил игровую сессию)
 +
*'''объект слушателя''' - объект у которого мы меняем состояние.
 +
*'''состояние''' - Значение нового состояния.
 +
 +
[[Файл:+.png]] '''пытаемся восстановить игру''' -
 +
*'''объект слушателя''' - объект у которого мы меняем состояние.
 +
*'''состояние''' - Значение нового состояния.
 +
<br>
 +
 +
=Состояния=
 +
*'''game_infos''' - запрос у сервера информации по играм (на данный момент кол-во играющих людей: фейковое и настоящее), предварительно указав нужное кол-во записей в параметре '''param'''
 +
*'''want_game''' - запускает поиск оппонента, предварительно необходимо в параметр '''seed''' указать сид комнаты\игры\механики
 +
*'''abandon''' - закрывает сокет, прерывает текущее соединение. Необходимо вызывать при отмене поиска игры, отмене самой игры (выхода например), фейловой попытке реванша (если, например, не соблюдены какие-то условия) и любых других действиях, при которых мы покидаем текущего оппонента.
 +
*'''want_revanche''' - отправляем запрос на реванш. Если мы уже получили такой запрос от оппонента - вызов этого состояния будет расцениваться как принятие реванша.
 +
*'''invite''' - отправляет приглашение поиграть выбранному другу, предварительно необходимо задать параметр '''seed''', дабы он знал куда мы его тащим.
 +
*'''accept''' - принимает приглашение поиграть
 +
*'''confirm''' - подтвердить свои намерения играть с этим игроком

Версия 08:24, 19 июля 2017

Объект необходим для мультиплеерной игры (пока что) между двумя (живыми) людьми.

Параметры объекта Multiplayer

Общие параметры

  • multiplayer appId - айди приложения на сервере мультиплеера
  • timeout - таймаут для поиска игры - сколько времени мультиплеер будет ждать живого игрока
  • long timeout - длинный таймаут, для прерывания игры в нештатной ситуации - сколько игра будет ждать при потере связи, сворачивании приложения и т.п.
  • turnTime - сумарное время на ход игрока (с учетом спецэффектов)
  • seed - номер игрового уровня, пака или еще чего-то, известного конкретной механике

игра с другом

  • таблица друзей - таблица парсовых друзей
  • текст приглашения - id текстовой записи

Добавляемые свойства

+.png получена информация об играх на сервере - обработчик ответа на game_infos

  • объект слушателя - объект у которого мы меняем состояние.
  • состояние - Значение нового состояния.

Поиск игры

+.png игра создана - на сервере живой игрок найден и инфа о нём загружена (обычно)

  • объект слушателя - объект у которого мы меняем состояние.
  • состояние - Значение нового состояния.

+.png живой игрок не найден - таймаут на поиск оппонента закончился

  • объект слушателя - объект у которого мы меняем состояние.
  • состояние - Значение нового состояния.

Обработчики потери\восстановления соединение

+.png сокет потерян - начинаем повторное подключение - приложение потеряло соединение с сервером и пытается его восстановить

  • объект слушателя - объект у которого мы меняем состояние.
  • состояние - Значение нового состояния.

+.png повторное подключение успех - соединение с сервером восстановлено

  • объект слушателя - объект у которого мы меняем состояние.
  • состояние - Значение нового состояния.

+.png сокет потерян = повторное подключение невозможно - приложение не смогло восстановить связь и полностью отрубилось от текущей игровой сессии

  • объект слушателя - объект у которого мы меняем состояние.
  • состояние - Значение нового состояния.

+.png отвалился другой игрок - проблемы с соединением у оппонента

  • объект слушателя - объект у которого мы меняем состояние.
  • состояние - Значение нового состояния.

+.png вернулся другой игрок - оппонент восстановил связь, игра продолжается

  • объект слушателя - объект у которого мы меняем состояние.
  • состояние - Значение нового состояния.

+.png другой игрок не вернется - оппонент не смог восстановить соединение

  • объект слушателя - объект у которого мы меняем состояние.
  • состояние - Значение нового состояния.

+.png другой игрок не сможет начать игру - оппонент отвалился до начала игры

  • объект слушателя - объект у которого мы меняем состояние.
  • состояние - Значение нового состояния.

Обработчики реванша

+.png нам предложили реванш - мы получили запрос на реванш от оппонента

  • объект слушателя - объект у которого мы меняем состояние.
  • состояние - Значение нового состояния.

+.png реванш принят - оппонент принял наш запрос на реванш

  • объект слушателя - объект у которого мы меняем состояние.
  • состояние - Значение нового состояния.

+.png реванш невозможен - по каким-то причинам мы\оппонент не можем начать реванш (например если мы потеряли коннект либо оппонент завершил игровую сессию)

  • объект слушателя - объект у которого мы меняем состояние.
  • состояние - Значение нового состояния.

+.png пытаемся восстановить игру -

  • объект слушателя - объект у которого мы меняем состояние.
  • состояние - Значение нового состояния.


Состояния

  • game_infos - запрос у сервера информации по играм (на данный момент кол-во играющих людей: фейковое и настоящее), предварительно указав нужное кол-во записей в параметре param
  • want_game - запускает поиск оппонента, предварительно необходимо в параметр seed указать сид комнаты\игры\механики
  • abandon - закрывает сокет, прерывает текущее соединение. Необходимо вызывать при отмене поиска игры, отмене самой игры (выхода например), фейловой попытке реванша (если, например, не соблюдены какие-то условия) и любых других действиях, при которых мы покидаем текущего оппонента.
  • want_revanche - отправляем запрос на реванш. Если мы уже получили такой запрос от оппонента - вызов этого состояния будет расцениваться как принятие реванша.
  • invite - отправляет приглашение поиграть выбранному другу, предварительно необходимо задать параметр seed, дабы он знал куда мы его тащим.
  • accept - принимает приглашение поиграть
  • confirm - подтвердить свои намерения играть с этим игроком