Unity - керівництво master server

Кожен окремий екземпляр запущеної гри надає параметр "тип гри" Game Type Master Server. Коли гравець підключається і запитує у Master Server відповідність типу гри Game Type. сервер відповідає, висилаючи список відповідних запущених ігор, до поточної кількості підключених гравців в кожній з них і потрібно чи пароль для підключення. Для передачі цих даних використовуються дві функції: MasterServer.RegisterHost () для сервера, і MasterServer.RequestHostList () для клієнта гравця.

Коли викликається RegisterHost. від вас вимагається вказати три аргументи - gameTypeName (раніше упомянтуий Game Type), gameName і comment - щоб хост зареєстрували. RequestHostList використовує як аргумент the gameTypeName хостів, до яких ви хотіли б підключитися. Список всіх зареєстрованих хостів цього типу буде переданий запитувачу клієнту. Це асинхронна операція і весь список буде отримано через PollHostList (). після того як він буде повністю переданий.

Функції NAT punchthrough обробляються на Master Server, в дійсності, окремим процесом, званим Facilitator. але Master Server Юніті запускає обидві служби паралельно.

Реєстрація гри (Registering a game)

Перед реєстрацією гри, важливо включити або вимкнути функції NAT, в залежності від того, чи підтримується NAT хостом; ви можете це зробити за допомогою параметра useNat з Network.InitializeServer.

Сервер можна запустити кодом, подібним до цього: -

C # script example

JS script example

Якщо хост включив NAT без необхідності, він все одно залишиться доступним. Однак, клієнти, які не можуть реалізовувати NAT punchthrough можуть невірно подумати, що вони не можуть підключитися, через те, що сервер включив NAT.

Підключення до гри

В ході реєстрації або запитів висилається об'єкт HostData object. Він містить наступну інформацію про вузол: -

Мережевий GUID (Global Unique Identifier - унікальний 128-бітний ідентифікатор) хоста. Необхідний для підключення з використанням NAT punchthrough.

Ця інформація може використовуватися клієнтами, щоб побачити можливості підключення хостів. Коли включений NAT, вам необхідно використовувати GUID хоста для підключення. Все це автоматично обробляється для вас, коли ви отримуєте HostData при підключенні. Шаблон для підключення може виглядати якось так:

C # script example

JS script example

Цей приклад виводить всю доречну інформацію про вузол, отриману від Master Server. До цього може бути додана інша корисна інформація, така як пінг, або географічне розташування хостів.

NAT punchthrough

Наявність NAT punchthrough може визначатися тим, чи підходить конкретний комп'ютер для використання в якості сервера. У той час, як деякі клієнти можуть мати можливість підключитися, у інших можуть виникати проблеми при підключенні до будь-якого NAT сервера.

просунуте

У Unity Technologies також є діючий Master Server, доступний для цілей тестування і цей сервер буде використовуватися за замовчуванням. Однак, вихідний код знаходиться у вільному доступі, і сервер може використовуватися в операційних системах Windows, Linux і Mac OS. На додаток до простій збірці проекту з початкових кодів, можливі випадки, коли вам потрібно змінити спосіб, яким Master Server звертається з інформацією і як він коммуницирует. Наприклад, ви можете оптимізувати обробку даних про хостах або обмежити число клієнтів, що повертаються в список хоста. Подібні зміни зажадають модифікацій вихідного коду. Інформація з цього приводу може бути знайдена на Master Server Build page.

Завантаження рівня по мережі

Побудова своїх власних мережевих серверів Юніті.