Metron v0.1.0-dev.5
Список изменений
Важно
- Перезагрузка ресурсов и datapack на клиенте — F3+T (как в Minecraft), а не F5. На оверлее F3 есть подсказка Reload assets [F3+T]; комбинация не переключает сам F3-HUD при отпускании F3.
- После правок текстур/атласа/освещения обычно достаточно F3+T или перезахода в мир, чтобы пересобрать меши и свет.
Новое
- Скриншоты по F2: кадр сохраняется в screenshots/ как PNG с UTC-временем в имени, в чат приходит подтверждение.
- Быстрые настройки скриншота F3+F2: угловой поповер не ставит игру на паузу, курсор освобождается; Esc закрывает. Тумблеры: «Скрыть HUD», «Вспышка», «Звук затвора».
- Те же три опции есть в Настройки → вкладка «Скриншоты». По умолчанию скрытие HUD выключено, вспышка и звук затвора включены. При «Скрыть HUD» на кадр прячутся F3, хотбар и чат, затем интерфейс возвращается.
- Вспышка — короткое белое затемнение экрана; звук — щелчок затвора (click_stereo.ogg).
- Горизонтальный туман в стиле Minecraft (Настройки → Графика → «Туман», по умолчанию вкл.): дальность зависит от «Дальности прорисовки», глубоко под землёй туман выключается.
- Пост-эффекты в графике: Bloom (вкл. по умолчанию), «Глубина резкости», SSAO, God Rays (три последних по умолчанию выкл.). Фокус DoF следует за дистанцией до блока под прицелом; SSAO отключает MSAA на камере игрока.
- Усилен кинематографичный Bloom и смягчён DoF; у God Rays оттенок лучей берётся от заката/горизонта (WorldTime).
- Качание листвы и растений на ветру: колышутся высокая трава, цветы и листва; сила задаётся shaderpack (wind_speed / wind_strength), при выключенном паке ветер гаснет.
- У высокой травы и цветов качается в основном верхушка, основание остаётся устойчивым; листва — в среднем/верхнем поясе.
- Настоящий полупрозрачный слой воды: океаны и реки — воксельная вода с волнами и оттенком из shaderpack (поверхность чуть ниже верха блока). Демо-плоскость у спавна убрана; слой можно скрыть тумблером shaderpack в настройках.
- Фильтрация текстур в графике: цикл Mipmaps (по умолчанию) / «Чёткая» / «Сглаженная» — меняется сразу, без пересборки атласа. Mipmaps убирает муар на дальнем ландшафте.
- У выделенного сервера флаг --max-render-distance / --view-distance (по умолчанию 12, диапазон 2…32): клиент не получит чанки дальше этого лимита, даже если слайдер выше.
- Небо: градиент зенит→горизонт, процедурные звёзды, билборды солнца и луны, слой облаков; под землёй и при выходе из мира атмосфера прячется.
- Текстурированные солнце и луна (эмиссионные диски без лишнего bloom неба); фазы луны из ресурс-пака.
- Облака — полупрозрачные кубики (как в Minecraft), слой на высоте ~192, прокручиваются и следуют за игроком, без коллизии.
- Динамические блоки из datapack: новые имена получают стабильные id ≥ 256, работают dig/place, коллизия, атлас, /give и авто-предмет. Демо: /give example_mod:copper_coil.
- Рецепты крафта, плавки и топлива из datapacks/*/recipes/*.ron попадают в книгу рецептов; обновление — F3+T на клиенте или /reload на сервере.
- Прочность инструментов: у предметов есть durability (например wooden_pickaxe), полоска в хотбаре и контейнерах; в выживании копание изнашивает активный инструмент (одиночка и сеть).
- Выброс из слота UI: в инвентаре/сундуке/верстаке/печи Q выбрасывает один предмет из наведённого слота, Ctrl+Q — весь стак.
- У стаков есть отображаемое имя и теги (NBT): тултипы показывают имя и прочность; дропы сохраняют метаданные при выбросе и подборе; моды через Lua могут задавать имя (metron.inventory.set).
- Очередь пересчёта blocklight: после dig/place свет обновляется порциями (до 4 задач за тик), без длинных зависаний на вспышках света от факелов и подобных блоков.
- Боковые грани травы получают биомный оттенок (dirt + маска оверлея), без второго прохода меша — лучше FPS у травяных склонов.
Исправления
- Дальние «дешёвые» чанки сразу получают запечённый солнечный свет: при приближении больше нет скачка «внезапно стало светлее», когда подтягивается полная детализация.
- Ночью/днём на горных обрывах больше нет чёрных секций солнца=0 после border-remesh: днём sun flood всегда идёт, пещеры остаются тёмными через закрытое небо. Перезаход или F3+T, если мир уже был открыт.
- При копании оверлей трещин больше не превращает блок в чёрный куб: редкие трещины, без тёмной пелены; оверлей скрывается, если блок уже воздух.
- У верстака и печи снова разные грани (верх / бок / низ / перед), а не одна «передняя» текстура на всех сторонах.
- Трава больше не полосатится однотипной боковой текстурой после оверрайдов атласа из datapack: оверрайды all для builtin-блоков не затирают многогранные текстуры.
- Высокая трава снова окрашена биомным оттенком, а не белая на luminance-текстуре.
- Оттенки травы/листвы различаются по биомам (равнины ≠ тайга и т.п.); в F3 видны temp / hum и hex цвета травы.
- Чёрная земля и «сломанная» листва от слепой выпечки JSON-моделей: bake снова только по белому списку (кактус, факел, сундук, флора, верстак, печь и т.п.); трава/брёвна/листва идут через обычные мешеры.
- Join по сети больше не выкидывает в меню с «Connection lost» в первый кадр загрузки: фаза Connecting не считается обрывом связи.
- Убраны синие «квадраты воды» в воздухе (~Y50): старая демо-плоскость больше не режет лес; мировая вода — воксельная.
- Вода не рисуется сеткой тайлов 1×1: тайлы fluid в атласе сглажены в однотон, швы исчезают (полная вода теперь ещё и отдельным translucent-слоем).
- Слайдер «Дальность прорисовки» реально работает до 32 (раньше интерес/стриминг жёстко резался до 6, и ползунок казался «мёртвым»).
- Облака больше не рисуются сквозь кроны и стволы и не «залипают» только в деревьях; корректный depth compare на reverse-Z.
- Исчезновение неба/солнца/луны/облаков и пустое меню при запуске из crates/client: корень ассетов находится по shaderpacks/, клиент стартует из корня игры.
- Муар на дальнем ландшафте и воде: CPU-mipmaps атласа + LOD-сэмплинг; волны воды слабее и гасятся на расстоянии.
- В мультиплеере износ инструмента идёт по реально выбранному слоту хотбара (клиент шлёт активный слот отдельно), а не по устаревшему полю в сообщении о блоке.
Улучшения
- Подгрузка мира реже рвёт кадр: после тяжёлого кадра (~30 ms+) или жирной загрузки меша apply коротко остывает (1–2 кадра), но генерация секций не встаёт «на паузу», очередь не залипает.
- Крупные меши (>~16k вершин) не грузятся пачкой: не чаще одного жирного meshes.add раз в 3 кадра, на загруженных кадрах жирные откладываются; тонкие меши проходят раньше.
- Дальние кольца стрима (ring ≥ 2) сначала в упрощённом LOD без моделей/воды; рядом (ring ≤ 1) догоняет полная перестройка — быстрее первый вид горизонта, меньше пиков CPU/GPU.
- Очередь готовых секций ограничена (~6), генерация и inflight урезаны под стабильный FPS; устаревшие меши снимаются маленьким бюджетом за кадр.
- Apply секций: обычно 1–2 меша за кадр (меньше при глубоком remesh-бэклоге); два жирных аплоада в один кадр не допускаются.
- После загрузки границы соседей не раздувают remesh-очередь при большой глубине: сначала один сосед, при сильном бэклоге — только своя секция.
- Стрим больше не дергает главный поток заполнением высоты поверхности: швы закрываются border-remesh’ем.
- Dig/place: геометрия текущего блока сразу, соседние секции — в приоритетной асинхронной очереди; сканирование сетки грузит ближние кольца первыми и дробит работу по кадрам (~1.5 ms).
- Адаптивный потолок apply: в спокойном режиме меньше работы за кадр, при заполненной очереди — временно больше, чтобы мир догонял.
- F3 показывает сглаженные FPS / время кадра / число сущностей, а не разовый 1/delta — цифры стабильнее и ближе к ощущаемой плавности.
- При кадре ≥ 33 ms в logs/hitches.log пишется строка с фазами (стриминг, remesh, свет, движение, raycast) и глубинами очередей — удобно при репортах фризов (папка logs/ локальная).
- Настройки разбиты на вкладки «Графика» / «Звук» / «Управление» / «Скриншоты» с липкими табами, клик-SFX и прокруткой длинных секций.
- Меню ресурс-паков: открытие/переключение не гоняет полный discover/unzip каждый раз; пересбор атласа — только по Apply (и при F3+T / watcher).
- Длинные меню и бинды прокручиваются колёсиком (до ~90 vh), заголовки с кириллицей не превращаются в ????.
- Звуки ходьбы/прыжка/копания: первый шаг после остановки быстрый, дальше спокойнее (~1.65 блока шаг, спринт ~1.45); прыжок даёт step поверхности; удары копания — ровный интервал ~0.25 с, у мягких/быстрых блоков (листва и т.п., <0.4 с) только финальный Break без спама.
- PBR roughness из атласа влияет на направленный бамп рельефа — материал блоков выглядит естественнее при боковом свете.
- Реестр предметов из datapack живой в сессии: /give, тултипы и прочность подхватывают ItemDef после F3+T / /reload.
- Иконки в инвентаре по-прежнему на «якорном» plains-colormap, а мир — с биомным tint (чтобы UI не прыгал цветом).
Игра и обновления ставятся через Metron Launcher — на сайте только история изменений.