Мультиплеер туториал 1: основы

2

Index

Tagged

Contributors

Stats

49,143 visits, 75,344 views

Tools

License

This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.

Published on 19 Dec, 2016. Last updated 25 Feb, 2019

Качество соединения

Некоторые измерения могут быть сделаны, чтобы определить качество связи в сети, что будет хорошим тестом вероятного качества игрового процесса. К ним относятся задержка , разность задержки пакетов (PDV) , потеря пакетов и Пропускная способность .

Задержка, пинг

В результате маршрутизации устройств и законов физики, каждому сообщению, отправленному в сети Интернет потребуется некоторое время, чтобы прибыть в пункт назначения. Время передачи называется latency , а иногда пинг . Это обычно где-то от 20 мс до 200 мс для любых двух игроков взятых в любой точке мира, хотя любой опытный игрок может сказать, что иногда это может быть за пределами этого диапазона. Игры, как правило, работают на 60 FPS, то есть каждый кадр занимает около 16 мс. Пинг 100 мс означает, что игра продвинется около шести кадров до прихода отправленного сообщения адресату. Если требуется ответ, то удваивайте: ответ придет ещё на шесть кадров позже.

В экшнах время отклика очень важно Хорошие игроки часто реагируют на события игрового процесса в течение десятков миллисекунд, и они становятся очень чувствительными к этим задержкам. Рассмотрим пулю движущиюся со скоростью 500 пикселей в секунду. За 200мс она проходит 100 пикселей, которые могут легко могут быть двумя разницами между точным попаданием и пальцем в небо.

Эта задержка передачи данных в сети Интернет создает некоторые сложные проблемы. Для справедливого результата все игроки должны видеть одно и то же и иметь равные возможности реагировать на события. На практике каждый игрок действует с разной временной задержкой и хост должен принимать решения о том, что на самом деле происходит. В то время как используются различные методы для компенсации временных задержек и попыток сохранить игру справедливой, любой опытный игрок скажет вам, что малое время задержки служит игровым преимуществом: вы увидите ход событий чуть раньше, чем другие игроки.

Packet Delay Variance (PDV) разность задержки пакетов

Еще одна проблема с задержкой является в том, что она может быть разной для каждого сообщения. Если два сообщения посылаются через Интернет, можно принять одно через 50ms, а второе через 70ms. Это называется разность задержки пакетов или PDV. В Construct 2 она измеряется как самая высокая задержка минус самая низкая задержка в течение последних нескольких измерений, поэтому в данном примере будет 20мс. Высокая PDV может быть вреднее, чем высокая задержка. Многопользовательский движок ожидает, когда сообщения будут прибывать и пытается компенсировать задержку. Высокая задержка с низкой PDV означает, что прогнозы о времени прибытия хорошо работают и компенсации является точной, что приводит к стабильной игре. Низкая задержка с высокой PDV означает, что сообщения приходят непредсказуемо и компенсации иногда неточны, что приводит к нестабильной игры, так как мультиплеер движок должен внести исправления и убрать преимущество низкой задержки.

Потери пакетов

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

Распространенной причиной потери пакетов является высокий трафик маршрутизатора, когда он получает быстрее, чем может обрабатывать. Если ёмкость превышена некоторые сообщения будут обработаны и переданы повторно, а остальные будут отброшены, чтобы сохранить некоторый уровень обслуживания. Если бы он должен был обрабатывать каждое сообщение, отставание будет продолжать увеличиваться, и с каждой повторной передачей становится все медленнее и медленнее, пока не сломается полностью. Для того, чтобы избежать этого - целесообразно попытаться передать меньшие сообщения с самой низкой приемлемой скоростью, что также делает их более перспективными для быстрой доставки.

Пропускная способность

И, наконец, пропускная способность относится к общей скорости, с которой данные могут быть отправлены. Все Интернет-соединения имеют максимальную скорость принятия и отдачи, часто измеряющуюся в мегабитах в секунду. Поскольку в байте восемь битов, деление на 8 даёт нам скорость в мегабайтах в секунду (так как большинство программных систем, в том числе Construct 2 измеряют данных в байтах, а не в битах). Например, соединение 40 мегабит / сек может в теории передавать 5 мегабайт в секунду. Тем не менее, обратите внимание, скорость загрузки может быть разной и обычно низкой у пользовательских подключений Интернета.

Пропускная способность может быть узким местом для больших игр. Чем больше пиров присоединится к игре, тем больше данных хост должен загрузить, чтобы сохранить все пиры актуальными. В конце концов хост достигнет предела скорости загрузки и потери пакетов начнут происходить. Это еще одна причина для отправки небольших сообщений с самой низкой приемлемой скоростью,поскольку она минимизирует необходимую пропускную способность.

  • 0 Comments

Want to leave a comment? Login or Register an account!