Почему полоска ХП убивает ремесло
Почти во всех выживачах рубка и добыча камня устроены одинаково: бьёте топором в одну точку, над сосной тает невидимая полоска здоровья, а на нуле ствол рассыпается в аккуратные доски. У этого решения есть честные плюсы: игроку сразу понятно, сколько ударов осталось, а компьютеру не нужно считать физику каждой щепки.
Но вместе с полоской исчезает ремесло. Неважно, куда и как вы бьёте: поперёк волокон или вдоль, в середину валуна или у его края. Любой удар просто отнимает одинаковые «очки», и рубка превращается в клики.
Поэтому в Поляне POLUS мы убрали ХП у мира. Удар — это энергия в джоулях. Дерево, камень и грунт — трёхмерные объёмы со своей плотностью, волокнами и трещинами. У материала две цены:
- цена объёма — сколько джоулей нужно, чтобы выбить кубический сантиметр (Дж/см³);
- цена трещины — сколько джоулей нужно, чтобы раскрыть квадратный сантиметр новой поверхности (Дж/см²).
Что именно отколется — щепотка крошки или целая плита — решает геометрия удара, а не скрипт. Ниже всё показано на реальных кадрах из движка, цифры взяты из игрового HUD.
Рубка: поперёк волокон — 15 см³, вдоль — 192 см³
Сосна диаметром 30 см. Поперёк волокон её древесина стоит 10 Дж/см³, поэтому удар топора в 150 Дж прорезает всего 150 / 10 = 15 см³.
Второй удар под углом идёт уже вдоль волокон. Трещина там раскрывается в 11 раз легче: 0,016 Дж/см² вдоль против 0,18 Дж/см² поперёк, это видно в строке HUD. Эффективная цена падает примерно до 0,78 Дж/см³, и те же 150 Дж выбивают 150 / 0,78 ≈ 192 см³ щепы. Это в 13 раз больше, чем удар в лоб.

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

Валка: подрез на ¾ диаметра, крен 2°, 526 кг ложатся по клину
Когда клиновой подруб выбран, делаем нижний подрез на 75 % диаметра. Недоруб, на котором стоит ствол, смещается от оси, и центр тяжести сосны массой 526 кг оказывается над пустотой клина.
Ствол кренится на 2°. С каждым градусом растёт плечо силы тяжести (момент τ = r × m·g), и сосна валится ровно туда, куда смотрит клин. Направление падения задаёт ваша рубка, а не заранее заданная анимация.

Гранит по Гриффитсу: в лоб — пыль, у края — плита
Хрупкий камень раскалывается не «по ХП», а по закону Гриффитса: трещина идёт, когда энергии удара хватает на новую поверхность раскола. У гранита в игре цена объёма 750 Дж/см³ и цена трещины 0,0145 Дж/см² (твёрдость 600 МПа).
- Удар в лоб посреди скалы. Трещине некуда выйти, энергия уходит в дробление: 150 Дж / 750 = 0,2 см³ каменной пыли. HUD честно предупреждает: «скол < 0,1 л · в крошку».
- Удар в 25 см от свободного края. Трещине есть куда выйти. 13 Дж хватает, чтобы раскрыть 13 / 0,0145 ≈ 900 см² трещины, это плоскость примерно 30 × 30 см. От скалы отходит плита на 3,7–7,4 л.


Игрок видит прогноз до удара и учится читать камень: искать край, трещину и угол, а не закликивать валун.
3D-верстак: топор собирается из реальной формы деталей
Отколотый кусок гранита и вырубленное дубовое топорище кладутся на трёхмерный верстак. Таблицы крафта «3 камня + 2 палки» здесь нет: шаблон «Топор» — только начало, размеры меняются ползунками.
- Из 410 см³ гранита получается головка на 255 см³, остаток 155 см³ возвращается в сумку.
- Дубовая рукоять 60 см, лезвие 9 см.
- Итог считается из геометрии: масса 1,21 кг, баланс у головки.

Масштаб: 76,7 × 71,1 км и 3 600 000 деревьев при 119+ FPS
Вся эта физика работает не на тестовой полянке, а посреди долины 76,7 × 71,1 км, построенной по спутниковым высотам Красноярска и Енисея. Реки сверены с OpenStreetMap: совпадение F1 = 87,5 %.
В долине 3 600 000 деревьев (сосна, кедр, берёза, ива) по биомам и влажности. Их рисуют GPU MultiMesh и октаэдрические импосторы: 119,1 FPS, 8,4 мс на кадр.


Что дальше
Формулы раскола, живые тесты из движка и свежие билды Поляны POLUS выходят в девлоге игры. Архитектура ИИ-роя, на котором мы ведём разработку, — в канале Seedon.