Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
M2H_Networking_Tutorial_Translate.docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
46 Кб
Скачать
☆

Further network subjects explained Unity editor options related to networking

«Edit → Project settings → Network»

  • Sendrate: определяет, сколько раз в секунду будут посылаться сообщения об изменениях наблюдаемых (observed в networkview) объектах. Это не влияет на сообщения RPC. Уменьшение значения приводит к экономии трафика (и снижению точности работы приложения).

  • Debug level: определяет, как много сетевой отладочной информации покажет лог редактора.

«Edit → Project settings → Player»

  • Run in background: когда приложение запущено в роли сервера, оно требует включение этой опции для постоянной поддержки связи с клиентами.

Limiting traffic: Scoping and group limiting

Вы можете улчшить «сетевую производительность», ограничив количество пересылаемых данных. В сетевых играх игроки не должны получать каждый бит информации (всю информацию о происходящем на сервере). Он должен получать только то, что имеет для него значение. Есть две методики.

Первая. У компонента Network View есть функция SetScope:

function SetScope (player : NetworkPlayer, relevancy : bool) : bool

Это true для каждого игрока по умолчанию. Вы может установить false, если networkview далеко от игрока, и этот игрок больше не будет получать сообщения от данного networkview. Однако, это работает только для наблюдаемого (observed) значения, а RPC будут посылаться по-прежнему.

Второе. Сетевые функции:

static function SetReceivingEnabled (player : NetworkPlayer, group : int, enabled : bool) : void static function SetSendingEnabled (group : int, enabled : bool) : void

Эти две функции могут использоваться для ограничения отсылки/приёма, основанного на сетевых группах. Вы можете к примеру разделить вашу карту на 32 тайла (участка) и посылать/принимать информацию только тем пользователем (и от тех пользователей) которые находятся на расстоянии 8 тайлов от рассматриваемого игрока. Проблема в том, что групп может быть не более 32-х.

Securing the network connection

Добавление AES-шифрования, CRC, случайного шифрования SYNCookies и RSA-шифрования звуков — это сложно? К счастью, достаточно одной строки кода, чтобы внедрить это всё в игру.

function StartServer() { Network.InitializeSecurity(); // вся магия Network.InitializeServer(32, 25000); }

Вызывать InitializeSecurity() нужно перед инициализацией сервера. Этот режим безопасности добавит по 15 байтов на пакет в трафик.

Anti cheating

Даже с безопасностью от InitializeSecurity нужно предпринимать дополнительные меры предосторожности. Предположим, игрок знает, какой код вы используете, и он может редактировать сетевые пакеты под свои нужды. Таким образом, надо всегда проверять значения, которые мы получаем в этих пакетах. Тут не требуется много дополнительного кода — скорее, правильный дизайн.

Using a proxy

Отправляем вас в справку. Уж извините. http://unity3d.com/support/documentation/ScriptReference/Network-useProxy.html

Combat Lag: prediction, extrapolation and interpolation

Мы уже вкратце обсудили предсказание лагов в Tutorial 3. Когда есть авторитарный сервер, который принимает окончательные решения, стоит также использовать предварительный расчёт решения на клиенте.

Вот выдержка из мануала Unity:

«Экстраполяция состоит в том, что несколько последних (буферизированных) известных значений (например, позиций противника) используются для того, чтобы предсказать следующее значение. Интерполяция состоит в следующем. Иногда пакеты теряются. Предположим, пришёл пакет №1 с первой позицией противника, пакет №2 с "промежуточной" позицией потерялся, а пакет №3 с "новой" позицией пришёл. Происходит резкий скачок от первой позиции к третьей. Интерполяция как раз позволяет предположить перемещение противника между первым и третьим пакетами. В результате, перемещение сглаживается»

Примеры экстраполяции и интерполяции доступны в официальном примере «Network Example» и также присутствуют в главе «Example 4: FPS Game» этого урока.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]