Каково современное состояние в сетевых стратегических играх в реальном времени?
Кажется, я вспоминаю, что несколько лет назад некоторые титулы ААА передавали только входы игроков (Starcraft 1, Age of Empires). Поскольку для этого необходимо, чтобы все остальное было полностью детерминированным, это все еще жизнеспособный вариант? Синхронизация генераторов случайных чисел кажется выполнимой, но как насчет тонких различий в реализациях FPU и т. Д.?
Или в стратегических играх используется нечто более близкое к сетевому действию, в котором вместо этого передаются отдельные объекты (с некоторой формой предсказания и (дельта) сжатия)?
Если да, то как обрабатываются летучие предметы, такие как снаряды?
А как насчет клиента / сервера по сравнению с одноранговой? Я предполагаю, что все это сильно взаимосвязано.
Спасибо за ваше время!
источник
Ответы:
http://www.gamasutra.com/view/feature/3094/1500_archers_on_a_288_network_.php Это все еще то, как работает сеть в играх RTS. P2P также является обычным способом обработки соединений. Однако использование модели временного шага блокировки приводит к раздражающему случаю рассинхронизации и мошенничества. Существует хороший способ восстановления, когда происходит рассинхронизация, и все игры RTS просто говорят «Выйти из игры». Ошибки рассинхронизации при отслеживании ошибок также являются кошмаром.
источник
Не для РТС, но любая динамичная игра потребует интерполяции и прогнозирования.
http://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking
источник
Это отличное чтение и ответит на многие ваши вопросы:
http://udn.epicgames.com/Three/NetworkingOverview.html
В моей стратегии / игре Tower Defense я использую модель клиент / сервер и могу пока сохранять все детерминистическое. Клиент только отправляет серверу запросы на выполнение каких-либо действий (но на самом деле ничего не делает ), а сервер отправляет обновления, создания и удаления клиентам, когда все меняется. Несмотря на то, что моя игра в настоящее время детерминирована, я никогда не доверяю своим клиентам делать что-то правильно, сервер является главным и имеет полный контроль над игрой. Клиент просто тупой терминал.
Чтобы сделать все по-настоящему простым, я использую комбинацию «Отражение» и «Событие», чтобы полностью скрыть свои сущности от сетевой стороны. Я также использую концепцию «Актер» и «Сила» (в отличие от «Актера и Пешки» в FPS, подобном Unreal). Это позволяет по-настоящему красиво заключить в капсулу и место для хранения денег и вещей Силы.
источник