Содержимое двух проектов: DESCENT и HOLLOW
Игра стала проектом движка, и её содержимое переехало из assets/ в projects/.
projects/descent сама игра: восемь комнат, каталог из 28 сущностей,
изометрия, кривая спуска на сто этажей
projects/hollow второй проект: вид сверху, четыре комнаты, свой каталог,
короткая и злая кривая
Второй проект существует не для примера. Движок с одним проектом ничем не
отличается от игры с красиво названными каталогами, и проверить, что зашитых
знаний про DESCENT в движке не осталось, можно только вторым проектом
(docs/18-engine.md).
Он же сразу окупился: --check нашёл в комнате maw глухую камеру посередине —
ту же ошибку, что когда-то в storage. На сетке она выглядит нормально, но
точка спавна внутри недостижима, и этаж тихо становится легче.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 01:06:28 +07:00
|
|
|
|
# Каталог HOLLOW. Формат тот же, что у DESCENT, — это формат ДВИЖКА.
|
|
|
|
|
|
#
|
|
|
|
|
|
# Набор другой и цены другие: здесь нет мишеней и почти нет обстановки, зато
|
|
|
|
|
|
# бегуны выходят с первого этажа, а громила — с четвёртого, а не с седьмого.
|
|
|
|
|
|
#
|
|
|
|
|
|
# id совпадают с DESCENT намеренно: игра переводит их в свои EnemyKind одной
|
|
|
|
|
|
# таблицей (src/sim/spawn_catalog.cpp), и id, которого в ней нет, не даст
|
|
|
|
|
|
# никого. Это граница ИГРЫ, а не движка.
|
|
|
|
|
|
|
|
|
|
|
|
# --- твари -------------------------------------------------------------------
|
|
|
|
|
|
entity rusher class=monster depth=1 danger=1.3 radius=0.27 color=158,74,44 sprite=rusher_walk name=RUSHER
|
|
|
|
|
|
entity shambler class=monster depth=1 danger=1.0 radius=0.34 color=116,52,52 sprite=shambler_walk name=SHAMBLER
|
|
|
|
|
|
entity lurker class=monster depth=2 danger=2.6 radius=0.30 color=88,62,118 sprite=lurker_walk name=LURKER
|
|
|
|
|
|
entity spitter class=monster depth=3 danger=2.0 radius=0.31 color=96,132,72 sprite=spitter_walk name=SPITTER
|
|
|
|
|
|
entity brute class=monster depth=4 danger=4.5 radius=0.46 color=142,60,78 sprite=brute_walk name=BRUTE
|
|
|
|
|
|
|
|
|
|
|
|
# --- обстановка --------------------------------------------------------------
|
|
|
|
|
|
entity barrel class=prop depth=1 radius=0.33 color=92,84,58 sprite=prop_barrel name=BARREL
|
|
|
|
|
|
|
|
|
|
|
|
# --- лут ---------------------------------------------------------------------
|
|
|
|
|
|
# Короткая лестница качества: четыре тира на шесть этажей вместо четырёх на
|
|
|
|
|
|
# двенадцать. Спуск здесь не успевает одеть отряд, и это замысел.
|
|
|
|
|
|
entity ammo class=loot tier=0 depth=1 radius=0.22 color=200,176,96 sprite=item_icon_ammo name=AMMO
|
|
|
|
|
|
entity bandage class=loot tier=0 depth=1 radius=0.22 color=216,208,196 sprite=item_icon_bandage name=BANDAGE
|
Свет как расходник: заряд тратится за путь, а не за время (M23)
Второй ресурс вылазки после патронов. Фонарь садится, погас — обзор падает
до 35%, а твари замечают отряд в 1.35 раза дальше: отряд не слепнет, он
меняется с тварями местами. Батарея встаёт сама, как бинт.
Главное решение — расход за ПРОЙДЕННЫЙ ПУТЬ, а не за время. Первая версия
считала по секундам, то есть была таймером, которого в игре нет по прямому
требованию к жанру: садящийся сам собой фонарь торопил бы игрока ровно как
секундомер, только без циферблата, и думать над этажом стало бы дорого.
За расстояние получается тот же размен, что и с весом, но с другой стороны:
вес делает дорогим «унести всё», свет — «обшарить всё».
Заряд общий на отряд и едет вниз вместе с ним: обновляйся он на этаже, это
был бы ресурс этажа, а не вылазки, и никуда бы не гнал. Чем глубже, тем
дороже шаг, а этажи внизу длиннее — глубина жмёт на свет дважды.
Проверка в --descend меряет правило целиком, и первая её строка не про
баланс, а про жанр: заряд на стоянке обязан стоять. Сам измеритель тоже
был неправ — делил потраченное на смещение отряда, а не на пройденный
путь, и показывал 1.55 за тайл при 1.10 в каталоге.
свет: стоянка 0.2, ход 1.10 за тайл при 1.10 в каталоге
глубина 8: заряда на 383 тайла, это 4.0 прямых пути до спуска
обзор 1.00 -> 0.35 в темноте, батарея встала сама
Хватает ли заряда на этаж считается в этажах и по средней длине забега:
путь до спуска скачет вдвое от сида, и порог по одному этажу ловил бы
удачу, а не баланс.
--accept PASS без изменений: в песочнице света бесконечно, как и патронов.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-16 02:12:05 +07:00
|
|
|
|
entity battery class=loot tier=0 depth=1 radius=0.22 color=150,210,200 sprite=- name=BATTERY
|
Содержимое двух проектов: DESCENT и HOLLOW
Игра стала проектом движка, и её содержимое переехало из assets/ в projects/.
projects/descent сама игра: восемь комнат, каталог из 28 сущностей,
изометрия, кривая спуска на сто этажей
projects/hollow второй проект: вид сверху, четыре комнаты, свой каталог,
короткая и злая кривая
Второй проект существует не для примера. Движок с одним проектом ничем не
отличается от игры с красиво названными каталогами, и проверить, что зашитых
знаний про DESCENT в движке не осталось, можно только вторым проектом
(docs/18-engine.md).
Он же сразу окупился: --check нашёл в комнате maw глухую камеру посередине —
ту же ошибку, что когда-то в storage. На сетке она выглядит нормально, но
точка спавна внутри недостижима, и этаж тихо становится легче.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 01:06:28 +07:00
|
|
|
|
entity knife class=loot tier=0 depth=1 radius=0.22 color=214,222,232 sprite=item_icon_knife name=KNIFE
|
|
|
|
|
|
|
|
|
|
|
|
entity rifle class=loot tier=1 depth=2 radius=0.26 color=208,196,150 sprite=item_icon_rifle name=CARBINE
|
|
|
|
|
|
entity vest class=loot tier=1 depth=2 radius=0.26 color=108,118,108 sprite=item_icon_vest name=VEST
|
|
|
|
|
|
|
|
|
|
|
|
entity shotgun class=loot tier=2 depth=3 radius=0.28 color=214,158,104 sprite=item_icon_shotgun name=SHOTGUN
|
|
|
|
|
|
entity lantern class=loot tier=2 depth=3 radius=0.24 color=240,206,130 sprite=item_icon_lantern name=LANTERN
|
|
|
|
|
|
|
|
|
|
|
|
entity plate class=loot tier=3 depth=5 radius=0.30 color=140,146,156 sprite=item_icon_plate name=PLATE
|
|
|
|
|
|
entity cleaver class=loot tier=3 depth=5 radius=0.28 color=196,174,160 sprite=item_icon_cleaver name=CLEAVER
|