Налагодження мережі в стратегічних іграх у режимі реального часу


10

Яка сучасна сучасна мережа стратегічних ігор у режимі реального часу?

Здається, я згадую, що кілька років тому деякі титри AAA передавали лише входи гравців (Starcraft 1, Age of Empires). Оскільки це вимагає від вас, щоб все інше було повністю детермінованим, чи це все-таки життєздатний варіант? Синхронізація генераторів випадкових чисел здається можливою, але як бути з тонкими відмінностями в реалізації FPU тощо?

Або стратегічні ігри використовують щось наближене до ігрових мереж, де замість цього передаються окремі сутності (з певною формою прогнозування та (дельта) стиснення)?

Якщо так, як до них відносяться летючі предмети, як снаряди?

Що з клієнтом / сервером порівняно з одноранговим? Я здогадуюсь, що все це сильно взаємопов’язане.

Спасибі за ваш час!


Дублікат протоколу гри RTS - так, це все ще робиться. Щодо різної реалізації FPU, дивіться тут і тут .
BlueRaja - Danny Pflughoeft

Відповіді:


5

http://www.gamasutra.com/view/feature/3094/1500_archers_on_a_288_network_.php Ось так і робиться мережа в іграх RTS. P2P - це також звичайний спосіб обробки з'єднань. Однак використання моделі часового кроку блокування призводить до роздратування випадків десинхронізації та обману. Існує хороший спосіб відновлення, коли відбувається десинхронізація, і всі ігри RTS просто говорять "Завершити матч". Помилки відстеження помилок десинхронізації - це теж кошмар.


1
Ще одна хороша стаття про заблоковані мережеві ігри з часовим кроком
tenpn


1

Це чудове прочитання і відповість на багато ваших запитань:

http://udn.epicgames.com/Three/NetworkingOverview.html

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

Щоб зробити все по-справжньому просто, я використовую комбінацію Reflection та Eventing, щоб повністю утримати моїх сутностей щодо мережевої сторони речей. Я також використовую поняття "Актор" і "Сила" (на відміну від "Актора" і "Пішака" в FPS, як Unreal). Це дозволяє по-справжньому приємне капсулювання та місце для зберігання грошей та іншої сили.

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