Что такое пакеты в играх
Что такое пакеты в играх
Потеря пакетов данных — это один из трёх основных параметров, которые мы используем для измерения качества соединения в FIFA. Мы также измеряем пинг и джиттер.
Для того, чтобы сетевые матчи проходили гладко, движение игровых данных должно быть быстрым, надёжным и стабильным. Потеря пакетов может привести к менее надёжному передвижению данных.
Чтобы понять, как потеря пакетов данных влияет на игровой процесс, нужно сначала понять, что же такое пакет.
Пакеты содержат данные, которые необходимо получать и отправлять при игре по сети. Это могут быть данные о нажатии кнопки, положении мяча, текущей тактике команды и прочая игровая информация. Без передвижения пакетов игровых данных между вашей консолью или ПК и центрами обработки данных FIFA играть по сети в FIFA невозможно.
Когда все пакеты отправляются и возвращаются быстро, надёжно и стабильно, отклик в ваших сетевых играх будет быстрым. Если же движение пакетов медленное, ненадёжное и нестабильное, это негативно сказывается на отклике.
Потеря пакетов данных — это количество или процент пакетов игровых данных, которые не прошли путь от вашей консоли или ПК к центрам обработки данных FIFA и обратно.
Для нормальной сетевой игры требуется быстрая, надёжная и стабильная доставка пакетов игровых данных. Если один или несколько пакетов игровых данных не смогли преодолеть весь путь, то их необходимо послать заново, что увеличивает время выполнения действий игрока в игре. Кроме того, это может привести к задержке следующих пакетов, которая продлится до тех пор, пока вызванный потерей изначального пакета сбой не будет восстановлен.
В случае крайне редкой потери пакетов вы можете либо вообще не заметить влияния на игру, либо ощутить небольшую задержку между нажатием кнопки и выполнением соответствующего действия в игре. Если же потеря пакетов происходит систематически, в игре могут случаться задержки («лаги») с последующим ускорением, замирания изображения и даже разрывы соединения.
Отсутствие потерь пакетов означает, что пакеты игровых данных без каких-либо помех отправляются в центры обработки данных.
Ознакомьтесь с нашими статьями, чтобы узнать об этом больше.
Информация о состоянии соединения в FIFA
» text-negative-area-place-holder=»Напишите комментарий» text-positive-area-place-holder=»Напишите комментарий» cta-positive-label=»Да» cta-negative-label=»Нет» >
«Своя Игра»: что такое и как ее есть
«Своя игра» — передача с НТВ, которая обрела вторую жизнь в Интернете благодаря программисту-энтузиасту Владимиру Хилю. Он перенес телевизионную забаву на компьютеры в виде игры-приложения, которая не только не теряет актуальности, но и становится популярнее с каждым днем.
Возможно, вы про игру слышали. Возможно, вы видели по ней стримы. Возможно, ТЕОРЕТИЧЕСКИ, вы видели по ней стримы паблика ЦиО:
И у вас, ВОЗМОЖНО, появились следующие вопросы:
А где игру взять?
А как в нее играть?
А где брать пакеты для игры?
А как делать пакеты самому?
На все вопросы я постараюсь ответить в этом блоге. Также весь рассказ я решил поделить на 2 части: для игроков и для людей, которые хотят создавать свои пакеты вопросов, а не баловаться чужими (хотя можно реализовывать оба (ОБОИ) варианта).
Итак, вы решили поиграть в «Свояк». Что вам нужно знать?
SIGame можно скачать с официального сайта разработчика. Там же можно стянуть редактор пакетов с вопросами, но о нем позже. Сайт максимально прост в понимании и поиске нужной информации, поэтому если вы не комментатор с ютуба — найдете за пару секунд.
Правила «Своей Игры» достаточно просты. Перед вами есть табло из тем. Музыка, фильмы, игры, картины, спорт, книги — это может быть что угодно (даже аниме!). В каждой категории есть несколько вопросов, которые, обычно, отличаются ценой. Ну вы знаете, вот эти вот «Юмор за 200», «фильмы за 400», эта штука пошла именно из «Свояка».
От цены зависит сложность вопроса. Чем больше стоимость — тем труднее будет задачка.
Когда первый игрок выбирает вопрос, все участники игры (кроме, разумеется, ведущего), могут после зачитывания оного нажать на специальную кнопку, тем самым показывая желание ответить на вопрос.
красным выделены зоны, на которые можно нажать ЛКМ, чтобы ответить на вопрос
Но обычно люди назначают себе специальную клавишу, которую они будут жать прямо как настоящую кнопку в настоящем телешоу. Обычно все делают это на пробел, но тут кому как удобнее. Можете хоть на F13 забить, если вам так нравится. Выбрать кнопку можно в настройках, что хитро спрятались в нижнем левом углу экрана (указаны фиолетовой стрелочкой для людей, не вкачивающих Восприятие).
Да, кстати, пока вы не вышли из настроек. Дружеский совет: зайдите во вкладку «Приложение» и снимите галочку с пункта «Звук». Это выключит все внутри игровые звуки, музыкальные и видео вопросы вы будете слышать вне зависимости от настроек.
Вернемся к правилам. Если вы нажали кнопку ответа и дали правильный ответ — вы получаете указанную сумму очков. Если вы сделали то же самое, но НЕ ответили на вопрос — вы ее теряете. Не нажали кнопку вообще? Значит, с вашим внутриигровым балансом ничего не произошло. Вы просто остались в стороне.
Помимо обычных вопросов есть небольшие сюрпризы:
1. Кот в мешке обычный
Вопрос, который обязательно нужно отдать. Его тема может отличаться от указанной категории. Скажем, вы выбрали вопрос «Книги за 300», а там кот в мешке на тему поэзии, стоймость 500. Абсолютно нормальная ситуация.
2. Кот в мешке обобщенный
То же самое, только этого кота вы можете как отдать, так и оставить себе. ВАЖНО: только обобщенному коту в мешке можно прописать функцию «показать тему кота ДО выдачи этого самого кота кому-то из игроков». Я для честности игры обычно всегда выбираю его и прописываю эту функцию, чтобы кот не был уж совсем случайным наобумом.
На этот вопрос ответит не тот, кто раньше нажмет на кнопку, а тот, кто предложит за него больше очков. Участники по очереди ставят свои кровные, стараясь перебить ставку предыдущего. А еще можно уйти в ВА-БАНК. Тогда все следующие игроки тоже должны будут идти в ва-банк. Или пасовать, отдавая вопрос победителю.
И да, если вы выиграли торги за вопрос — вам придется на него отвечать. И свою ставку вы можете еще и потерять, дав неверный ответ.
4. Вопрос от спонсора
Если вы попали на этот пункт — вы везунчик. Вопрос только для вас, в случае неудачи очков вы не теряете, а при правильном ответе вы получаете удвоенную награду. Халява!
Так же у игры есть финал. Обычно это несколько вопросов, каждый принадлежит разной теме. Игроки по очереди убирают пункт за пунктом, пока не останется одна тема, на которую все участники и будут отвечать. Цена вопроса — то, что сами игроки отважатся поставить. И, как обычно, если ответ неправильный, то они указанную сумму теряют.
Кстати, если вы не согласны с решением ведущего касательно ответа на последний вопрос, справа снизу вы можете нажать кнопку «оспорить» и начать голосование. Если большинство проголосует за то, что ведущий ведет откровенный произвол, баллы вернутся на место. Но обычно эта функция нужна только для игр с рандомами — друзей всегда можно послать к черту через войс-чат или при личной встрече.
КАК ИГРАТЬ ВЕДУЩЕМУ
Ну какая игра без человека, что своим властвующим перстом будет указывать плебеям на их ошибки и вознаграждать мудрецов за их острый ум незримыми очками? Геймплей за ведущего очень прост и нужен для тех людей, что хотят зависнуть в «Свояк» с пацанами, но при этом не хотят думать. Ну и для авторов пакетов, конечно.
У них все просто — сравнивай ответ игрока с правильным и давай\отнимай у него очки. Так же ведущий может определять игрока, что в начале игры первым будет выбирать вопрос и снимать\давать очки на свое усмотрение с помощью панели в правом нижнем углу.
Ой-ой-ой, чуть не забыл. Мистер ведущий, не забудь в настройках подкрутить время, отведенное на действия игроков: длина раунда, время на дачу ответа и т.д. Настраивайте, как вам удобно, лишь скажу что время раунда стоит выкрутить на максимум, если хотите сыграть все вопросы. Я настроил вот так:
Через настройки помимо времени можно настроить фальстарты и прочие полезные вещи. Потратье минутку и побродите там, чтобы настроить все необходимое под себя. И да, когда создаете сервер с пакетом — НЕ СТАВЬТЕ ГАЛОЧКУ НА СЛУЧАЙНЫЕ СПЕЦ-ВОПРОСЫ. Если вы ее поставите, игра по своему велению превратит вопросы в вашем пакете в случайных котов в мешке, аукционы и прочее.
ГДЕ ВЗЯТЬ ПАКЕТЫ ВОПРОСОВ
Их можно найти на все том же официальном сайте SIGame в галерее, а так же в официальном паблике ВК. Помимо этого есть куча групп и сообществ, посвященных «Свояку», которые так же собирают\производят свои пакеты.
В целом, это вся основная информация, что вам нужна. И если вас напугала эта стена текста — не пугайтесь, на самом деле в «Свояке» все интуитивно понятно и разобраться во всех сложностях можно чуть ли не на ощупь.
И да, не забудьте настроить игровой профиль! Модный ник, стильная аватарка — ну куда же без этого?
Вот тут можно все настроить. К слову, ваша аватарка должна быть на компьютере. Игра ее не сохраняет, поэтому удалили картинку — вместо аватарки пустое место.
ДЛЯ ТЕХ, КТО ХОЧЕТ СОЗДАВАТЬ СВОИ ПАКЕТЫ ВОПРОСОВ
И вот вы оглянуться не успели, как у вас за плечами уже около пары десятков отыгранных пакетов. За это время вы наелись любительским контентом по самые уши: одни и те же вопросы (УГАДАЙТЕ, КОМУ ПРИНАДЛЕЖИТ ЦИТАТА «ЧТО ТАКОЕ БЕЗУМИЕ» — этот вопрос всем любителям геймерских паков встречается чуть ли не каждую вторую игру), идиотские загадки, ошибки по фактике… В общем, дерьмо случается.
Насмотревшись на этот цирк, вы решаете сделать СВОЙ, КРУТОЙ, КЛАССНЫЙ ПАКЕТ С ВОПРОСАМИ. Скажем, вы киноман? Тогда вы ЩЩЩАС покажете всем этим дилетантам, что такое ВОПРОСЫ ПРО КИНО, а не банальные «угадай Охотников за Привидениями по их музыкальной теме». Ну что же, вперед!
1. Качаем редактор пакетов.
Берется на все том же сайте, где и сам «Свояк». Где именно — НЕ СКАЖУ. Считайте это проверкой на IQ — если вы не в состоянии найти синенькую ссылочку на сайте в 1 страничку, то вам не стоит заниматься пакетами вопросов.
Ладно, это было комедийное отступление. Просто 1 пункт был слишком маленький, и я решил разбавить его водой. КАКОВ ХИТРЕЦ.
2. Открываем редактор.
Мы запускаем SIQester и видим примерно такую картину:
В центре вам предложат открыть старые пакеты вопросов (если вы уже занимались какими-либо пакетами), а слева вверху (я даже красной стрелочкой указал где) можно как открыть файл со своего диска, так и создать новый. Создаем новый.
Настройки отличаются количеством раундов, категорий и вопросов в этих самых категориях, а также наличием\отсутствием финального раунда. В целом, берите любой вариант — в процессе создания пакета любой элемент игры можно спокойно удалять\создавать, так что если вы выберете стандартный формат из 3 раундов, никто не запретит вам добавить, скажем, еще 12.
И ВСЕ ПРО АНИМЕ, АХАХАХАХАХХАХА извините
3. Начинаем творить!
Вот как-то так будет выглядеть рабочее пространство. Ваш пакет — это такое дерево, где все идет по убывающей. Сначала раунды, которые раскрываются на категории. Потом категории разворачиваются на вопросы, а внутри них вы настриваете содержание. По порядку варианты вопросов: текстовый, картинка, музыка, еще картика, кот в мешке. В скобочках вы пишите ответ, который будет отображаться ведущему как правильный (через пкм можно настроить дополнительные ответы и неправильные варианты). Цифры слева — цена вопроса, ее тоже можно регулировать.
Еще можно вставить видео, но тут (как и со всеми медиа-файлами в пакете) надо помнить одну вещь — размер файла. Старайтесь по возможности не всовывать в пакет вещи весом больше мегабайта-двух, так как игра не всегда успевает шустро прогружать большие файлы. Особенно, если игроки с медленным интернетом или подключаются где-нибудь из Зимбабве.
Настраивать содержимое вопроса можно, выбрав его ЛКМ. После этого появляется данная менюшка с очень понятным и гибким редактором. Я даже его расписывать толком не буду — там все максимально просто. Единственные 2 вещи:
1. С помощью зеленого плюса можно добавлять пункты к вопросу. Они будут воспроизводиться сверху-вниз по порядку. Менять пункты можно синей стрелкой.
2.Иногда, при редактировании обобщенного кота в мешке, некоторые функции этого кота пропадают еще на этапе создания пакетов. Это глюк, появляющийся в дополнительных раундах\категориях (дополнительные = те, которые вы добавили сверх обычных 3 раундов\5 категорий). Просто создайте кота в первых 3 раундах\категориях и перетащите готового мышкой вниз. Или пересоздайте.
Главное без паники, ошибки случаются, так что перед серьезным стримом или еще каким паказом своего крутого пакета обязательно протестируйте его на вшивость с друзьями.
Дальше вы разберетесь сами. Только не забывайте сохранять свой труд — а то вдруг что потеряется.
1. Старайтесь писать условия категорий\вопросов максимально понятно. Тестируйте формулировки на играх с друзьями. Если они не поняли вопрос — возможно, вы его коряво написали.
Пример: категория называется «Музыкальные вопросы». Играет OST Ведьмака. Ваш друг Вован жмет кнопку и кричит «ВЕДЬМАК». А вы не засчитываете, ведь надо было назвать точную часть! Но откуда это знать Вовану? Чтобы конфуза не было, пишите в условиях «назовите ТОЧНОЕ название игры» или еще как-то уточните этот момент. Ну или словами скажите «Вован, назови часть, а то не засчитаю».
2. Все файлы для пакета складывайте в одну папку. В случае редактирования пакета у вас будет место, где взять файлы заново. А когда закончите — все лишнее можно удалить одним кликом.
В случае, если исходники вы уже удалили, а файл внутри пакета вам нужен, его можно выгрузить из пакета через все тот же SIQuester. Только потом спасенный файл нужно конвертировать через какую-нибудь программу (например, фотошоп или Sony Vegas).
3. Делайте пакет грамотно. Не спешите, посидите над ним пару дней, перепроверьте. Не гнушайтесь обрезать картинки и звук. Очень плохо качать музыку для вопроса из ВК и засовывать все ее 3 минуты 12 секунд (или сколько там будет) в игру, заставляя игроков все 3 минуты 12 секунд сидеть и слушать. Обрежьте ее до нужных 20 секунд через программы. Урежьте большие картинки до 720p, чтобы они быстро грузились и так далее.
4. Не будьте банальным. Прежде чем делать свой пакет, посмотрите или поиграйте чужие на ту же тему, на которую вы хотите делать, чтобы не повторять одни и те же популярные вопросы. Главная тема The Witcher 3, музыка из меню Divinity Original Sin, главная тема «Хороший, Плохой, Злой», скриншоты Bioshock — поверьте, все эти вещи и им подобные есть в десятках, если не в сотнях пакетов. Будьте оригинальным — вставьте какую-то другую песню из «Ведьмака» или добавьте такой скриншот из популярной игры, по которому она не сразу угадывается.
5. Держите баланс сложности. Оставьте простейшие вопросы на первый раунд, а сложную дичь — на последний. То же самое с дешевыми\дорогими вопросами. Старайтесь идти по нарастающей, а не «Вопрос за 100 — как звали третьего по счету статиста в сцене, где Арагорн ведет свое войско в последнем фильме по Властелину Колец?». Пожалейте тех, кто будет играть в ваш пакет.
В целом, если вы все это прочитали и не померли от скуки\непонимания, то считайте что вы на 99% знаток «Своей Игры» и всех ее подводных камней. Остается только либо играть, либо творить! Удачи!
Как работает неткод и от чего зависит его эффективность
Пришло время вооружиться знаниями обо всём, что связано с неткодом: от тикрейта до выделенных серверов и пиринговых (peer-to-peer или P2P) сетей.
Неткод – это непрофессиональный термин, используемый в основном разработчиками и геймерами, чтобы описывать одну из важнейших частей игр: онлайн-соединение и всё, что с ним связано. Иными словами, это фундамент, на котором строятся все мультиплеерные игры, и если фундамент оказывается шатким, то всё остальное уже не имеет значения. Играть в онлайне становится попросту неприятно. А когда неткод хорош, о нём даже не думаешь и просто наслаждаешься игрой. Но когда про неткод той или иной игры отзываются нелестным образом, что именно имеют в виду? Какие проблемы подразумеваются?
Неткод – это довольно обширное понятие, охватывающее многие аспекты сетевых игр. В данной статье мы рассмотрим составляющие каждого аспекта, чтобы понять, от чего зависит эффективность неткода. Для начала мы приведём список основных понятий, связанных с неткодом, которые будут использоваться ниже.
Если же вы хотите ознакомиться с основными заблуждениями по поводу неткода и компонентами, от которых зависит качественная игра по сети, переходите на вторую странице.
Важные термины, связанные с неткодом
Пинг
Вы смотрели фильм «Охота за “Красным Октябрём”», в котором «пинг» (активный импульс сонара) использовался для определения дистанции между американской и советской подводными лодками?
Так вот, пинг в современных онлайн-играх выполняет примерно ту же функцию.
Когда ПК или консоль «пингует» сервер, устройство отправляет ICMP-запрос (протокол межсетевых управляющих сообщений) на игровой сервер, после чего сервер присылает ICMP-ответ.
Время, которое проходит между отправкой запроса и получением ответа, и является пингом конкретного игрового сервера. Поэтому если пинг составляет 20 мс, это значит, что на передачу данных с клиента до сервера тратится 10 мс, поскольку пинг учитывает ещё и ответ сервера.
Чем выше пинг, тем более заметными становятся задержки и лаги во время игры, поэтому разумно будет выбирать сервера с низкими пингами – это одно из основных условий комфортного и отзывчивого геймплея.
Маршрутизация
Пакет данных пересылается на более-менее фиксированной скорости, поэтому пинг игрока напрямую зависит от расстояния между компьютером игрока и сервером. Однако оптико-волоконные или медные провода не идут напрямую в центр обработки данных, поэтому фактический путь, который проходят данные, как правило, не равен реальному расстоянию между сервером и клиентом – он может быть как короче, так и длиннее.
Ещё один фактор, влияющий на скорость передачи данных – это количество остановок, которые необходимо сделать пакету данных. Чем больше это число, тем выше вероятность того, что может произойти потеря пакета.
Существуют специальные утилиты вроде WTFast, создающие более «быстрые» (то есть короткие) маршруты с наименьшим количеством остановок. Однако эффективность подобных программ зависит от вашего местоположения и вашего интернет-провадера. Если провайдер позволяет создавать более короткие маршруты, то такие программы действительно могут помочь. Поэтому перед тем, как приобрести подписку на утилиту, обязательно проверьте, действительно ли она способна снизить количество задержек вашего интернет-соединения.
Потеря пакетов — куда делись мои данные?
Никто не гарантирует, что отправленный вашим устройством пакет данных достигнет точки назначения. Когда он исчезает по дороге, это называется потерей пакета, и это одна из главных проблем онлайн-игр, поскольку повторная отправка данных увеличивает время задержек.
Так что же вызывает потерю пакетов?
Потеря пакетов так же может быть вызвана проблемой с прошивкой роутера, технической неисправностью оборудования или же недостаточной пропускной способностью восходящих и нисходящих каналов.
Решить этот вопрос можно обновлением прошивки, простой перезагрузкой роутера или, если речь идёт о перегруженности восходящих или нисходящих каналов, приобретением роутера, в котором можно выставить высокий приоритет для активно используемых приложений. Рекомендуем обратить внимание на модель Edge Router X от фирмы Ubiquity.
Если же потеря пакетов происходит вне вашей домашней сети, вам остаётся лишь связаться со службой поддержки вашего провайдера и надеяться, что они исправят эту проблему.
Частота обновления
Помимо скорости передачи данных (пинг) задержка зависит ещё и от частоты, с которой игра отправляет запросы и получает ответы.
Если, допустим, игра делает это с частотой 30 Гц (30 обновлений в секунду), то между обновлениями проходит больше времени, чем в случае, если частота составляет 60 Гц.
Повышая частоту обновления, можно снизить уровень задержек в игре.
Поэтому если в игрока попадает 2 пули, то урон от этих двух пуль отправляется единым пакетом, и игрок получает урон от так называемой «суперпули», значительно превышающий урон от простых выстрелов.
На этом примере можно понять, что высокая частота обновлений нужна не только для снижения задержек в сети, но и для того, чтобы обеспечить плавный игровой опыт. К тому же при высокой частоте обновления потеря пакетов играет меньшую роль, тогда как низкая частота обновлений способна испортить впечатление от игры как игроку, страдающему от потери пакетов, так и тому, кто попался в его прицел. Чем меньше пакетов с данными вы получаете, тем важнее каждый из них.
Тикрейт
Тикрейт, или частота симуляции, – это показатель того, сколько раз в секунду игра создаёт и обрабатывает данные.
В начале очередного «тика» сервер запускает обработку полученных данных и обновляет с их помощью игровую ситуацию. Затем он отправляет результат клиенту и приостанавливает обработку до следующего тика. Чем быстрее завершается тик, тем раньше клиент получает обновлённые данные от сервера – иными словами, это сокращает задержку между сервером и клиентом. Высокий тикрейт означает плавную регистрацию попаданий.
При тикрейте в 60 Гц у сервера есть только 16.66 мс, в течение которых он должен завершить очередное обновление игровой ситуации. Поэтому если сервер имеет фиксированный тикрейт, он должен обновлять ситуацию в игре как можно быстрее или хотя бы вписываться в окно, выдаваемое тикрейтом.
В том случае, если сервер не справляется с этой задачей, последствия заметны невооружённым глазом: телепортирующиеся игроки, проблемы с физикой, выстрелы, проходящие сквозь цели и не задевающие их, и многое другое.
Модели сети
Теперь, вооружившись всеми терминами, самое время рассмотреть структуру, по которой работает большинство онлайн-игр. На данный момент существует три модели сети, используемые в многопользовательских проектах. Каждая из них имеет собственные плюсы и минусы.
1. Выделенный игровой сервер
Используя данную модель сети, разработчики могут заключать контракты с компаниями вроде i3d или использовать облачные сервера, в числе которых AWS от Amazon, Azure от Microsoft и Cloud Service от Google, чтобы создавать выделенные игровые сервера, к которым будут подключаться геймеры.
Игровой сервер в этом случае работает на мощном оборудовании, а центр данных обеспечивает достаточную пропускную способность, необходимую для обработки пакетов всех игроков, подключающихся к серверу. Благодаря своему централизованному дизайну данная модель позволяет контролировать античит-системы и эффект, который оказывают игроки с высоким пингом на регистрацию попаданий.
Минусом выделенных серверов является их высокая стоимость. Если игроки не готовы брать на себя эти затраты (а в большинстве случаев они действительно не готовы), то расходы ложатся на плечи издателей или разработчиков.
Ещё одна проблема заключает в том, что если вы выпускаете игру по всему миру, вам необходимо убедиться в том, что все, кто её купит, получат доступ к серверам с низкой задержкой. Если вы не сможете этого обеспечить, игрокам придётся терпеть высокий пинг, а это негативно скажется на популярности игры.
Итог. Выделенные игровые сервера – это лучший выбор для динамичных онлайн-игр, где в одном матче участвует более 2 игроков, но при этом это самый дорогой вариант, поскольку вычислительные мощности, пропускная способность и другие слагаемые комфортной игры предоставляются профессиональными компаниями.
2. Локальный сервер
Другая модель, которую некоторые путают с пиринговыми сетями, позволяет использовать ПК или консоль одного из игроков в качестве хоста – то есть устройство геймера фактически становится сервером.
В этом случае разработчикам не приходится тратиться на дорогостоящие выделенные сервера.
Данная модель позволяет геймерам в удалённых регионах играть вместе с друзьями на сервере с низкими показателями задержек (при условии, что все друзья живут неподалёку).
Одним из главных минусов этого варианта является тот факт, что игрок, являющийся сервером, получает заметное преимущество, поскольку его пинг равен нулю. Он видит противника на долю секунды раньше и, соответственно, открывает огонь раньше. При этом игрок-хост может искусственно увеличивать пинг других игроков, что даёт ему нечестное преимущество (таких игроков называют лаг-свитчерами).
Основной проблемой данной модели подключения является то, что скорость сервера целиком зависит от скорости и пропускной способности интернет-соединения хоста. Если же ПК-хост использует Wi-Fi, о комфортной игре можно забыть. В этом случае игрокам приходится мириться с лагами, потерей пакетов, телепортацией персонажей и плохо работающей регистрацией попаданий. Это также ограничивает частоту обновлений игры, поскольку большинство домашних сетей попросту не справляется с хостингом матча, к которому подключается более 10 игроков, и не способны обновляться с частотой 60 Гц.
Хост видит WAN IP-адреса других игроков, что позволяет ему блокировать их, а также (чисто теоретически) устраивать DDoS-атаку этих адресов. В подобных ситуациях античит-системы практически бесполезны, поскольку игровая ситуация обрабатывается целиком на компьютере такого же игрока.
Тем не менее, самым раздражающим элементом игры на локальных серверах является миграция хоста – процесс, запускающийся после выхода хоста из матча, при котором вся игра ставится на паузу в течение нескольких секунд, пока выбирается новый игрок на роль сервера.
Итог. Когда разработчик решает внедрить в игру систему локальных серверов, им движет лишь желание сэкономить, а не предоставить геймерам комфортный и плавный опыт игры.
3. Пиринговые сети
Пиринговые (или одноранговые) сети чаще встречаются в файтингах формата 1х1 и спортивных симуляторах, однако можно встретить и другие мультиплеерные игры, использующие данную модель для матчей, в которых участвуют более 2 игроков. В качестве примера можно привести Destiny и For Honor.
Реализация выделенных и локальных серверов работает по одной и той же схеме в каждой игре, тогда как пиринговые сети имеют множество различных моделей. Например, в играх серии Destiny в обработке игровых ситуаций частично используются выделенные сервера.
Но все пиринговые сети имеют одну общую особенность: все клиенты напрямую взаимодействуют друг с другом.
В результате все игроки видят WAN IP-адреса своих союзников и противников, и некоторые стримеры критикуют эту особенность, поскольку это повышает шансы стать жертвой DDoS-атаки.
Другой проблемой игр вроде For Honor и Destiny является то, что если к пиринговой сети подключается более 2 игроков, это значительно увеличивает нагрузку на сеть, особенно если речь идёт о домашнем интернет-соединении.
Разработчикам, использующим данную модель, сложнее внедрять античит-систему и вовремя исключать игроков с высоким пингом, чем при использовании с выделенных серверов.
Итог. В файтингах формата 1х1 или спортивных симуляторах пиринговая сеть (P2P) вполне оправдана, поскольку выделенный сервер только увеличит задержку, а локальный – даст одному из игроков несправедливое преимущество.
Но если мы говорим о динамичных мультиплеерных играх, в которых принимает участие более 2 геймеров, то лишь выделенные сервера способны обеспечить пропускную способность и вычислительную мощность, необходимые для высокого тикрейта и частоты обновления.
Поэтому важно понимать, что если разработчик или издатель внедряет в игру, мультиплеер которой рассчитан не только на 2 игроков, поддержку локальных серверов или пиринговых сетей, отказываясь от выделенных серверов, это говорит только об одном. Студия стремится сэкономить, а не обеспечить комфортную игру в онлайне.
Компенсация лагов
Каждый игрок сталкивается с задержками в процессе онлайн-игры, и причиной их является дистанция между сервером и клиентом, количество остановок пакетов с данными и частота обновлений, а также тикрейт сервера.
С этим связано ещё одно понятие онлайн-игр. Компенсация лагов. Из-за вышеупомянутых задержек мы бы видели игроков в том положении, где они находились несколько миллисекунд назад, а не там, где они находятся в данный момент. Если бы игра не компенсировала эти задержки, мы бы не смогли попадать по другим игрокам. Мы бы буквально стреляли по призракам.
Тем не менее, в некоторых играх данная компенсация переходит допустимые границы. Это приводит к нелепым и раздражающим ситуациям, при которых, например, игрок со стабильным соединением и с минимальным количеством лагов, находясь за укрытием, получает урон от игрока с запредельным пингом. Любители мультиплеера Rainbow 6 Siege поймут, о чём я говорю.
Играть с высоким пингом – это и так не самое приятное занятие, однако если игра компенсирует задержки длиннее 100 мс, это приводит к тому, что страдают как геймеры с высоким пингом, так и игроки с нормальным соединением.
DICE попыталась избавиться от этой проблемы в Battlefield 1, внедрив компенсацию лишь определённого процента задержки. Как только пинг игрока превышает установленный разработчиками порог, сервер перестаёт компенсировать дополнительные задержки, в результате чего игроку приходится самостоятельно приспосабливаться и корректировать свои выстрелы.
Это позволяет свести случаи, при которых игроки получают урон в укрытиях, к минимуму. На видео ниже продемонстрирована данная механика в действии:
Я бы хотел подчеркнуть, что издателям и разработчикам необходимо уделять внимание количеству создаваемых серверов. Причина, по которой в некоторых играх полно людей с высокими пингами, заключается в том, что в их регионах попросту не хватает серверов. Поэтому им приходится довольствоваться серверами, пинг на которых редко опускается ниже 150 мс.
Регистрация попаданий
В шутерах она нужна для того, чтобы определить, куда попал ваш выстрел.
Существует два вида регистрации попаданий. Самый простой и быстрый (на сленге называющийся «хитскан») обходится без учёта скорости полёта пули. Вы фактически стреляете лазерами, моментально достигающими цели. Данный вид регистрации попаданий используется в шутерах с маленькими картами, поскольку в тесных условиях скорость полёта пуль практически ни на что не влияет.
Но где именно происходят вычисления, связанные с регистрацией попаданий? Здесь тоже есть несколько вариантов.
Регистрация попаданий может происходить на вашем устройстве (клиенте), после чего на сервер (а в случае с P2P-сетью – на устройства других клиентов) будет отправляется отчёт о том, куда попал ваш выстрел. Данная схема позволяет с точностью до пикселя зафиксировать ваше попадание, но она весьма уязвима для различных читов вроде аимбота.
Поэтому если в игре регистрация попаданий происходит на устройстве игрока, важно, чтобы сервер проверял каждое из них и только после этого фиксировал его.
При классической системе регистрации попаданий все вычисления происходят на сервере. То есть клиент сообщает серверу, в каком направлении вы выстрелили, а сервер определяет, в кого или во что вы попали. К сожалению, это не устраняет проблему с читами полностью, но создавать читы и хаки в таких условиях становится сложнее.
Десинхронизация
В мультиплеерном матче игровая ситуация должна отображаться одинаково у всех. Однако временами происходит так называемая десинхронизация, когда, допустим, один игрок видит открытую дверь, тогда как на экране другого эта дверь закрыта. Причиной этого может являться баг, проблема с производительностью или неполадки со связью между клиентом и сервером или другими клиентами. Вашему клиенту может не дойти отчёт об изменении игровой ситуации или дойти, но не целиком – например, сервер сообщит о подрыве какой-нибудь бочки, но не отправит данных касательно того, где она приземлилась.
Заблуждения, связанные с неткодом
Вам кажется, что в неткоде легко запутаться? Вы не одиноки. Перед вами самые распространённые заблуждения на эту тему.
Достаточно увеличить тикрейт и высокий пинг перестанет быть проблемой.
Повышение тикрейта и частоты обновления с 30 до 60 Гц действительно сократит число задержек, однако это не «исправит» высокий пинг, поскольку частое обновление данных не означает, что они будут передаваться быстрее.
Для онлайн-игр нужно как минимум 100 Мб/с.
Если вы видите рекламу «высокоскоростного» тарифного плана у того или иного провайдера, учитывайте, что это касается в первую очередь пропускной способности – то есть скачивание и загрузка файлов будут происходить быстрей. Но это никак не влияет на саму скорость передачи данных.
Пропускная способность сети не связана с фактической скоростью передачи пакетов данных. Поэтому если вы перейдёте с 10 Мб/c на 100, пакеты данных не начнут передаваться в 10 раз быстрее.
За это отвечает «коэффициент скорости» медных или оптико-волоконных кабелей, которые соединяют сервер и клиент.
Коэффициент скорости (VF%) описывает скорость, с которой сигнал передаётся по кабелю, относительно скорости света. Например, коэффициент скорости витой пары категории 5e равен 64, а у оптико-волоконного кабеля он составляет 67.
Как показано на графике ниже, большинство онлайн-игр не особо требовательны к пропускной способности восходящих и нисходящих каналов.
Таким образом, если восходящий канал вашего интернет-соединения равен 2 Мб/c, у вас не должно возникнуть проблем. Если, конечно, не скачивать файлы или обновлять приложения во время игры.
Большинство проблем с сетью в онлайн-играх происходят внутри локальной сети игрока, а вызывают их электрические кабеля и WiFi.
Для WiFi (беспроводной локальной сети) характерна нестабильность. Частота 2.4 Гц обычно переполнена, а частота 5 Гц имеет меньший радиус действия, и низкая пропускная способность быстро приводит к перегрузке сети.
Ещё одним минусом WiFi является тот факт, что если у вас установлена точка доступа MU-MIMO, ваши клиенты не могут взаимодействовать с ней одновременно. Это приводит к увеличению задержки, поскольку ваш ПК вынужден ожидать «своей очереди», что чревато потерей пакетов данных.
Так что каким бы удобным ни выглядел WiFi, он ни в коем случае не подходит для онлайн-игр.
В Call of Duty используются пиринговые сети.
Игры из серии Call of Duty никогда не использовали одноранговые сети. Некоторые проекты франшизы CoD использовали только выделенные сервера, тогда как в других применялась смесь выделенных и локальных серверов (где хостом матча выступал компьютер определённого игрока).
Ингредиенты хорошего неткода
Использование лучшей модели сети
Пиринговые сети – это идеальный вариант для спортивных симуляторов или файтингов формата 1х1, тогда как для остальных игр необходимы выделенные сервера, эксплуатация которых сопряжена с серьёзными затратами.
Геймплей должен быть отзывчивым
Высокий тикрейт и частота обновлений позволят снизить уровень задержек и избавиться от «суперпуль» (с накопленным уроном).
Защита
Дизайн сети должен гарантировать безопасность (не доверять клиентам), чтобы ликвидировать возможность использования читов и хаков.
К тому же большинство игроков желает, чтобы игра не выставляла их IP-адреса на всеобщее обозрение (для этого необходимы выделенные сервера).
Низкие задержки – ключ к успеху
В процессе матчмейкинга игра не должна смешивать людей с низкими и высокими пингами.
Если в игре используются выделенные сервера, разработчики должны позаботиться о том, чтобы все игроки имели доступ к серверам с низким пингом. В противном случае это приведёт к волне недовольства. Ведь никому не понравится игра с пингом 150 мс (или выше), а геймеры с пингом 20 мс вряд ли будут в восторге, если выстрелы игроков с высоким пингом будут доставать их даже в укрытиях.
Ограничение компенсации лагов
Даже если матчмейкинг продуман таким образом, что к игре допускаются игроки с более-менее равным пингом, нет никаких гарантий, что в процессе матча у одного из них внезапно не вырастет пинг. Важно сделать так, чтобы компенсация лагов происходила в разумных пределах – другие игроки не должны страдать от проблем с соединением одного-единственного участника.
Не перегружайте домашние сети
Количество передаваемых пакетов в секунду порой бывает важнее пропускной способности сети. Если игра привязывает частоту отправки пакетов клиента к частоте смены кадров, то это может привести к тому, что частота отправки достигнет 200 Гц или выше. С этим столкнулись игроки Quake Champions, в мультиплеере которой происходили неприятные телепортации персонажей. Геймеры смогли решить эту проблему, только снизив частоту смены кадров.
Уведомляйте игроков о том, что что-то пошло не так
Игроков разочаровывает неотзывчивый геймплей в онлайн-режиме, и они в первую очередь винят в этом игру и её разработчиков. Поэтому создатели должны объяснять, в чём заключается проблема: в соединении игроков или в недоработках самой игры. Если дело в проблеме игрового сервера, необходимо сообщить об этом игрокам, чтобы они могли найти другой сервер для комфортной игры.