ИИ как настольный партнёр

Цифровыми версиями настолок сегодня никого не удивишь. Помимо разнообразных удобств у них у всех есть одна общая черта — в них можно играть одному, против компьютерного противника. О том, какие бывают эти искусственные соперники рассуждает Михаил Баландин

Отношение к компьютерным воплощениям настольных игр у разных людей разное. Но вряд ли кто-то будет спорить с тем, что компьютерная настолка имеет один большой плюс: она всегда готова предоставить виртуального оппонента, который отлично знает правила и не отказывается играть именно в то, во что хочется поиграть вам.

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

Чего вообще можно ожидать от искусственного интеллекта (ИИ) в настольной игре? Каким он может быть, и как игра с ним влияет на игровую психологию человека? Какие интересные случаи можно припомнить из уже существующих на данный момент реализаций?..

Самым примитивным — и, соответственно, самым худшим из всех возможных вариантов, — является ИИ, который можно охарактеризовать как мальчика для битья. Такой „мальчик“ рождается на свет очень просто: программист поленился потратить время на разработку и проработку алгоритма, вместо этого прописав нечто, чьи действия в рамках правил отличаются абсолютно минимальной осмысленностью.

Однажды мне довелось поиграть в шашки против студенческой программы. Согласно пояснениям автора, сей ИИ действовал следующим образом: если возможно взятие, взять максимум вражеских шашек; если взятие невозможно, сделать любой ход вблизи центра доски, не подставляющий свою шашку под бой; если любой ход подставляет шашку под бой, сделать тот ход, которым подставляется наименьшее количество шашек.

Думается, результат такой игры понятен. Программа была в состоянии победить разве что четырёх-пятилетнего ребёнка, севшего за шашки первый раз в жизни, да и то при немалом везении. Это неудивительно. Удивительно то, что подобную халтуру можно встретить в приложениях, серьёзно претендующих на звание коммерческих и официальных. Хотите верьте, хотите нет — но примерно так же играет ИИ в официальной реализации „Каркассона“ под Андроид.

Тем не менее, „мальчик для битья“ всё же может приносить определённую пользу. Он худо-бедно способен дать общее представление человеку, чьё знакомство с игрой находится на нулевом уровне, и за первые две-три партии показать ему какие-то примеры того, как заведомо не надо играть. Бывают и такие ситуации, когда игра по-разному масштабируется на разное число участников, и иногда просто хочется хоть какого-то дополнительного партнёра, пусть даже и и круглого дурака… (:

Другой конец шкалы занимает ИИ, который можно описать одним словом — терминатор. Наверно, все сталкивались с таким явлением.

„Терминатор“ безупречен в игре. Он буквально рвёт игрока-человека, как Тузик грелку. После первой же ошибки, совершенной на первых же ходах, человеку становится очевидно дальнейшее, и можно уже не продолжать. Не простит-с.

Нетрудно догадаться, что рождением „терминатора“ мы обязаны программистам, выполнившим свою работу слишком хорошо. Бывает и такое. Чтобы не ходить далеко за примером — именно такого монстра выпустил со своей клавиатуры Келдон Джонс, создатель неофициальной реализации „Борьбы за Галактику“.

Конечно, оценка уровня игры ИИ человеком — дело субъективное. Но когда много народу сходится на одном мнении, можно с достататочной степенью уверенности говорить, что они почти наверняка правы. В данном случае дело обстоит именно так, тем более что известно: Келдон реализовал свой ИИ на основе нейронной сети — самого теоретически сильного игрового алгоритма.

При рождении „терминатора“ неизбежно находятся борцы за справедливость, которые категорически заявляют, что программа себе подыгрывает. Это особенно часто происходит, когда игра включает элемент случайности — по своему опыту свидетельствую, что многократно слышал подобные вопли в адрес GNUbackgammon, одной из сильнейших программ для игры в нарды. В ней, кстати, тоже реализована нейронная сеть, а исходные тексты открыты. Вроде бы нет проблем — залезь в исходники, разберись, найди читерство и выложи на всеобщее обозрение. Ан нет, ткнуть пальцем в конкретное место никто так и не может, но вопли никак не утихают…

Что можно сказать про „терминатора“? Конечно, хорошо, если ИИ может играть на этом уровне. Но плохо, если он не способен играть на уровне более слабом.

Игроки, которые хотят от виртуального оппонента максимальной эффективности и беспощадности, безусловно, существуют. Собственно, автор этих строк как раз из таких. (Чем больше меня порвут широким разнообразием способов, тем больше я в конечном итоге буду знать об игре и тем лучше играть сам!) Но есть ведь и такие игроки, которые хотят просто получать от процесса игры удовольствие — и таких как бы даже не больше. Едва ли им понравится „терминатор“, в принципе не способный умерить свою мощь. А совсем зелёных новичков он может даже и отпугнуть от игры… чего, собственно, с той же „Борьбой за Галактику“ неоднократно и происходило.

Между этими двумя крайностями находятся все остальные случаи. Тут может возникнуть интересный вспомогательный вопрос, а как, собственно, программисту уменьшить силу игры ИИ? Скажем, если используется перебор дерева состояний игры, то можно ограничить глубину его обхода… но это уже матан. (: Просто поверьте, что иногда это отнюдь не просто.

Ну ладно, допустим, что разработчику удалось решить эту задачу, и решить удачно. Пусть мы выставили уровень ИИ на эквивалент приличного игрока-человека, этот уровень нас вполне устраивает, и мы наслаждаемся игрой. Обычно это можно охарактеризовать фразой „и проиграть не стыдно, и выиграть приятно“. Но тут же возникнет другая проблема.

Имя ей — стиль игры. Многие (и очень многие!) игры подразумевают разнообразие возможных манер и стратегий. Меняя различных соперников-людей, мы знакомимся с их любимыми стилями, постоянно усваиваем что-то новое для себя, и нам интересно.

Трудно представить себе сколько-нибудь серьёзную игру, в которой не была бы возможной индивидуальная манера. Даже простецкие „русские шашки“, которые давно полностью перебираются приличным домашним ноутбуком, у игроков-людей допускают специфические стили. Чего уж говорить о более сложных случаях…

Я вспоминаю, например, 1997 год, когда Каспаров проиграл шахматный матч суперкомпьютеру „Deep Blue“. В последней решающей партии он был буквально разгромлен всего за 19 ходов и час времени — кому интересно, найти эту партию в интернетах не составляет труда. На последующей пресс-конференции прозвучали слова гроссмейстера о том, что компьютер играл так, будто его специально „натаскивали“ именно против конкретного соперника.

Но в более общем и менее крутом случае манера игры ИИ всё же раз навсегда определяется логикой программы и не особенно блещет разнообразием. Это, в конце концов, один игрок, хотя бы даже в партии он и был представлен несколькими экземплярами.

Хотя, с другой стороны, стиль ИИ может преподнести человеку сюрприз, точно как при знакомстве с новым необычным игроком. Я хорошо помню, как многих моих знакомых буквально шокировало знакомство с официальной реализацией „Маленького Мира“ под iOS: компьютер играет в него как в натуральный варгейм (которым „ММ“ не является), и это поначалу может нехило порвать шаблон. (:

Я могу припомнить лишь одно по-настоящему удачное решение этой проблемы — официальную реализацию „Каркассона“ опять-таки под iOS (не путать с ранее упоминавшимся срамом под Андроид). Там сделали не один ИИ, а пять различных его версий! Из которых четверо могут присутствовать по два экземпляра.

http://f.cl.ly/items/162o2J0R0O0v1q253V20/Untitled.png

„Simple“ — это типичный „мальчик для битья“, как он описан выше. „Easy“ — уровень новичка, способного действовать уже совершенно осмысленно, но не имеющего опыта. „Strong“ — по-настоящему сильный игрок, хотя и не дотягивающий до уровня „терминатора“. Два остальные типа наиболее любопытны: „Evil“ исключительно вреден, предпочитая всячески пакостить соперникам, а „Weird“ представляет собой нечто среднее между двумя предыдущими случаями — сильный игрок, который иногда по прихоти поддаётся тёмной стороне и принципиально гадит другим.

Но всё-таки это редкое исключение. И если вы стали регулярно выигрывать против бота — не торопитесь делать вывод о том, что постигли данную игру. Скорее всего, вы просто-напросто научились играть против этого бота. (: А посему всё-таки старайтесь играть против живых соперников.

Хотя бы и в компьютерную реализацию… что, кстати, намного удобнее. Но это уже другой разговор.

Околоигровое



Похожие записи
  • Фальстарт российского «Геймстарта»
  • Нужны ли правила в обзорах?
  • Механики непрямого взаимодействия
  • Эволюция декбилдинга
  • Американские шпионы учатся на настолках!
    1. denis13
      24 Окт 2013 из 11:03 | #1

      ИИ в RftG никой не терминатор.

      сейчас я обыгрываю его регулярно, а моя герлфренд вообще в первые пару дней после объяснения правил порвала его 5 раз почти подряд, что в доказательство мне заскриншотила.


    2. Random Phobosis
      24 Окт 2013 из 12:04 | #2

      Да чем же ИИ RftG — терминатор? Он может представлять серьёзную сложность разве что для новичков. Если проблема и есть, то она в обманчивой простоте Race for the Galaxy: если игрок понял правила, это ещё не значит, что он понял, как играть :}


    3. Scorpius
      24 Окт 2013 из 19:59 | #3

      Согласен с предыдущими ораторами.


    4. Абырвалг
      25 Окт 2013 из 15:59 | #4

      «Самым примитивным — и, соответственно, самым худшим из всех возможных вариантов, — является ИИ, который можно охарактеризовать как мальчика для битья. Такой „мальчик“ рождается на свет очень просто: программист поленился потратить время на разработку и проработку алгоритма, вместо этого прописав нечто, чьи действия в рамках правил отличаются абсолютно минимальной осмысленностью.»


      Я так понял, у автора статьи программисты и алгоритмы прорабатывают, и дизайном занимаются, и табуретки чинят.

      А смысл статьи так и не уловил. Какой вывод должны сделать читатели?


    5. Дмитрий
      30 Окт 2013 из 10:07 | #5

      ИИ в RftG добротный, но никак не терминатор. С ним интересно играть, он достойный соперник, но победить его не сложнее, чем победить опытного игрока. Бывает он тупит (или ему не идут карты), бывает и обратное, в общем это как раз пример практически идеальной реализации ИИ. Да и само перенесение RftG в виртуальное пространство считаю лучшим в своём роде, продуманный интерфейс, ничего лишнего, рекомендую ознакомится, тем кто еще не видел этого чуда. Его бы на андроид портировать, цены бы не было)


    1. Трекбеков пока нет.