Актуальное
Новость

Фанат CS2 назвал главные проблемы сабтика — по его словам, система практически неисправима

47

Фанат Counter-Strike 2 рассказал о главных проблемах сабтика, из-за которых страдает игровой процесс шутера. Геймер отметил, что нововведение работает не так, как этого хотели бы разработчики из компании Valve. Большим постом с исследованием проблем новой системы пользователь под никнеймом carnifexCSGO поделился на reddit.

Да, я собираюсь взять на себя роль того самого человека, который будет говорить, что Valve, сделавшая эту игру, не понимает, как игра работает. Недавно один из разработчиков Джон Макдональд сказал, что большинство претензий игроков к сабтику ошибочны из-за cl_showpos. Я докажу, что это совершенно неверно и что сабтик в перемещении персонажей непоследователен на практике и не может работать даже в теории.

Здесь будет некоторое повторение моих предыдущих постов, но также и несколько новых объяснений и мыслей.

Что такое сабтик в движении?

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

Если вы один из тех людей, которые считают, что сабтик гарантирует, что вы будете двигаться мгновенно при нажатии клавиши перемещения, то вы просто ошибаетесь. Я много раз видел, как это обсуждалось на reddit. Забудьте все, что, по вашему мнению, вы знаете о сабтике, и позвольте мне объяснить, что это такое на самом деле.

Сабтик — это, по сути, всего лишь тикрейт 64. При движении без сабтика (например, в CS:GO или CS2 с консольными командами) вам нужно будет подождать 0–15,6 мс, пока моделька переместится. Вы никогда не начнете двигаться раньше с сабтиком. Вы начнете двигаться точно с того же тика, что и раньше. Состояние игры не способно обновиться раньше.

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

Источник: reddit

Пользователь отметил, что модельки в CS2 двигаются с разной скоростью.

В чем смысл сабтика?

Очевидно, что намерения Valve состояли в том, чтобы сделать нажатия клавиш более «точными». Например, авторы хотят, чтобы движения в игре были более отзывчивыми и сразу перемещали персонажа в момент, когда была нажата клавиша. Теоретически это звучит хорошо, но на деле всё выходит иначе.

Таким образом, идея разработчиков заключается в том, что, если вы нажмете клавишу перемещения «поздно», вы также начнете ускоряться позже в течение этого тика. У этого есть некоторые последствия, о которых, я думаю, Valve никогда особо не задумывалась. Разработчики считают, что вам не следует смотреть на скорость в тиках, поскольку теперь движения смещены относительно тиков. <...>

В этом-то и заключается проблема. Игра по-прежнему основана на тиках, поэтому, даже если движение смещено в сторону, на самом деле между тиками ничего не происходит.

Проблемы сабтика

Я начну с того, что приведу конкретный пример того, что просто не должно так работать. Поскольку игра по-прежнему основана на тиках, но движения смещены, это приводит к неприятным последствиям. Я создал специальный калькулятор, подключил его к игре и проанализировал результаты, которые получил, подключившись к функциям перемещения на сервере (cl_showpos не используется!), чтобы убедиться, что все правильно. Итак, согласно моим тестам, ускорение с 0 ед/с до 250 ед/с должно при «выключающих сабтик» биндах в CS2 или CS:GO всегда занимать 35 тиков. С сабтиком CS2 это не так. Причина кроется в проблеме с реализацией сабтика.

Источник: reddit
Результаты расчетов ускорения моделек в CS | Источник: reddit
Результаты расчетов ускорения моделек в CS | Источник: reddit

Как вы можете видеть, ускорение с 0 до 250 ед/с часто занимает 36 тиков при сабтике вместо 35. Почему? Ну, поскольку перемещение смещено, а игра по-прежнему обновляется с фиксированной частотой в 64 тика, перемещение, по сути, обрабатывается в неправильное время, и на практике, поскольку между тиками ничего нет, вы не достигнете 250 единиц в секунду раньше, чем на 15,6 мс позже обычного. Переход от 0 до 250 ед/с всегда должен занимать одинаковое количество времени, но это не так. Если вам удастся нажать клавишу перемещения точно после тика, вы переместитесь на 250 единиц в секунду за 35 тиков, если вы нажмете клавишу перемещения немного позже, вам потребуется 36 тиков для достижения максимальной скорости. Это один из примеров того, что сабтик не работает должным образом.

Прыжок в арку на Mirage

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

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

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

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

Стрейфы

Им также присущ элемент случайности. Я думаю, мы все можем согласиться с тем, что вы не можете засечь, когда нажимать клавишу во время тика, поскольку вы даже не знаете, когда начинается этот самый тик — вы не сверхчеловек. Проблемы могут показаться не особо критичными, если вы смотрите на геймплей в макро, но это может привести к неприятным ощущениям, когда вы делаете стрейфы и пикаете.

Источник: reddit

Подводя итог, пользователь отметил, что в игре нужно частично убрать сабтик.

Что бы мы получили, если бы убрали сабтик?

Если бы мы убрали сабтик, мы бы получили лучшие прыжки и приятные движения в игре, даже если они теоретически были бы менее точными относительно нажатий клавиш, чем если бы сабтик работал должным образом (хотя у нас и этого пока нет). Мы бы избежали проблем при столкновении с текстурами, как при прыжке в арку на Mirage, и не испытывали проблем с гранатами. Вы также могли бы гарантированно запрыгивать на ящики высотой 64 единицы.

Очевидно, что сабтик вызывает много проблем, которым, на мой взгляд, вообще нет места в Counter-Strike, и эти проблемы не перевешивают даже теоретические преимущества системы.

Counter-Strike — это игра, в которой все сводится к овладению механикой, повторению одних и тех же вещей снова и снова. Но это невозможно, когда в шутере есть элементы случайности вне вашего контроля. Можно ли исправить сабтик? В теории — да, но на практике это вряд ли достижимо. Идеальный сабтик, на мой взгляд, мгновенно бы отдавал серверу команду, когда пользователь нажимает клавишу. Но это действительно трудно сделать, почти невозможно на практике.

Valve следовало бы просто убрать сабтик в перемещении моделек, но сохранить его для стрельбы, и многие проблемы, с которыми в настоящее время сталкивается CS2, просто исчезли бы.

Источник: reddit

Ранее Valve порассуждала о проблемах, связанных с сабтиком. Представители компании Valve отметили, что видеозаписи, на которых были показаны моменты, где пуля не попадала в противника, демонстрировали иную проблему, не относящуюся к новой системе. «Цель сабтика — это предоставить всем опыт игры, который не зависит от количества тиков», — сообщили разработчики.

Комментарии