2B и автофейл
Сурс: https://youtu.be/8teIBNQfr7Q (основное видео вышло в далеком 2018 году, бОльшая часть статьи это просто перевод, поэтому многие действия описаны от лица вас 2018-го года, а сам перевод сделан с целью последующего дополнения и комментариев)
Здорова! НЕ СТАВИТЬ ОБЪЕКТЫ НА ОДНОМ И ТОМ ЖЕ ТИКЕ!
Это условие было в критериях ранкеда с самого начала osu! Если на одной временной шкале есть два объекта или объект, размещенный над слайдером, это считается неприемлемым, поэтому вы никогда не увидите такие ритмы на ранкед картах.
2B - это название, которое сообщество дало этому типу игрового процесса по, казалось бы, веской причине. В нормальном геймплее osu! можно играть с одной кнопкой, даже стримы, если вы, конечно, так умеете. Когда такой геймплей требует двух... двух кнопок на один бит (это имеет смысл, верно).
2 Buttons = 2b // Button — кнопка (пояснение для тех, кто не понял о чем речь)
Жаль, что отчасти это просто совпадение. Происхождение названия 2B происходит от китайской фразы. Первым символом здесь является число два,
а второй произносится как B, поэтому 2B непосредственно переводится…
«Тупой» немного точнее и правильней описывает игровой процесс 2B в osu! Он ломает расчеты стар рейтинга просто потому, что игра не предназначена для таких учетов, что приводит к чрезвычайно завышенным значениям. 2B конечно, поступает нечестно. Иногда это разумно, но есть безграничные возможности обмануть людей с физически невозможными размещением объектов.
И в некоторых ситуациях это может быть играбельным, но игра думает иначе. Например, когда вы доиграли карту и сразу же сфейлили (даже если у вас была полной полоска хп). Это печально известный Автофейл, который происходит на тоннах карт 2B. Вы можете идти на пасс, вы можете играть карту на SS, вы можете быть так же хороши, как и автомод, но равно были бы вынуждены cфейлить в конце этих карт. Учитывая, что 2B должным образом не поддерживается и не продвигается в ранкед картах, вполне ожидаемо, что у 2B будет категория без багов, хотя этому не всегда придерживаются. Некоторые карты, использующие 2B, позволяют игрокам пасснуть без проблем. Например, Aspire MinG'а ловнут и в ладдере есть скоры.


Другие карты 2B являются жертвами автофейла, таких как эта другая любимая карта без скоров.


Из этого вытекают следующие вопросы, что является причиной автофейла и есть ли способ этого избежать. Во первых, я не погромист и не могу сказать какие сточки кода приводят к автофейлу. Однако я могу посмотреть, как этого добиваются в маппинге. Для этого нужно найти какой тип геймплея ломает 2B. В качестве примера я посмотрел на чью-то незаконченную Aspire карту за 2017 год, которая вызвала автофейл. Он использовал 2B несколькими различными способами.
Иногда он расставлял слайдеры прям напротив друг друга, иногда ставил объекты так что приходится нажимать на объекты двойным нажатием, а иногда в середине тел слайдеров были расставлены объекты.



Удалив различные типы 2B, а затем протестировав их на предмет автофейла, я смог определить, что слайдеры с двойным нажатием на самом деле не проблематичны. Когда этот один большой слайдер был удален, карта фактически стала пассабельной. Рассматривая только секцию со слайдерами, автофейл - мне кажется довольно очевидным, что он каким-то образом вызван объектами, размещенными во время слайдеров.
Из вышесказанного можно сделать следующие выводы. Во-первых, в редакторе большой слайдер рендерится не полностью. Как только он достигает определенной точки, он просто исчезает. При уменьшении масштаба на таймлайне он появляется снова, но, несмотря на это, выглядит довольно сломанным и, возможно, связан с возникновением автофейла. В игровом процессе он действительно рендерится, но есть еще одна загвоздка. Slider-ball и тики попросту стоят на месте. Более конкретно, каждый тик после первого не регистрируется, даже если я вожу слайдер.
Точно так же будет, если я перестану вести слайдер, и при этом все равно будет виден Slider-ball, если бы я его ввел. Все это немного запутано, но если удалить тут круги, то мои догадки подтверждаются.
Автофейл можно было вызвать следующим образом. Сделайте длинный слайдер, и на него поместите ноты вот таким образом:
При размещении двух или более объектов во время действия слайдера таймер начинается с момента клика по первому объекту. Примерно через 550 миллисекунд после нажатия на эти объекты случится автофейл (в текущих версиях осу уже не случится).
Это означает, что если есть один объект 2B, то он может находиться в любом месте слайдера. Однако, если их два или более, они должны находиться в пределах 533 миллисекунд на конце слайдера, чтобы избежать автофейла.
Я был на правильном пути, но этот вывод был не совсем правильным. Важно не какое-то произвольное количество миллисекунд, а скорее другой фактор, управляемый на каждой карте. Прежде чем я понял, правильно ли это, я попытался посмотреть, смогу ли я обойти автофейл различными методами, которые включают в себя много тупых тестов, такие как сохранение карты с полностью уменьшенным таймлайном, игра с параметром "Slider Tick Rate", изменение BPM'а и ставля крайне низкий и высокий фреймрейт. Все это не дало каких-то результатов. Тогда я решил попробовать использовать моды.
Вы можете подумать, что если включить NF, то автофейла можно избежать, но это ведет к бесконечной паузе после завершения карты. Я надеялся что с HT и DT будет хоть какой-то результат, но все четно. Слайдер все еще ломается на том же самом месте. Но вот с EZ почему-то все получилось. Изначально я думал, что это связяно с одной из особенностей этого мода (дается 3 попытки после фейла), но после проверки на других картах, я пришел к выводу, что это что-то другое. Эти 550 миллисекунд были ошибочны. Другие карты уходили в фейл на немного других значениях и позже я осознал, что это завязано на значениях "Approach Rate» на карте.
Например, AR 9.3 показывает, что между появлением объекта проходит 554 миллисекунды. Вот почему на 554ms автофейл не срабатывал.
AR 0, у которого "Approach time" составляет 1800ms, автофейл срабатывает при этих значениях:
Вот почему HT и DT вообще не повлияли. AR масштабируется с изменением скорости, и именно поэтому EZ сработал, ибо он понижает значение AR. Итак, теперь мы в целом знаем причину автофейла. Я думал, что я закончил с этим на данный момент, но, увидев, как 2B работал на других картах, я понял, что все намного сложнее.
Рассматривая ту ловед карту с мертвым ладдерам, я заметил 2 вещи, которые ведут к автофейлу. Эта секция с длинным спиннером, которая на самом деле похожа на длинный слайдер, и этот относительно более короткий слайдер. Если все это удалить, карта наконец-то можно спокойно пассать, но она это также работает, если удалить только спиннер, по какой-то причине.


Вот эта секция тоже, по идее, должна вести к автофейлу, но это происходит, если удалить слайдер.
Честно, я до сих пор не понял, что триггерит игру, даже все время миссая. Когда 2B слайдеры расположены вдоль другого слайдеры, они, по-видимому, уменьшают вероятность автофейл произвольным образом. Сначала я подумал, что это что-то вроде сброса таймера, но тесты показали, что это не работает в зависимости от того, где другие объекты находятся на временной шкале. Если кто-то еще хочет точно определить, что вызывает автофейл 2b слайдеров, то милости прошу. Я просто собираюсь классифицировать все в соответствии с пару простыми правилами (которые не полностью согласуются, даже 2b не имеет смысла).
1) Одиночные 2B объекты всегда работают. Многочисленные зависят от AR и расстояния до конца слайдера.
2) 2B слайдеры дают больше снисхождения, если вы готовы с ними повозиться
Это все, что нужно знать о 2B автофейле вкратце. Это можно обойти, если вы будете осторожны, но полностью предотвратить невозможно, по крайней мере в этом игровом клиенте. Вы уже поняли, что мне нравится тестировать всякое в разных итерациях osu!, в связи с этим багом автофейла и мне стало любопытно, это что-то, что всегда было в игре, или это что-то новое?
Если мы посмотрим в лазере, то неудивительно, что автофейл исчез, ведь этот клиент был сделан с нуля, поэтому было бы более странно, если бы такая странная специфическая проблема, как автофейл, сохранилась. Старые клиенты по большей части разочаровали. Проведя тесты на одной карте, я просматривал клиенты каждого года и отмечал, что в них все было неизменно одинаковым. Клиент 2010 года, хотя и по-прежнему уходит в автофейл, но запуск и сохранение карты в редакторе испортили порядок объектов.


Это было бы не имело значение, если бы не то, что я увидел в клиенте 2008 года. Автофейл возникает вот здесь, когда даже карта еще не закончилась однако, сохранив карту через этот редактор, автофейл не срабатывает.
Цифры были не по порядку, но карта действительно стала пассабельной. Чтобы убедиться, насколько это эффективно, я импортировал самую обратно совместимую карту 2B, которую я знаю, и протестировал ее. Цифры были явно более неправильными, Шейпы были страшными, но карта была пассабельной, а затем попытался импортировать это в современный клиент, надеясь, что это будет работать таким же образом, но я предполагаю, что это был вопрос клиента, а не формат файла osu. Но, хотя бы это было интересно увидеть.
Что сейчас с автофейлом?
Сам автофейл как явление был пофикшен в год выхода видео — в 2018. Теперь вместо автофейла у вас просто не будут отправляться результаты на сервер. У вас будет выходить ошибка «Не удалось отправить результаты» (как-то так). Именно по этой причине некоторые ловед карты до сих пор не имеют ни одного сабмитнутого скора. Забавным относительным исключением является Aspire дифа мапсета Der Wald (https://osu.ppy.sh/beatmapsets/537048#osu/1529760), которую таки можно сабмитнуть, но только с EZ.
Спрашивается, а почему Пеппи не настроил сабмит? А зачем? На момент конца 2018 года лазер уже активно разрабатывался, там автофейла нет как явления (там были другие проблемы), поэтому можно сказать спасибо, что хотя бы такая заплатка существует.
Что касается конкретно лазера, там, как многократно упоминалось ранее, автофейла нет, многие карты играются как обычно и они могут уже сейчас сабмитить скоры, но на момент написания статьи лидерборд не отображает соответствующие скоры (это должно решиться уже в ближайшие месяцы, мы пишем эту статью в начале июля 2022, пните, чтобы мы актуализировали). После старта сабмита эта проблема уйдет в прошлое, а стейбл так и не сможет никогда нормально сыграть эти карты.
Почему автофейл в принципе стал возможен?
Осу это игра, которая разрабатывается практически одним человеком с его собственным видением реальности и того, как должны работать игры. Если внимательно посмотреть на почти каждый аспект реализации каких-либо функций в стейбле, можно заметить, что многие из них реализованы не от мира сего и вообще не по каким-то лекалам индустрии (примеров настолько много, что даже ни одного не приведу, лол).
Если автофейл можно считать чем-то негативным, возникшим случайно, то есть и положительная механика — рендер в нативном разрешении при уменьшенном разрешении экрана (пояснять не буду).
