Lviv GameDev Mixer Данило Сиротинський "Практичний досвід...

Preview:

Citation preview

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

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

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 по мережі для кращої синхронізації

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

Recommended