Неуязвимый кубноут из Starfield
Sep. 11th, 2023 05:29 pmНедавно вышедшая игра «Starfield» уже создала вокруг себя изрядный хайп, и хотя ее достоинства остаются предметом жарких споров (я лично на 90% убежден, что изначально это должна была быть РПГ по «Firefly», и самостоятельной вселенной стала лишь после того, как «Betheda» не сумела приобрести права), тем не менее, интерес публики она вполне себе привлекла. И одной из несомненных удач называют встроенный конструктор кораблей, позволяющий игрокам кастомизировать звездолеты и создавать с нуля собственные дизайны.
И результат был предсказуем.

Игрок под ником Morfalath обратил внимание, что алгоритм стрельбы игровых противников в космическом бою всегда сводится к прицеливанию точно в геометрический центр его корабля. Таким нехитрым способом компьютерный оппонент добивался оптимальной вероятности попаданий. Но раз есть жесткий алгоритм, то, стало быть, есть и рамки, за которые он выйти не в состоянии... и это можно использовать.
Идеей Morfalath было создать корабль вообще не имеющий центра. Его «кубноут» (название мое, не авторское) представлял собой кубической формы раму из переходников и коридоров, с прицепленными по углам модулями. В центре корпуса — куда целился бы компьютерный противник - как легко понять, находилось исключительно первосортное пустое место, сквозь которое вражеский огонь пролетал бы навылет.

Получившаяся конструкция в определенной степени унаследовала философию от американского экспериментального «танка-скелета» Первой Мировой Войны — объемистая рама со множеством пустого пространства, сквозь которую неприятельские выстрелы будут просто пролетать, не задевая ничего.
Для демонстрации возможностей своего детища, Morfalath записал видео боя с одним из высокоуровневых противников. И результат... восхищает. Упорство, с которым компьютерный оппонент выцеливает пустое место в центре кубноута сопоставимо лишь с абсолютной бесполезностью его огня. Выстрелы противника благополучно пролетают сквозь пустое место, лишь изредка и случайно цепляя балки конструкции. По словам Morfalath, одновременный бой с двумя десятками оппонентов максимального уровня оставил лишь незначительные повреждения на конструкции кубноута.
Это простое и изящное решение — наглядная демонстрация, как легко найти обходные пути вокруг жестко заданных алгоритмов, если игроку предоставлена достаточная свобода действий. Полагаю, что в будущих патчах «Betheda» попытается что-нибудь сделать с алгоритмом прицеливания (например, заставит его проверять, есть ли реально что-нибудь в точке прицеливания). Но пока что концепция кубноута прекрасно работает.
P.S. И хочу отметить, что не стоит толковать это как «победу человеческой гибкости над машинной линейностью». Закавыка в том, что ИскИны такие вот дыры в правилах умеют находить гораздо лучше людей.
no subject
Date: 2023-09-11 02:49 pm (UTC)а вот как сделать такой хак невыгодным — интересная задача. первое что приходит в голову — заставить машину оценивать корабль -мишень по другому алгоритму. оценивать важные узлы и выкидывать из рассмотрения произвольно по одному такому важному узлу и оценивать точку равноудалённую от оставшихся. перебирать и смотреть не меняется ли сильно эта точка от выкидывания из рассмотрения одного из узлов. в качестве итога выбирать ту точку чт оменее всего подвержена процедуре. рассчёт в барицентрических координатах увязанных с важностью узла.
было бы интересно
no subject
Date: 2023-09-11 05:45 pm (UTC)упорствомуспехом каждый раз первым выстрелом поражать кабину пилота, игра была бы точно так же сломана. Собственно, даже в вашем варианте не обязательно оценивать узлы, можно просто выбирать отдельные модули из списка и целиться в них. Кабина, гальюн, левый двигатель, третий бак, восьмая пушка, повторить.no subject
Date: 2023-09-12 11:41 am (UTC)имхо нужно неписям закинуть несколько вариантов построения алгоритма прицеливания.
no subject
Date: 2023-09-12 04:04 pm (UTC)