Сделал боссов, которых можно разобрать на куски

Делаю соло ритм-рогалик AsterMaster, и чаще всего в комментариях спрашивают одно: как это боссы так разваливаются. Рассказываю.

Корпус босса — не меш. Это облако примерно из 6000 гауссовых сплатов: та же технология, которой сканируют в 3D реальные комнаты, только я учу её по рендерам из Blender (21 секунда на модель) и использую совсем не по назначению. Каждый сплат — отдельная частица со своей позицией и цветом. По сути, у меня система частиц в форме босса, и её можно мять, дырявить и собирать обратно прямо в шейдере.

Что из этого выросло:

  • Попадание не стирает сплат, а вдавливает его внутрь — на корпусе остаётся тёмный кратер, а не дырка в фон.
  • Бьёшь в ту же точку — дыра углубляется слоями: под обшивкой каркас, глубже тлеющее нутро. Я называю это луковицей.
  • Если вокруг куска всё выбили, он теряет опору и отваливается целиком, кувыркаясь в полёте.
  • Подобрал ремонт — дыры зарастают, каждая с того места, где остановилась.

Самый полезный урок дал плейтест: первая версия разлеталась мелким конфетти, и мне честно сказали — «разрушения читаются кашей». Пришлось резать корпус на куски размером с плиту: оказалось, кусок читается глазом только от ~20 пикселей, а босс в игре занимает всего около 110. Теперь пушка трескает обшивку и выбивает чипы, миномёт выворачивает воронку плитами, а рейлган прошивает канал насквозь.

Модели у меня генеративные — рисовать я не умею, — и сплаты стали способом сделать из них что-то своё: в билде полмегабайта вместо 25–55 МБ на модель, и каждая ломается по-своему.

Демо бесплатное, 19–26 октября игра на Steam Next Fest, релиз 17 ноября:
👉 store.steampowered.com/app/5095060

Вопрос к вам: что в бою читается лучше — полоска HP или сам корпус? У меня есть и то, и другое, и я до сих пор спорю сам с собой.

Подробно про технику — как сплаты тренируются по рендерам из Blender, пакуются в полмегабайта и ломаются на куски — расписал на Хабре: «Гауссовы сплаты как система частиц: разрушаемые корпуса для рогалика на Godot».

44