SlideShare a Scribd company logo
South Gamedev Weekend
Real-Time мультиплеер с использованием Play Games Services
Почему нужно использовать именно это решение
1. Поддерживается Google
2. Безопасность и надёжность
3. Интеграция с другими продуктами Google
Комната
Participant
Participant
Participant
Participant
Participant
Participant
ParticipantParticipant
MESSAGING
PROTOCOL
Надёжный
● Целостность данных
● Порядок
● Гарантия доставки
● Повышенный пинг
● 1400 байт
Ненадёжный
● Целостность данных
● 1186 байт
Автоподбор
Смешанная
По приглашениям
import com.google.android.gms.games.multiplayer.realtime.*;
// ...
RoomConfig.Builder roomConfigBuilder = RoomConfig.builder(new RoomUpdateListener() { /* … */ });
roomConfigBuilder.setAutoMatchCriteria(RoomConfig.createAutoMatchCriteria(1, 1, 0));
Games.RealTimeMultiplayer.create(getApiClient(), roomConfigBuilder.build());
// ...
onRoomCreated
onJoinedRoom
onLeftRoom
onRoomConnected
Комната заполнена
RealTimeMultiplayer.create(...)
RealTimeMultiplayer.join(...)
RealTimeMultiplayer.leave(...)
...
RoomUpdateListener
import com.google.android.gms.games.multiplayer.realtime.*;
// ...
RoomConfig.Builder roomConfigBuilder = RoomConfig.builder(new RoomUpdateListener() { /* … */ });
roomConfigBuilder.setAutoMatchCriteria(RoomConfig.createAutoMatchCriteria(1, 1, 0));
roomConfigBuilder.setVariant(1);
roomConfigBuilder.setMessageReceivedListener(new RealTimeMessageReceivedListener() { /* ... */ });
roomConfigBuilder.setRoomStatusUpdateListener(new RoomStatusUpdateListener() { /* ... */ });
Games.RealTimeMultiplayer.create(getApiClient(), roomConfigBuilder.build());
// ...
import com.google.android.gms.games.multiplayer.realtime.*;
public class RoomStatusUpdater implements RoomStatusUpdateListener {
// ...
@Override
public void onPeersConnected(Room room, List<String> list) {
String roomId = room.getRoomId();
byte[] message = "hello".getBytes();
int size = list.size();
for(int index = 0; index < size; ) {
String participantId = list.get(index++);
RealTimeMultiplayer.sendReliableMessage(getApiClient(), null, message, roomId, participantId);
}
}
// ...
}
import com.google.android.gms.games.multiplayer.realtime.*;
public class RoomStatusUpdater implements RoomStatusUpdateListener, RealTimeMessageReceivedListener {
// ...
@Override
public void onRealTimeMessageReceived(RealTimeMessage realTimeMessage) {
Log.w("Multiplayer", format("Message from %s!", realTimeMessage.getSenderParticipantId()));
Log.w("Multiplayer", new String(realTimeMessage.getMessageData()));
}
// ...
}
● goo.gl/38oaxt - пример реализации с использованием приглашений и
встроенного UI
● goo.gl/MXskDc - пример реализации turn-based игры
● goo.gl/zPHvGp - официальное описание принципов работы (и ссылки на
реализации под конкретные платформы)
● goo.gl/yNy1iT - javadoc
● moikrug.ru/seroperson - я на “моём круге”

More Related Content

Viewers also liked

FINAL presentation
FINAL presentationFINAL presentation
FINAL presentationColm Farrell
 
SOC Newsletter Spring 2011 (1)
SOC Newsletter Spring 2011 (1)SOC Newsletter Spring 2011 (1)
SOC Newsletter Spring 2011 (1)Jon Antol
 
PhysioSensing_pt
PhysioSensing_ptPhysioSensing_pt
PhysioSensing_pt
Pedro de Jesus Mendes
 
Audiencia
AudienciaAudiencia
Audiencia
DEYSITATIANAIB
 
Fin de año
Fin de añoFin de año
Fin de año
AriLilhium
 
Эффективный отдел техподдержки сайтов без вашего участия, Максим Мул (Рабочие...
Эффективный отдел техподдержки сайтов без вашего участия, Максим Мул (Рабочие...Эффективный отдел техподдержки сайтов без вашего участия, Максим Мул (Рабочие...
Эффективный отдел техподдержки сайтов без вашего участия, Максим Мул (Рабочие...
IT61
 
Silabo de historia del derecho
Silabo de historia del derechoSilabo de historia del derecho
Silabo de historia del derecho
DEYSITATIANAIB
 
Small Small Catch Monkey:The Success Story of Laurelwood
 Small Small Catch Monkey:The Success Story of Laurelwood Small Small Catch Monkey:The Success Story of Laurelwood
Small Small Catch Monkey:The Success Story of Laurelwood
vakunta
 
Trabajos segunda parcial de historia del derecho
Trabajos segunda parcial de historia del derechoTrabajos segunda parcial de historia del derecho
Trabajos segunda parcial de historia del derecho
DEYSITATIANAIB
 
REPL в Node.js: улучшаем быт разработчик
REPL в Node.js: улучшаем быт разработчикREPL в Node.js: улучшаем быт разработчик
REPL в Node.js: улучшаем быт разработчик
IT61
 
Album de fotografias sobre las redes sociales
Album de  fotografias sobre las redes socialesAlbum de  fotografias sobre las redes sociales
Album de fotografias sobre las redes sociales
DEYSITATIANAIB
 
DOCENTE
DOCENTEDOCENTE
Redes sociales
Redes sociales Redes sociales
Redes sociales
DEYSITATIANAIB
 
Universidad técnica de ambatotrabajo de ntics angel diaz
Universidad técnica de ambatotrabajo de ntics angel diazUniversidad técnica de ambatotrabajo de ntics angel diaz
Universidad técnica de ambatotrabajo de ntics angel diaz
Ángel Fer Dìaz
 

Viewers also liked (16)

FINAL presentation
FINAL presentationFINAL presentation
FINAL presentation
 
SOC Newsletter Spring 2011 (1)
SOC Newsletter Spring 2011 (1)SOC Newsletter Spring 2011 (1)
SOC Newsletter Spring 2011 (1)
 
PhysioSensing_pt
PhysioSensing_ptPhysioSensing_pt
PhysioSensing_pt
 
Audiencia
AudienciaAudiencia
Audiencia
 
Fin de año
Fin de añoFin de año
Fin de año
 
Эффективный отдел техподдержки сайтов без вашего участия, Максим Мул (Рабочие...
Эффективный отдел техподдержки сайтов без вашего участия, Максим Мул (Рабочие...Эффективный отдел техподдержки сайтов без вашего участия, Максим Мул (Рабочие...
Эффективный отдел техподдержки сайтов без вашего участия, Максим Мул (Рабочие...
 
Silabo de historia del derecho
Silabo de historia del derechoSilabo de historia del derecho
Silabo de historia del derecho
 
Small Small Catch Monkey:The Success Story of Laurelwood
 Small Small Catch Monkey:The Success Story of Laurelwood Small Small Catch Monkey:The Success Story of Laurelwood
Small Small Catch Monkey:The Success Story of Laurelwood
 
Messi
MessiMessi
Messi
 
Trabajos segunda parcial de historia del derecho
Trabajos segunda parcial de historia del derechoTrabajos segunda parcial de historia del derecho
Trabajos segunda parcial de historia del derecho
 
REPL в Node.js: улучшаем быт разработчик
REPL в Node.js: улучшаем быт разработчикREPL в Node.js: улучшаем быт разработчик
REPL в Node.js: улучшаем быт разработчик
 
Album de fotografias sobre las redes sociales
Album de  fotografias sobre las redes socialesAlbum de  fotografias sobre las redes sociales
Album de fotografias sobre las redes sociales
 
DOCENTE
DOCENTEDOCENTE
DOCENTE
 
Redes sociales
Redes sociales Redes sociales
Redes sociales
 
Universidad técnica de ambatotrabajo de ntics angel diaz
Universidad técnica de ambatotrabajo de ntics angel diazUniversidad técnica de ambatotrabajo de ntics angel diaz
Universidad técnica de ambatotrabajo de ntics angel diaz
 
About-Veracity
About-VeracityAbout-Veracity
About-Veracity
 

More from IT61

Александр Шорин - Как перестать гоняться за кандидатом и начать жить?
Александр Шорин - Как перестать гоняться за кандидатом и начать жить?Александр Шорин - Как перестать гоняться за кандидатом и начать жить?
Александр Шорин - Как перестать гоняться за кандидатом и начать жить?
IT61
 
Нина Марменкова - Найти себя и нАЙТИ своих
Нина Марменкова - Найти себя и нАЙТИ своихНина Марменкова - Найти себя и нАЙТИ своих
Нина Марменкова - Найти себя и нАЙТИ своих
IT61
 
Павел Седаков - Performance review: теория и практика оценки эффективности ра...
Павел Седаков - Performance review: теория и практика оценки эффективности ра...Павел Седаков - Performance review: теория и практика оценки эффективности ра...
Павел Седаков - Performance review: теория и практика оценки эффективности ра...
IT61
 
Дмитрий Костюк - Необходимые инструменты и качества для роста менеджера
Дмитрий Костюк - Необходимые инструменты и качества для роста менеджераДмитрий Костюк - Необходимые инструменты и качества для роста менеджера
Дмитрий Костюк - Необходимые инструменты и качества для роста менеджера
IT61
 
Константин Гуфан - Чем должны заниматься менеджеры и чем они на самом деле за...
Константин Гуфан - Чем должны заниматься менеджеры и чем они на самом деле за...Константин Гуфан - Чем должны заниматься менеджеры и чем они на самом деле за...
Константин Гуфан - Чем должны заниматься менеджеры и чем они на самом деле за...
IT61
 
Ольга Стратанович - Менеджер будущего
Ольга Стратанович - Менеджер будущегоОльга Стратанович - Менеджер будущего
Ольга Стратанович - Менеджер будущего
IT61
 
Константин Гуфан - Сколько лет живет любовь к работе?
Константин Гуфан - Сколько лет живет любовь к работе?Константин Гуфан - Сколько лет живет любовь к работе?
Константин Гуфан - Сколько лет живет любовь к работе?
IT61
 
Организация тестирования в Inostudio
Организация тестирования в InostudioОрганизация тестирования в Inostudio
Организация тестирования в Inostudio
IT61
 
Нагрузочное тестирование API. Как летать, а не ползать?
Нагрузочное тестирование API. Как летать, а не ползать?Нагрузочное тестирование API. Как летать, а не ползать?
Нагрузочное тестирование API. Как летать, а не ползать?
IT61
 
Calabash. Автоматизированное тестирование мобильных приложений
Calabash. Автоматизированное тестирование мобильных приложенийCalabash. Автоматизированное тестирование мобильных приложений
Calabash. Автоматизированное тестирование мобильных приложений
IT61
 
Особенности тестирования мобильных приложений
Особенности тестирования мобильных приложенийОсобенности тестирования мобильных приложений
Особенности тестирования мобильных приложений
IT61
 
Machine learning на примере алгоритма ценообразования, Овсеп Авакян
Machine learning на примере алгоритма ценообразования, Овсеп АвакянMachine learning на примере алгоритма ценообразования, Овсеп Авакян
Machine learning на примере алгоритма ценообразования, Овсеп Авакян
IT61
 
Machine learning c использованием нейронных сетей, Дмитрий Лапин
Machine learning c использованием нейронных сетей, Дмитрий ЛапинMachine learning c использованием нейронных сетей, Дмитрий Лапин
Machine learning c использованием нейронных сетей, Дмитрий Лапин
IT61
 
Изоморфизм как предметное поле data science, Артем Москалец
Изоморфизм как предметное поле data science, Артем МоскалецИзоморфизм как предметное поле data science, Артем Москалец
Изоморфизм как предметное поле data science, Артем Москалец
IT61
 
Data scientology starter pack, Сергей Казаков
Data scientology starter pack, Сергей КазаковData scientology starter pack, Сергей Казаков
Data scientology starter pack, Сергей Казаков
IT61
 
Параллельное управление, Елена Сибилева (Жмек дизайн)
Параллельное управление, Елена Сибилева (Жмек дизайн)Параллельное управление, Елена Сибилева (Жмек дизайн)
Параллельное управление, Елена Сибилева (Жмек дизайн)
IT61
 
Тренды в процессах разработки, Константин Иванов (TradingView)
Тренды в процессах разработки, Константин Иванов (TradingView)Тренды в процессах разработки, Константин Иванов (TradingView)
Тренды в процессах разработки, Константин Иванов (TradingView)
IT61
 
Амина Прима - Ой, все! Я ухожу
Амина Прима - Ой, все! Я ухожуАмина Прима - Ой, все! Я ухожу
Амина Прима - Ой, все! Я ухожу
IT61
 
Как перестать беспокоиться и начать тестировать или это волшебное слово Agile
Как перестать беспокоиться и начать тестировать или это волшебное слово AgileКак перестать беспокоиться и начать тестировать или это волшебное слово Agile
Как перестать беспокоиться и начать тестировать или это волшебное слово Agile
IT61
 
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNgДело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
IT61
 

More from IT61 (20)

Александр Шорин - Как перестать гоняться за кандидатом и начать жить?
Александр Шорин - Как перестать гоняться за кандидатом и начать жить?Александр Шорин - Как перестать гоняться за кандидатом и начать жить?
Александр Шорин - Как перестать гоняться за кандидатом и начать жить?
 
Нина Марменкова - Найти себя и нАЙТИ своих
Нина Марменкова - Найти себя и нАЙТИ своихНина Марменкова - Найти себя и нАЙТИ своих
Нина Марменкова - Найти себя и нАЙТИ своих
 
Павел Седаков - Performance review: теория и практика оценки эффективности ра...
Павел Седаков - Performance review: теория и практика оценки эффективности ра...Павел Седаков - Performance review: теория и практика оценки эффективности ра...
Павел Седаков - Performance review: теория и практика оценки эффективности ра...
 
Дмитрий Костюк - Необходимые инструменты и качества для роста менеджера
Дмитрий Костюк - Необходимые инструменты и качества для роста менеджераДмитрий Костюк - Необходимые инструменты и качества для роста менеджера
Дмитрий Костюк - Необходимые инструменты и качества для роста менеджера
 
Константин Гуфан - Чем должны заниматься менеджеры и чем они на самом деле за...
Константин Гуфан - Чем должны заниматься менеджеры и чем они на самом деле за...Константин Гуфан - Чем должны заниматься менеджеры и чем они на самом деле за...
Константин Гуфан - Чем должны заниматься менеджеры и чем они на самом деле за...
 
Ольга Стратанович - Менеджер будущего
Ольга Стратанович - Менеджер будущегоОльга Стратанович - Менеджер будущего
Ольга Стратанович - Менеджер будущего
 
Константин Гуфан - Сколько лет живет любовь к работе?
Константин Гуфан - Сколько лет живет любовь к работе?Константин Гуфан - Сколько лет живет любовь к работе?
Константин Гуфан - Сколько лет живет любовь к работе?
 
Организация тестирования в Inostudio
Организация тестирования в InostudioОрганизация тестирования в Inostudio
Организация тестирования в Inostudio
 
Нагрузочное тестирование API. Как летать, а не ползать?
Нагрузочное тестирование API. Как летать, а не ползать?Нагрузочное тестирование API. Как летать, а не ползать?
Нагрузочное тестирование API. Как летать, а не ползать?
 
Calabash. Автоматизированное тестирование мобильных приложений
Calabash. Автоматизированное тестирование мобильных приложенийCalabash. Автоматизированное тестирование мобильных приложений
Calabash. Автоматизированное тестирование мобильных приложений
 
Особенности тестирования мобильных приложений
Особенности тестирования мобильных приложенийОсобенности тестирования мобильных приложений
Особенности тестирования мобильных приложений
 
Machine learning на примере алгоритма ценообразования, Овсеп Авакян
Machine learning на примере алгоритма ценообразования, Овсеп АвакянMachine learning на примере алгоритма ценообразования, Овсеп Авакян
Machine learning на примере алгоритма ценообразования, Овсеп Авакян
 
Machine learning c использованием нейронных сетей, Дмитрий Лапин
Machine learning c использованием нейронных сетей, Дмитрий ЛапинMachine learning c использованием нейронных сетей, Дмитрий Лапин
Machine learning c использованием нейронных сетей, Дмитрий Лапин
 
Изоморфизм как предметное поле data science, Артем Москалец
Изоморфизм как предметное поле data science, Артем МоскалецИзоморфизм как предметное поле data science, Артем Москалец
Изоморфизм как предметное поле data science, Артем Москалец
 
Data scientology starter pack, Сергей Казаков
Data scientology starter pack, Сергей КазаковData scientology starter pack, Сергей Казаков
Data scientology starter pack, Сергей Казаков
 
Параллельное управление, Елена Сибилева (Жмек дизайн)
Параллельное управление, Елена Сибилева (Жмек дизайн)Параллельное управление, Елена Сибилева (Жмек дизайн)
Параллельное управление, Елена Сибилева (Жмек дизайн)
 
Тренды в процессах разработки, Константин Иванов (TradingView)
Тренды в процессах разработки, Константин Иванов (TradingView)Тренды в процессах разработки, Константин Иванов (TradingView)
Тренды в процессах разработки, Константин Иванов (TradingView)
 
Амина Прима - Ой, все! Я ухожу
Амина Прима - Ой, все! Я ухожуАмина Прима - Ой, все! Я ухожу
Амина Прима - Ой, все! Я ухожу
 
Как перестать беспокоиться и начать тестировать или это волшебное слово Agile
Как перестать беспокоиться и начать тестировать или это волшебное слово AgileКак перестать беспокоиться и начать тестировать или это волшебное слово Agile
Как перестать беспокоиться и начать тестировать или это волшебное слово Agile
 
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNgДело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
 

Мультиплеер с использованием Google Play Games