Чи повинен хазяїн гри бути авторитетом чи іншим тупим клієнтом?


15

При розробці мережевої багатокористувацької гри, в якій один гравець, а інші підключаються, я знаю дві стратегії:

  • Нехай гравець-хазяїн буде авторитетом , а всі інші гравці як німі клієнти намагаються наздогнати поточний стан гри. У коді повинно бути багато особливих випадків, залежно від того, хостинг гравця поточний чи ні.
  • Зробіть хост-тупого клієнта, як і всі, запустивши прихований виділений сервер на іншому потоці. Виділений сервер буде авторитетом, і хост підключиться до нього, як і всі інші (через localhost).

Які переваги / недоліки кожного з них? Що використовується найчастіше (чи змінюється залежно від типу / розміру гри)?


Перший ви описуючий випадок може бути однією з форм P2P-мережі (з одним авторитетним клієнтом) та її, як правило, набагато складнішою і складнішою для впровадження та обслуговування.
акалтар

Відповіді:


13

Підхід до тупого клієнта найкраще з точки зору чистого дизайну - він сильно обмежує кількість різного коду, який вам потрібен між хостом і клієнтами, і дозволяє серверу працювати асинхронно. Мінус полягає в тому, що машина хоста вимагає додаткових ресурсів, але я думаю, що це завжди було.


8

Між цими двома варіантами підхід немов-клієнт, безумовно, найкращий з причин, які згадує DeadMG.

Є ще один варіант, який робить кожного клієнта авторитетом, він має перевагу німого клієнта в тому, що всі однолітки мають один і той же код. Інша перевага полягає в тому, що це може бути набагато справедливіше, якщо ви встановите правильні правила, оскільки ніхто не має переваги 0-відставання до сервера.

Звичайно, це може бути досить складно реалізовувати залежно від типу гри. Ваш протокол повинен мати справу з вирішенням конфліктів між однолітками, ймовірно, використовуючи якусь схему власності. Залишаючи лише конфлікти, коли двоє однолітків заявляють право власності на один ігровий об’єкт.

Багатокористувацькі протоколи Googling Peer-2-Peer можуть дати вам докладніші відомості про цей підхід.


1

Цікаво. Цей пост стверджує, що саме так "більшість стратегічних назв" реалізує мережу. Це справді правда? Це як, наприклад. Працюють командування та підкорення та зірка ?
BlueRaja - Danny Pflughoeft

@BlueRaja, так працює Starcraft, так. У Starcraft взагалі немає повноважень. Warcraft III та Starcraft II мають більш централізовану модель обміну повідомленнями, обробку затримок та відключення, але принципово однакові в тому, що кожен клієнт має власний ігровий стан.
Ротсор

Інша перевага цієї моделі мереж полягає в тому, що вона дозволяє підтримувати великі послідовні загальносвітові стани з мінімальним трафіком синхронізації.
Ротсор

Найбільшим недоліком цієї моделі є притаманна їй вразливість до "махінації", тобто виявлення деяких даних про стан гри, які гравець не може бачити.
Ротсор
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.