Learn · modules
Что такое DevTest в клиенте Minecraft?
DevTest — это устаревший модуль разработчика, который встречается у некоторых клиентов, созданный для тестирования незавершенного кода, а не для предоставления игрокам реальной функциональности или настроек.
Что такое DevTest в Minecraft?
DevTest — это модуль, который вы иногда можете найти в списке модулей клиента без четкого описания его работы. Это не вариант KillAura и не замаскированный aimbot: это остаточный хук, который разработчики используют для тестирования кода в процессе разработки клиента. Поскольку он был написан для людей, распространяющих программное обеспечение, а не для тех, кто им играет, DevTest не имеет последовательного поведения. То, что он делает в конкретной сборке, полностью зависит от того, что разработчики отлаживали, когда последний раз работали с ним, и это может меняться между версиями или даже между двумя сборками одной и той же версии.
В большинстве случаев DevTest просто занимает место в списке модулей, ничего не делая или делая что-то, что никто не удосужился пометить. Это программный эквивалент комментария «TODO: удалить перед выпуском», который проскочил через QA.
Как работает DevTest
DevTest не имеет фиксированной функции, видимой для игрока, потому что это никогда не было его целью. Разработчики подключают модуль к тому, над чем они в данный момент работают: новому пути рендеринга, обработчику пакетов, коду движения или просто к временному пространству для проверки того, что что-то работает без сбоя клиента.
Именно поэтому оно часто попадает в релиз в полуготовом виде. Без настроек, с пустым описанием или с заглушками вместо того, чтобы модуль сам себя объяснял. Включение его в релизной сборке может вообще ничего не сделать. Оно также может запускать любой тестовый код, который разработчики забыли удалить перед выпуском.
Разработчики клиентской части полагаются на такой модуль-слот, потому что большая часть того, что они тестируют, работает корректно только против реального сервера, а не против песочницы. Быстрый выключатель внутри работающего клиента лучше, чем создание отдельной сборки для каждого эксперимента. Когда клиент выходит в релиз, слот иногда остается в списке просто потому, что его удаление — это дополнительная работа, или потому, что команда планирует повторно использовать его в следующем цикле разработки.
Зачем он вообще существует
Большая часть работы над клиентом ведется против реальных серверов. Тестирование нового модуля движения или хука рендеринга требует увидеть, как он ведет себя против реальных проверок античита и поведения игроков, а не просто загрузить код и надеяться, что он работает. DevTest — это слот для этого. Разработчики подключают его к тому, что они активно разрабатывают, запускают клиент и тестируют против живого сервера.
Когда сборка выходит в релиз, DevTest либо удаляется, либо остается, потому что быстрее оставить его на месте для следующего цикла тестирования, чем удалить его, добавить снова на следующей неделе и перенастроить.
Безопасно ли его использовать
Здесь нет единственного ответа, потому что DevTest — это не одна функция с одним поведением, это заполнитель. Если он неактивен в вашей сборке, его переключение не имеет никакого эффекта и не несёт никакой большей опасности, чем любое другое неиспользуемое значение. Если он подключен для тестирования кода, например, манипулирования пакетами или недописанного чит-кода, его включение может вызвать поведение, которое никогда не тестировалось против античита реального сервера, потому что оно не предназначалось для работы в реальном матче.
Относитесь к неопознанному модулю разработчика как к непредсказуемому. Не предполагайте, что это безобидный неактивный переключатель, и не предполагайте, что это секретная функция. Это ни то, ни другое, пока вы не узнаете, на что сборка его направила.
Что делают клиенты в продакшене
Готовый клиент поставляется с модулями, имена которых что-то значат, описаниями, которые соответствуют тому, что они на самом деле делают, и настройками, которые ведут себя так, как они обозначены. Если функция не готова, она не попадает в сборку. Если она всё же поставляется, то потому, что разработчики уверены в том, что она делает, и готовы её документировать.
Часто задаваемые вопросы
У него нет фиксированной функции. Это слот, который разработчики повторно используют для тестирования или отладки, поэтому его поведение меняется от сборки к сборке и редко документируется.
Нет. Это остаток разработки, а не инструмент, предназначенный для игроков, и большинство сборок распространяются без каких-либо реальных настроек или описаний.
Зависит полностью от того, что разработчики встроили в него при сборке. Неактивный DevTest ничего не делает. Один, всё ещё связанный с незаконченным кодом эксплойта, может вести себя непредсказуемо перед античитом сервера.
Потому что удаление этого потребует дополнительной очистки, а большинство разработчиков планируют повторно использовать этот же слот для тестирования в следующем цикле обновлений.