lviv gamedev mixer Данило Сиротинський "Практичний досвід...
TRANSCRIPT
Мій досвід синхронізації ігор по мережіДанило Сиротинський
Зміст презентації
1. Архітектура мережевих ігор2. Розробка власного рішення на прикладі гри Ballad Blades3. Робота з Photon Network4. Інтернетизація гри Tyran
Звязуємся зі світом
Види архітектур
1. Авторитарний сервер (Authoritative server) 2. Передбачення на клієнті (Client-side prediction)3. Паралельна симуляція (Parallel simulation)
Авторитарний сервер
Передбачення на клієнті
Паралельна симуляція
Власне рішення в Ballad Blades
0. Вирішили допиляти нетворкінг1. Розробили мережевий протокол2. Зробили авторитарний standalone сервер3. Синхронізували сутності4. Переробили на client-server
Photon Network
Працюємо з фотоном
1. Сервак чи клауд2. Створюємо кімнату3. Інтегруємо з обєктами PhotonView4. Синхронно викликаємо команди RPC5. Синхронізовуємо поля з допомогою OnPhotonSerializeView ()
Tyran
Нетворкінгуємо Tyran через Photon
0. Інтеграцією мережевої логіки займаємося з самого початку1. Id базуються на PhotonView2. Photon.offlineMode для офлайн гри3. Вбудовуємо RPC глибоко в ігрову архітектуру4. Розмежовуємо відповідальність за своїх юнітів на кожного з клієнтів5. Враховуємо час виклику RPC по мережі для кращої синхронізації
Дякую за Увагу!