Перейти к содержимому

Клиент сегодня

Меняется. Следите: #136, #137, #341, #344, #521, #337

У mcrs есть собственный клиент, написанный на Rust с Bevy и wgpu. С ним можно летать по миру и смотреть на ландшафт, небо и мобов, но играть в выживание пока нельзя. Страница нужна игроку или наблюдателю, который хочет понять, что клиент умеет сегодня, чего не умеет и во сколько времени кадра и памяти обходится его дальний обзор.

ОбластьСостояниеРаботаетНе готово
Клиент и рендерЧастичноРельеф, небо, облака, свет, мобы, оверлей F3, чат и ломание блоков в креативе. Дальность по умолчанию 96 колонок.На 96 колонках GPU-кадр 3.7 мс при цели 1.0 мс, процесс держит 12 ГБ. Замеры только на Apple M4 Max и macOS. Веб-сборка зависает. Нет звука, частиц и погоды. В работе#337В работе#344В работе#129
Возможность Состояние
Ландшафт с блочными моделями и светом игры Работает, в том числе цветной свет блоков
Небо, облака и туман окружения Работает
Мобы Работает для пяти типов мобов, которые есть на сервере. Далеких мобов клиент рисует плоскими картинками, об этом рассказывает страница Как клиент рисует
Оверлей F3 со временем кадра и стадий Работает
Чат с подсказками команд Работает
Ломание блоков в творческом режиме и показ блока, на который наведен прицел Работает
Вход на сервер mcrs или на встроенный Работает. Ванильный клиент того же снапшота тоже может зайти на сервер mcrs в офлайн-режиме
Возможность Состояние
Звук В работе#136. Клиент молчит
Частицы В работе#137
Погода (дождь, снег, молнии) В работе#341. Сегодня дождь только притемняет солнце и луну
Экраны инвентаря и контейнеров Инвентарь игрока - это В работе#521, а экраны - В работе#129, В работе#130 и В работе#131. Клиент рисует экран инвентаря, только если запустить его с MCRS_SCREEN=inventory, и играть с этим экраном нельзя
Веб-сборка В работе#344. Сборка рисует небо в Chrome, но при старте блокирует страницу на 87 с и до устойчивого кадра так и не доходит
Бинарные загрузки Пока нет. Релизы запланированы, но на эту дату для них нет issue

Все числа в PERF.md сняты на одной машине, Apple M4 Max с macOS и Metal, и других платформ автор не проверял. Linux и Windows не подтверждены. CI на Ubuntu не запускает крейты, которым нужен wgpu, поэтому зеленый CI ничего не говорит об этих крейтах на Linux.

По умолчанию клиент запрашивает обзор в 96 колонок. Колонка - это стопка секций размером 16x16x16 блоков. Это втрое больше, чем максимум ванили, равный 32. В таблице три цены такого обзора, и все они сняты в одном сценарии: M4 Max с macOS, окно 2560x1440, сохранение two-relight с 38 025 колонками и 295 511 секциями в памяти, статичный вид и MCRS_HOT=1, чтобы ядра CPU держали частоту.

Что Значение Где
Кадр движка на CPU 1,12 мс медиана, 1,33 мс худшая секунда PERF.md, Hardening
Кадр GPU 3,7 мс с включенным тестом окклюзии, 6,0 мс с выключенным (MCRS_OCCLUSION=0). Заметка в PERF.md считает 3,7 мс выше своего потолка PERF.md, Hardening
Память процесса 12 ГБ PERF.md, Render distance

На 96 колонках кадр ограничивает GPU, а не CPU. В полете на максимальной скорости кадр дороже, чем когда стоишь на месте. В том же сценарии кадр движка занимает 1,56 мс по медиане и 5,0 мс в худшую секунду. Цифра 12 ГБ взята из раздела Render distance, который написан до работы над окклюзией, так что в новой сборке она может отличаться. Память на 96 колонках пока не ограничена.1

Если у вас GPU или RAM меньше, чем у этой машины, уменьшите MCRS_VIEW, то есть число колонок, которое запрашивает клиент. В таблице Render distance в PERF.md на 12 колонках движок тратит 0,71 мс, но это замер на более старой сборке. Чисел для других машин нет.

Чтобы запустить клиент, соберите его из исходников

Заголовок раздела «Чтобы запустить клиент, соберите его из исходников»

Бинарных загрузок нет, поэтому клиент нужно собрать из исходников. Шаги короткие и лежат в репозитории, поэтому страница их не повторяет. Следуйте разделу Quick start в README. Клиент принимает папку мира и запускает для нее собственный сервер. Текстуры и модели он читает из официального jar игры, потому что в репозитории нет графики Mojang.

Сервер и правила его миров описаны на странице Миры и сохранения. Все числа и методика есть в PERF.md.

  1. В работе#337 Отслеживает ограничение памяти клиента на 96 колонках. ↩

Источники и проверка

Проверено: 26.4-snapshot-7, 3540f457b, 2026-11-10

Переведено с версии 3540f457b

Следить: #136, #137, #341, #344, #521, #337