Ноль рандома: как устроена детерминированная стратегия

В игре «Мат» нет кубиков. Нет процента на критический удар, нет «шанса промаха», нет колоды, из которой приходит случайная карта. Урон всегда известен заранее: один или два. И всё равно я не могу предсказать, чем закончится партия, — и мой соперник не может. Звучит как противоречие: как игра без единого броска остаётся непредсказуемой? Разбираю, что такое детерминированная стратегия на самом деле, почему я выкинул из «Мат» всю случайность до последнего процента — и куда после этого делась непредсказуемость.

детерминированная стратегия без рандома в игре «Мат»: неоновая гексагональная доска, из центральной клетки веером расходятся просчитанные траектории ходов, слева растворяется игральный кубик
Ноль случайности: из каждой позиции — веер просчитанных ходов, а не бросок кубика

Откуда взялся вопрос про рандом

Это был самый первый принципиальный вопрос на старте — ещё на картоне, до единой строчки кода. Будет ли в игре случайность: броски, шансы на критический урон, лотерейный исход способностей. Я рассказывал в первом девлоге, как опросил друзей-игроков, и ответ был единодушным: рандом надоел.

Логика за этим простая. Когда исход хода решает кубик, играешь не совсем ты — играет таблица вероятностей. Победа перестаёт ощущаться заслуженной: её легко списать на удачу. Проигрыш — на неудачу. И каждый ход теряет вес: зачем считать на три хода вперёд, если всё решит бросок в последний момент. Игра незаметно превращается в лотерею, где ты — наблюдатель с правом иногда нажимать кнопку.

Я хотел ровно обратного ощущения: выигрыш — полностью моя заслуга, проигрыш — полностью мой промах. Того самого, ради которого люди полторы тысячи лет играют в шахматы. Поэтому решение было однозначным: нулевая случайность. А дальше выяснилось, что это только половина задачи — и вторая половина куда интереснее.

Что «ноль рандома» значит на практике

«Без рандома» звучит красиво в анонсе, но за словами должна стоять механика. Вот из чего складывается детерминированность в игре «Мат» — по пунктам, которые игрок реально видит за партию.

Урон известен заранее

Удар наносит фиксированный урон: один или два, в зависимости от фигуры и способности. Не «от одного до двух», не «два с шансом на критический». Ровно столько, сколько написано. Ты всегда можешь посчитать вперёд: доживёт ли фигура до следующего хода, хватит ли двух ударов, чтобы снять цель. Арифметика честная и полностью открытая — никаких скрытых модификаторов под капотом.

Простой пример: перед тобой вражеская фигура с тремя единицами здоровья, а твоя способность бьёт на два. Ты сразу видишь — одного удара мало, нужен второй, и строишь ход так, чтобы успеть ударить дважды или подвести вторую фигуру. В игре с «шансом крита» тот же расчёт превратился бы в ставку: вдруг повезёт и хватит одного удара. Здесь везения нет — есть только арифметика, и она одинаковая для обоих игроков.

Эффекты срабатывают по правилам, а не по броску

Яд, оглушение, щит — всё это применяется детерминированно. Способность с оглушением не «оглушает с вероятностью 60%» — она оглушает, если попала по правилам. Одноразовый щит поглощает следующий удар целиком: и урон, и яд, и оглушение — весь пакет разом. А значит, вопрос «куда поставить щит» — это чистое тактическое решение, а не ставка. Ты не надеешься, что эффект сработает. Ты знаешь, что он сработает, и планируешь от этого.

Ресурс растёт предсказуемо

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

Победа — это расчёт, а не «мат по удаче»

Чтобы выиграть, нужно нанести вражескому королю урон, равный его запасу здоровья, — буквально дойти и ударить, пробившись через четыре линии обороны. Здесь нет случайного «шах и мат в один ход из ниоткуда»: путь к королю ты прокладываешь ходами, каждый из которых просчитан. Выигрывает не тот, кому повезло, а тот, кто лучше собрал последовательность.

А не станет ли предсказуемо и скучно?

Это первое возражение, которое я слышу, когда говорю «ноль случайности». Логика возражения понятна: если всё детерминировано, то теоретически всё вычислимо — а значит, партия превращается в решённую задачу, где сильный игрок просто прокручивает в голове единственно верную линию и побеждает на автопилоте. Скучно.

На практике так не выходит — и вот почему. Детерминированность означает, что случай не вмешивается в исход. Она не означает, что исход легко посчитать. Шахматы — идеальный пример: в них тоже ноль случайности, ни одного кубика за полторы тысячи лет, и при этом число возможных партий больше, чем атомов в наблюдаемой Вселенной. Никакой человек не «решает» шахматы в уме. Детерминированная игра сложна не потому, что подбрасывает монетку, а потому, что дерево вариантов слишком широкое, чтобы просчитать его до конца.

Показательно, что даже сильнейшие шахматные программы не «решают» шахматы — они не знают заранее выигрышную линию из любой позиции. Они перебирают дерево ходов настолько, насколько хватает мощности, и оценивают позиции по эвристикам, именно потому, что полный перебор недостижим. Детерминированность и «решённость» — разные вещи: первая говорит лишь, что случай не вмешивается, вторая — что игра пройдена до дна. Между ними — вся глубина, ради которой в игру и садятся.

То есть вопрос не в том, «есть случайность или нет». Вопрос в том, откуда берётся непредсказуемость, если её источник — не кубик. И вот тут в игре «Мат» начинается самое интересное.

Где спрятана непредсказуемость (и это не кубик)

Короткий ответ: непредсказуемость даёт не таблица вероятностей, а живой соперник и пять несимметричных армий. Разберу оба источника.

Твой источник неопределённости — это противник

В игре с кубиком ты не знаешь, что выпадет. В игре без кубика ты не знаешь, что задумал человек напротив. И это принципиально другой сорт неизвестности. Бросок кубика ни от чего не зависит — он одинаково случаен для мастера и для новичка. А ход соперника зависит от его плана, его расы, его оценки позиции — и чем лучше ты читаешь противника, тем меньше он для тебя случаен.

Получается честный «псевдо-рандом»: внешне партия так же непредсказуема, как если бы в ней были кубики, но эту непредсказуемость создаёт мыслящий человек, а не генератор случайных чисел. Ту же роль играет и ИИ-противник в одиночной партии — бот тоже не жульничает скрытыми бросками, он честно выбирает ход по тем же правилам, что доступны тебе. Это обычный алгоритм на правилах, а не обученная модель: где в разработке игры действительно участвовали нейросети, я разобрал отдельным постом. Разница с рандомом ключевая: неопределённость от соперника преодолима навыком. Кубик перехитрить нельзя. Человека — можно.

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

Пять асимметричных армий множат варианты

Второй источник — асимметрия. В классических шахматах обе стороны играют одинаковыми фигурами; вся вариативность рождается из ходов. В игре «Мат» пять рас, и они устроены по-разному: кибернетическая Империя, маги Индоры, техно-гномы Кхлари, ожившие деревья Дендрионы, дикие ящеры Ики-Оки. У каждой — свой набор фигур, свои способности, свой рисунок боя.

Каждая пара рас — это фактически отдельная игра со своей динамикой: Индоры против Кхлари играются не так, как Дендрионы против Ики-Оки. Асимметрия перемножает варианты не хуже, чем это делал бы рандом, — но перемножает их осмысленно. Когда соперник приводит другую расу, меняется не случайное число, а вся логика позиции, и тебе есть что в ней разгадывать. Это тот самый «Fischer Random на стероидах», только источник разнообразия не жеребьёвка стартовой расстановки, а пять по-настоящему разных армий.

Прогрессия добавляет разнообразие на входе

Есть и третий, более тихий слой. Фигуры приходят в коллекцию с одной способностью и растут по мере накопления боевого опыта — обрастают способностями, характеристиками, артефактами. Две одинаковые по названию армии в руках двух игроков могут быть собраны по-разному. Это не случайность внутри партии (внутри партии всё по-прежнему детерминировано), а разнообразие стартовых условий — ещё одна причина, по которой две партии не похожи одна на другую.

Чем за это платишь

Честно: детерминизм — не бесплатное решение, у него есть цена, и платит её разработчик.

Рандом — это дешёвый способ сделать игру «неодинаковой». Подбросил монетку — и вот уже две партии не похожи, почти без усилий с твоей стороны. Убрав случайность, я лишил себя этого костыля. Всю вариативность теперь должны давать сами механики: асимметрия рас, глубина дерева ходов, инвентарь, ловушки. Если их не хватит — детерминированная игра действительно выродится в решённую задачу, и винить в скуке будет некого. Это постоянное давление на дизайн: каждая раса обязана быть по-настоящему другой, каждая способность — добавлять веток в дерево, а не дублировать существующие.

Отдельная боль — баланс. В игре с рандомом слабый ход иногда «вывозит» удачей, и дисбаланс маскируется. Без случайности всё голо: если одна раса объективно сильнее, это видно на дистанции сразу, отмазки «просто не повезло» не существует. Эталон, на который я смотрю, — Into the Breach, детерминированная тактическая головоломка, где вся сложность держится на чистом дизайне, а не на бросках. Планка высокая. Но обмен того стоит: игрок получает честную игру, где за исход отвечает только он, — а это ровно то, ради чего всё и затевалось.

Что почитать дальше

← На главную