
Код карточной колоды
Как использовать искусственный интеллект в карточных играх
От автора
Когда человек впервые садится за карточный стол — будь то настоящий, покрытый зеленым сукном, или виртуальный, существующий лишь на экране компьютера, — он почти всегда убежден, что судьба партии определяется исключительно удачей. Одни надеются на счастливую раздачу, другие — на собственный опыт, третьи ищут скрытые закономерности в последовательности карт, хотя прекрасно понимают, что случайность не обязана быть справедливой. Именно с этого убеждения начинается путь почти каждого игрока, и именно оно на протяжении десятилетий оставалось основой представлений о карточных играх.
Однако мир цифровых технологий постепенно меняет даже те вещи, которые еще совсем недавно казались незыблемыми. Сегодня программное обеспечение способно анализировать огромные массивы информации за доли секунды, искусственный интеллект обучается на миллионах примеров, а алгоритмы машинного обучения принимают решения, которые еще десять лет назад считались исключительно человеческой прерогативой. Возникает закономерный вопрос: может ли подобная эволюция обойти стороной индустрию цифровых карточных игр?
Именно этот вопрос однажды заставил меня отказаться от поверхностных объяснений и попытаться разобраться в происходящем значительно глубже. Меня интересовало не столько устройство конкретных игр, сколько сама логика современных игровых систем. Почему иногда цифровая партия развивается так, словно кто-то незаметно поддерживает напряжение до самого финала? Почему после нескольких побед подряд игрок неожиданно сталкивается с серией почти безупречных действий соперников? Почему опытные игроки разных стран, никогда не общавшиеся между собой, нередко описывают удивительно похожие ощущения от игрового процесса?
Разумеется, ощущения сами по себе ничего не доказывают. Человеческая психика склонна искать закономерности даже там, где их нет. Мы запоминаем необычные события гораздо лучше, чем тысячи самых обычных партий, поэтому любое исследование подобных вопросов должно опираться не на эмоции, а на факты, математику, информатику и современные представления об искусственном интеллекте.
Эта книга родилась именно из желания отделить доказанное от предполагаемого, реальные технологии — от распространенных мифов, а инженерные решения — от многочисленных домыслов, которыми неизбежно обрастают популярные онлайн-игры.
Перед вами не расследование и не попытка разоблачить какую-либо компанию. Здесь не будет обвинений, основанных на слухах, и категоричных выводов там, где отсутствуют объективные доказательства. Напротив, главная цель книги заключается в том, чтобы показать читателю, насколько сложным стал современный игровой мир и какие технологии действительно существуют уже сегодня.
Преимущество этой книги перед большинством публикаций на аналогичную тему заключается в том, что она рассматривает цифровые карточные игры не глазами игрока и не глазами разработчика, а с позиции исследователя, который пытается понять общие принципы построения интеллектуальных игровых систем. Мы будем говорить не только о картах, вероятностях и комбинациях. Постепенно станет ясно, что карточная игра является лишь одной из многочисленных моделей, на которых современные алгоритмы искусственного интеллекта демонстрируют свои возможности.
После прочтения книги вы начнете иначе смотреть на цифровые игры, научитесь отличать настоящую случайность от управляемых вероятностных процессов и поймете, почему игровая индустрия все чаще обращается к технологиям искусственного интеллекта.
Бонус в конце книги: Практическая глава.
Как использовать искусственный интеллект в карточных играх
Дисклеймер
Настоящая книга представляет собой научно-популярное исследование современных алгоритмов, применяемых или потенциально применимых в цифровых карточных играх. Многие описанные технологии существуют в реальности и широко используются в различных областях информационных технологий, включая машинное обучение, анализ больших данных, адаптивные игровые системы, интеллектуальные модели принятия решений и прогнозирование поведения пользователей.
Вместе с тем отдельные архитектуры, рассматриваемые в книге, приводятся в качестве теоретических моделей или инженерных концепций. Их описание не означает, что подобные алгоритмы используются в конкретной коммерческой игре или принадлежат определенной компании.
Автор не располагает исходными кодами коммерческих игровых проектов и не делает утверждений относительно внутренних механизмов их работы. В тех случаях, когда речь идет о гипотетических моделях, это будет прямо указано в тексте.
Основная задача книги — познакомить читателя с возможностями современных технологий искусственного интеллекта, показать, каким образом они способны влиять на архитектуру цифровых игр, а также помочь критически оценивать распространенные представления о случайности, вероятности и игровых алгоритмах.
Все совпадения с существующими проектами являются случайными либо объясняются использованием общих принципов разработки программного обеспечения, широко известных в современной игровой индустрии.
Введение
На протяжении большей части человеческой истории карточная игра представляла собой удивительно простую математическую систему. Карты тщательно перемешивали, раздавали участникам, после чего дальнейшее развитие событий зависело исключительно от двух факторов: случайности и мастерства игроков. Никто не мог изменить уже сложившуюся последовательность карт, никто не обладал возможностью вмешаться в процесс после начала партии, а сама колода существовала как вполне материальный объект, подчинявшийся законам физического мира.
С появлением компьютеров ситуация изменилась не сразу. Первые цифровые карточные игры лишь имитировали привычную колоду. Программа случайным образом переставляла виртуальные карты, после чего дальнейшее развитие партии практически полностью повторяло механику традиционной игры. Компьютер выполнял функции дилера, не более того.
Однако цифровая среда обладает одним принципиальным отличием от реального карточного стола. Здесь колода существует не в виде бумажных карт, а в виде данных. Любая карта представляет собой запись в памяти компьютера, любой ход — последовательность вычислений, а любое игровое событие становится результатом работы программного кода. Именно эта особенность открыла перед разработчиками возможности, которые невозможно реализовать в физическом мире.
Современные игровые серверы способны одновременно обслуживать миллионы пользователей. Каждая сыгранная партия оставляет после себя огромный объем информации: какие карты были разыграны, сколько времени игрок принимал решение, какие стратегии чаще приводили к победе, какие комбинации оказывались слишком сильными, а какие практически перестали использоваться. Со временем эти данные превращаются в ценнейший материал для анализа.
Параллельно с этим развивался искусственный интеллект. Если раньше алгоритмы могли лишь выполнять заранее заданные инструкции, то сегодня они умеют находить закономерности самостоятельно, прогнозировать развитие событий и адаптироваться к изменяющимся условиям. В результате перед игровой индустрией открылись новые горизонты.
Появилась возможность создавать не просто случайные партии, а интеллектуально сбалансированные игровые процессы, способные поддерживать интерес миллионов пользователей на протяжении многих лет.
Именно здесь возникает главный вопрос, вокруг которого строится вся книга.
Что представляет собой современная цифровая карточная игра? Является ли она обычной виртуальной копией привычной колоды, где всем управляет генератор случайных чисел, или же перед нами сложная интеллектуальная система, анализирующая огромное количество параметров и принимающая решения значительно более высокого уровня?
Ответить на этот вопрос можно лишь одним способом — постепенно разобравшись в том, как эволюционировали игровые алгоритмы за последние десятилетия. Именно этому и будут посвящены следующие главы книги.
Глава 1
Когда случайность перестала быть единственным правилом
От бумажной колоды к цифровой математике
На первый взгляд кажется, что между бумажной колодой карт и ее цифровым аналогом нет принципиальной разницы. В обоих случаях игрок получает набор карт, принимает решения и пытается переиграть соперника. Однако это сходство обманчиво. Оно существует лишь на поверхности, тогда как внутреннее устройство этих двух миров различается настолько сильно, что их можно считать разными формами одной и той же игры.
За обычным карточным столом после тщательного перемешивания колода становится практически независимой от внешнего мира. Никто не способен изменить порядок карт, если только не нарушит правила игры. Дилер уже не может незаметно заменить карту или переставить ее в середину колоды. Любое подобное вмешательство будет немедленно замечено участниками партии.
В цифровой среде сама идея колоды приобретает совершенно иной смысл. Здесь карты не лежат стопкой на столе. Они существуют лишь как элементы программной структуры данных, а потому могут анализироваться, копироваться, сортироваться и обрабатываться компьютером практически мгновенно. Именно это отличие стало отправной точкой для появления интеллектуальных игровых алгоритмов.
Важно понимать, что компьютер никогда не работает с картами в привычном человеческом понимании. Для него существует лишь последовательность чисел, соответствующих определённым объектам. Пока игрок видит на экране туза, короля или джокера, сервер оперирует идентификаторами, массивами данных и логическими связями между ними. Вся магия игры рождается не в самой карте, а в алгоритме, который решает, когда и при каких обстоятельствах эта карта должна появиться перед игроком.
На ранних этапах развития цифровых игр подобные алгоритмы были достаточно простыми. После запуска партии программа формировала виртуальную колоду, случайным образом перемешивала её и последовательно раздавала карты. По сути, компьютер лишь имитировал действия человека, сидящего за игровым столом.
Но по мере роста вычислительных возможностей ситуация начала меняться.
Разработчики заметили, что абсолютная случайность далеко не всегда делает игру интересной. Представим себе партию, в которой один участник уже в первые минуты получает практически идеальную комбинацию, а другой оказывается обречённым на поражение ещё до того, как успевает сделать первый серьёзный ход. С математической точки зрения такая ситуация абсолютно нормальна. Именно так и ведёт себя настоящая случайность. Однако с точки зрения игрока подобная партия редко вызывает желание начать новую.
Именно здесь впервые возникла идея не просто моделировать случайность, а управлять её проявлениями таким образом, чтобы сохранить баланс между непредсказуемостью и увлекательностью.
Эта мысль стала переломным моментом в истории цифровых карточных игр.
Почему абсолютная случайность не всегда является достоинством
Когда люди слышат выражение «честная случайность», они почти всегда представляют себе идеальную справедливость. На самом деле теория вероятностей говорит совсем о другом.
Истинная случайность не заботится о человеческих ожиданиях. Она не пытается сделать игру красивой, драматичной или зрелищной. Более того, настоящая случайность способна создавать длинные серии одинаковых событий, которые человеку кажутся подозрительными.
Например, если монету подбросить тысячу раз, вполне возможно получить десять или даже двенадцать орлов подряд. Для математика это совершенно естественное явление. Для большинства людей — повод заподозрить обман.
С карточными играми происходит нечто похожее. Игрок ожидает постоянного разнообразия, тогда как случайность вполне способна несколько партий подряд выдавать похожие комбинации или, наоборот, долго не показывать редкие карты. Именно поэтому человеческая интуиция очень плохо оценивает вероятностные процессы.
Разработчики игр давно столкнулись с этим парадоксом. Оказалось, что объективно честный алгоритм может восприниматься аудиторией как несправедливый, тогда как слегка скорректированная вероятность выглядит значительно более естественной.
Представим музыкальный проигрыватель, который случайным образом выбирает композиции из большого плейлиста. Если использовать абсолютно честный генератор случайных чисел, некоторые песни могут прозвучать дважды подряд, а другие не появятся вовсе в течение нескольких часов. Пользователь почти наверняка решит, что функция работает неправильно.
Поэтому многие музыкальные сервисы применяют не чистую случайность, а алгоритмы «умного перемешивания», которые искусственно уменьшают вероятность повторов. Интересно, что большинство пользователей воспринимает именно такой алгоритм как более случайный, хотя математически он уже не является таковым.
Игровая индустрия пришла к похожим выводам.
Если задача разработчика состоит не только в соблюдении математической честности, но и в создании увлекательного процесса, возникает соблазн слегка скорректировать вероятность некоторых событий. Совсем немного — настолько, чтобы игрок не заметил вмешательства, но при этом ощущал, что каждая партия развивается интересно.
На этом этапе начинается переход от простой случайности к интеллектуальному управлению вероятностями.
Именно этому посвящена следующая глава.
Глава 2
Эволюция игровых алгоритмов:
Генератор случайных чисел как фундамент цифровых игр
Почти каждая современная цифровая карточная игра начинается с механизма, известного как генератор псевдослучайных чисел, или RNG (Random Number Generator). Несмотря на широко распространённое мнение, компьютер практически никогда не создаёт настоящую случайность. Он вычисляет длинную последовательность чисел по заранее определённому математическому алгоритму. Если использовать одинаковые исходные параметры, такая последовательность может быть воспроизведена снова.
Для большинства игровых задач этого вполне достаточно. Хороший генератор создаёт последовательности, которые невозможно отличить от настоящей случайности без применения специальных методов анализа. Именно поэтому на протяжении многих лет RNG оставался основой практически всех цифровых карточных игр.
Однако с развитием многопользовательских проектов начали появляться новые требования. Игровые миры становились сложнее, аудитория — многочисленнее, а сами партии начали генерировать огромные массивы информации.
Если раньше программе было достаточно лишь раздать карты, то теперь она должна учитывать десятки дополнительных факторов: рейтинг игроков, их опыт, продолжительность игровых сессий, популярность отдельных стратегий, влияние новых карт после обновлений и множество других параметров.
Постепенно стало очевидно, что простой генератор случайных чисел уже не способен самостоятельно решать все возникающие задачи.
Когда данные становятся важнее случайности
Каждая сыгранная партия оставляет цифровой след. Компьютер фиксирует не только итоговый результат, но и каждое принятое игроком решение. Сколько времени он думал над ходом. Какие карты предпочитал разыгрывать. В какой момент начинал рисковать. Как реагировал на неожиданные изменения ситуации.
Если таких партий становится тысяча, появляется интересная статистика. Если их миллион — начинают проявляться закономерности. Если речь идёт о сотнях миллионов матчей, система получает уникальную возможность изучить поведение игроков значительно лучше, чем способен любой человек.
Именно здесь в игру вступают методы машинного обучения.
В отличие от традиционных алгоритмов, выполняющих заранее написанные инструкции, обучающиеся модели способны самостоятельно искать повторяющиеся закономерности. Они могут определить, какие комбинации оказываются слишком сильными, какие карты практически перестали использоваться, а какие стратегии неожиданно стали доминировать после очередного обновления.
Полученные знания помогают разработчикам поддерживать баланс игры. Но возникает ещё более интересный вопрос.
Если искусственный интеллект умеет анализировать игровые партии, способен ли он использовать этот анализ непосредственно во время самой игры?
Ответ оказывается далеко не таким простым, как может показаться.
Современный ИИ уже умеет оценивать вероятность различных сценариев, прогнозировать развитие событий и рассчитывать последствия множества возможных решений. Именно поэтому в некоторых исследовательских проектах искусственный интеллект используется не только как аналитический инструмент, но и как активный участник процесса моделирования игровых ситуаций.
Это вовсе не означает, что алгоритм начинает выбирать победителя. Скорее он получает возможность прогнозировать развитие партии с высокой точностью и использовать эти знания для оценки качества игрового баланса.
Именно подобные технологии становятся фундаментом нового поколения интеллектуальных игровых систем.
Глава 3
Искусственный интеллект начинает понимать игру
От вычислений к прогнозированию
Существует принципиальная разница между компьютером, который умеет быстро считать, и системой, способной строить прогнозы. Первый просто выполняет инструкции. Вторая пытается представить, что произойдёт через несколько ходов, если ситуация будет развиваться по тому или иному сценарию.
Эта способность изменила подход к созданию цифровых игр.
Раньше программа реагировала исключительно на уже произошедшие события. Сегодня она может оценивать вероятность будущих состояний партии ещё до того, как игроки сделают свои следующие ходы.
Подобный подход давно используется в шахматных движках, системах анализа го и других интеллектуальных играх. Алгоритм просчитывает огромное количество возможных вариантов развития событий, сравнивает их между собой и выбирает наиболее вероятные сценарии.
В карточных играх задача оказывается значительно сложнее. Здесь присутствует скрытая информация, случайная раздача, неизвестные карты соперника и большое количество факторов, которые невозможно определить заранее.
Бесплатный фрагмент закончился.
Купите книгу, чтобы продолжить чтение.