Если в настоящее время у вас был интерес к файтингам, вы, вероятно, слышали термин «откат сетевого кода», распространенный вокруг. Разработчики файтингов, такие как Arc System Works, делают эту функцию важным аргументом в пользу некоторых из своих недавних файтингов, и даже Riot Games задействовала поезд отката сетевого кода для своей предстоящей файтинга Project L.
Игроки в файтинг всегда ищут быстрые и стабильные онлайн-соединения. Поскольку многие игроки не могут посещать офлайн-мероприятия и играть в игры с другими игроками, сетевой сетевой режим часто является единственным доступным им вариантом. В частности, для файтингов хорошее соединение означает, что вы сможете выполнять свои действия, выполнять комбо и реагировать на путаницу противника.
Это означает, что для сохранения здоровой базы игроков для игры необходима наилучшая онлайн-игра. К счастью, в последние годы разработка более плавного и быстрого онлайн-взаимодействия расцвела в форме «отката сетевого кода». Чтобы понять, что такое сетевой код отката, важно понимать разницу между откатом и сетевым кодом на основе задержки.
Что такое сетевой код на основе задержки?
Во-первых, основы файтинга — это то, как измеряются атаки. Это почти как мера времени в файтингах. Например, атака персонажа может происходить в 3 кадрах, а более медленные атаки другого персонажа могут выходить в 5 кадрах. Когда вы нажимаете кнопку на своем контроллере, компьютер считывает ее как ввод и выполняет атаку. По логике вещей, когда два игрока нажимают кнопки, игра получает оба ввода и обрабатывает их одновременно.
Это характерно для автономной игры, и именно поэтому игроки файтингов предпочитают практиковаться в автономной сети. Если подумать логически, когда информация пересылается по сети, всегда есть задержка. Драки должны компенсировать эту задержку, чтобы ваши входные данные не приходили с опозданием и приходили одновременно с противником. (Представьте, что вы нажали кнопку, и вам пришлось подождать секунду, прежде чем ваша атака вышла, в то время как ваш противник успевает провести свои атаки раньше.)
Скриншот через Atlus
Сетевой код на основе задержки был предыдущим доминирующим способом компенсации этой задержки в сети. По сути, происходит то, что игра искусственно задерживает ввод данных как для удаленного, так и для локального игрока. Например, если ход должен выйти в 5 кадрах, игра может искусственно заставить его выйти в 8 кадрах. Это же ограничение накладывается на обоих игроков. Игроки, которые привыкли играть в автономном режиме, почувствуют эту разницу, поэтому в сообществе часто высмеивают сетевую игру. (Это упрощение того, что происходит на самом деле.)
Теоретически, если бы Интернет был постоянным полем битвы, где исчезли колебания, это было бы не так уж плохо. Бывают случаи, когда сетевой код на основе задержки работает хорошо и, возможно, лучше, чем сетевой код отката. (Это с учетом расстояния между двумя игроками.) Однако, как мы все знаем, Интернет не является равным игровым полем. Колебания случаются постоянно.
Представьте, что в вашем соединении наблюдается всплеск, и информация с вашего контроллера не может достигнуть сети. Вы нажимаете кнопку A, но из-за всплеска вашего интернета он не может вовремя добраться до вражеского игрока. Что случается? Игра зависает и тормозит, потому что это единственный способ обеспечить одновременное поступление всех входных данных.
Что такое откат сетевого кода?
Скриншот от Gamepur
Так что же такое откат сетевого кода и почему игроки файтингов сплотились за ним, как за лучшую игру онлайн? Помните, как сообщество Super Smash Bros. взбесилось после того, как разработчики отказались включить откат?
По сути, сетевой код отката устраняет задержку, предсказывая ваши входные данные. Игра сама попытается предсказать ваш ввод и покажет его противнику. Например, если игра ожидает, что вы примените огненный шар Рю по врагу, это то, что игра покажет врагу. Однако представьте, если бы вы вместо этого использовали другую атаку? Игра «откатится» и исправит то, что произошло на самом деле. Игра перематывается к другому состоянию, в котором на самом деле была проведена ваша вторая атака.
Так в чем же преимущество отката сетевого кода? Разве это не означало бы, что игра будет постоянно перематываться в разные состояния? На самом деле, в большинстве случаев эта перемотка происходит за такой короткий промежуток времени, что ее трудно даже заметить. Если есть огромный всплеск лагов, и игра правильно предсказывает все входные данные одновременно, то вы не заметите изменений в игровом процессе.
Скриншот от Gamepur
Фактически, игры часто предсказывают определенные кадры в будущем с большой точностью. Представьте, что вы блокируете длинную цепочку вражеского давления. Что вы будете делать в будущем, как вам кажется в игре? Будете ли вы пытаться бороться с противником или продолжите блокировать? В большинстве случаев вы выбираете блокировку, и игра правильно это предугадывает.
При правильной реализации сетевой код отката может сделать игру намного более быстрой и плавной для всех. Guilty Gear: Strive имеет отличный сетевой сетевой код, и турниры между США и Японией проходят с большим успехом. Это было бы невозможно в сетевом коде, основанном на задержке, так как задержка была бы слишком сильной.
Ars Technica гораздо глубже разбирается в том, что делает откат сетевого кода таким замечательным, и глубже погружается в понимание того, как работают эти два стиля сетевого кода. Если вам интересно, посмотрите их статью. Youtuber Core-A Gaming также имеет полезное видео по откату сетевого кода, включая наглядные примеры и интервью с разработчиками игр. Вы можете посетить его канал или посмотреть видео ниже: