13
Мій досвід синхронізації ігор по мережі Данило Сиротинський

Lviv GameDev Mixer Данило Сиротинський "Практичний досвід синхронізації ігор по мережі"

Embed Size (px)

Citation preview

Page 1: Lviv GameDev Mixer Данило Сиротинський "Практичний досвід синхронізації ігор по мережі"

Мій досвід синхронізації ігор по мережіДанило Сиротинський

Page 2: Lviv GameDev Mixer Данило Сиротинський "Практичний досвід синхронізації ігор по мережі"

Зміст презентації

1. Архітектура мережевих ігор2. Розробка власного рішення на прикладі гри Ballad Blades3. Робота з Photon Network4. Інтернетизація гри Tyran

Page 3: Lviv GameDev Mixer Данило Сиротинський "Практичний досвід синхронізації ігор по мережі"

Звязуємся зі світом

Page 4: Lviv GameDev Mixer Данило Сиротинський "Практичний досвід синхронізації ігор по мережі"

Види архітектур

1. Авторитарний сервер (Authoritative server) 2. Передбачення на клієнті (Client-side prediction)3. Паралельна симуляція (Parallel simulation)

Page 5: Lviv GameDev Mixer Данило Сиротинський "Практичний досвід синхронізації ігор по мережі"

Авторитарний сервер

Page 6: Lviv GameDev Mixer Данило Сиротинський "Практичний досвід синхронізації ігор по мережі"

Передбачення на клієнті

Page 7: Lviv GameDev Mixer Данило Сиротинський "Практичний досвід синхронізації ігор по мережі"

Паралельна симуляція

Page 8: Lviv GameDev Mixer Данило Сиротинський "Практичний досвід синхронізації ігор по мережі"

Власне рішення в Ballad Blades

0. Вирішили допиляти нетворкінг1. Розробили мережевий протокол2. Зробили авторитарний standalone сервер3. Синхронізували сутності4. Переробили на client-server

Page 9: Lviv GameDev Mixer Данило Сиротинський "Практичний досвід синхронізації ігор по мережі"

Photon Network

Page 10: Lviv GameDev Mixer Данило Сиротинський "Практичний досвід синхронізації ігор по мережі"

Працюємо з фотоном

1. Сервак чи клауд2. Створюємо кімнату3. Інтегруємо з обєктами PhotonView4. Синхронно викликаємо команди RPC5. Синхронізовуємо поля з допомогою OnPhotonSerializeView ()

Page 11: Lviv GameDev Mixer Данило Сиротинський "Практичний досвід синхронізації ігор по мережі"

Tyran

Page 12: Lviv GameDev Mixer Данило Сиротинський "Практичний досвід синхронізації ігор по мережі"

Нетворкінгуємо Tyran через Photon

0. Інтеграцією мережевої логіки займаємося з самого початку1. Id базуються на PhotonView2. Photon.offlineMode для офлайн гри3. Вбудовуємо RPC глибоко в ігрову архітектуру4. Розмежовуємо відповідальність за своїх юнітів на кожного з клієнтів5. Враховуємо час виклику RPC по мережі для кращої синхронізації

Page 13: Lviv GameDev Mixer Данило Сиротинський "Практичний досвід синхронізації ігор по мережі"

Дякую за Увагу!