Ваша первая интеллектуальная игра на пк?
"А теперь, мальчик, я научу тебя обращаться с женщинами"
Герои Гильдгаарда. Логическая онлайн стратегия
Герои Гильдгаарда
Друзья, мы тут закончили разработку нашей новой онлайн игры, поэтому перед полноценным релизом хочется немного рассказать про неё, про какие-то технические подробности, да и вообще как из 2D пришли в 3D (почти).
Мы делаем многопользовательские мобильные онлайн игры и наша новая разработка не стала исключением. Герои Гильгаарда – это логическая онлайн стратегия, где игроку необходимо захватить все шашки противников. Тут нет элементов случайности (в классическом режиме), поле фиксированного размера, игроки ходят по очереди и всё решает скилл.
Каждый игрок начинает со своего угла с 3 начальными шашками, расположенными уголком. При игре один на один, игроки располагаются по диагонали. В свой ход игрок может добавить новую шашку только на клетку где уже стоят шашки его цвета. На пустую клетку добавить шашку – нельзя.
Когда в одной клетке скапливается 4 шашки, они разлетаются в соседние клетки на 4 стороны. Если в это время в соседней клетке были шашки противника, они переходят к игроку сделавшему ход (меняют цвет). Собственно, это самое интересное: если в результате хода и разлёта шашек, в какой-то клетке снова скапливается 4 шашки, то процесс продолжается пока все шашки не разлетятся по своим местам. Как это примерно выглядит:
На видео выше просто пример, слабенькое комбо, под конец партии могут быть довольно эпичные камбеки.
Да, в этой игре есть пару стратегий которые позволяют добиться преимущества на поле, хотя может показаться что победа – дело случая – это не так. Но в то же время, один ход в конце партии может изменить всё…
Играть можно один на один или вчетвером. Зачастую партии достаточно короткие, можно завершить буквально за несколько минут, но не всегда конечно, можно долго елозить туда-сюда. Есть расширенный режим, в котором в центре поля рандомно появляются специальные клетки с эффектами. При попадании шашки на такую клетку происходит какая-нибудь магия :)
Расширенный режим
Также, можно смотреть другие игры в реальном времени (если она не приватная), гамать с друзьями закрытые партии, общаться в чатике, обмениваться фотками, дарить подарки, играть одним аккаунтом на iOS и Android и прочие радости. Это всё можно прочитать в описании на страничке в сторе. А ещё, у нас нет рекламы (только ревардед). Раунд!
Почему Герои? Почему Гильдгаарда?
По задумке, Гильдгаард – это королевство, где золото самый важный ресурс за который идёт борьба. Заработанное в боях золото можно будет тратить. В общем-то отсюда и название: gild – золотить, ну а окончание -gaard, это популярное окончание датских городов и фамилий, которые означают к кому относится данная территория. Вот такой этимологический мини-экскурс, а не отсылка к Ведьмаку :)
Герои тоже были придуманы не просто так. У каждого своя история и, если всё пойдёт как мы хотим, то в одном из обновлений к игре добавится интересная мета. Об этом пока умолчу.
Сейчас доступны 3 арены где можно показать своё мастерство и заработать голду, 8 героев (4 доступны сразу), и разные айтемы чтобы “выделяться” в топе игроков.
Немного про техническую часть
У нас большой опыт в разработке мобильных онлайн игр. В основном жанра: настольные. Некоторые из них, шутка ли, уже 10 лет! в топе в Google Play и AppStore. Ну и наверняка многие играли в наши карточные игры, нарды, шашки, домино и другие. Все они в 2D, некоторые на LibGDX, другие на SpriteKit, а все последние делаем уже на Unity.
Герои тоже на Unity. Но в отличии от предыдущих игр, где было достаточно 2D, мы решили поэкспериментировать с 3D. Модельки, свет, партиклы, вот эти все штуки. Мы не используем сторонние ассеты, почти всё своё. Исключение составляют какие-то известные и проверенные библиотеки, например, DOTween. Вот кратко что используем:
External Dependency Manager – мастхев штука для мобильной разработки, подтягивает все зависимости
SafeArea – один скриптик для того чтобы ваш UI не залазил на вырезы и дырки в экране
DOTween – движок для анимирования, на нём делаем эффекты UI, да и самой игры
Leopotam – нельзя не отметить вклад Леопотама, использую его скрипты, почти все допилинные, сейчас они уже недоступны на его гитхабе, он больше по ECS
UnityIngameDebugConsole – прекрасная штука для отладки на девайсе, можно биндить свои команды, смотреть лог итд
UI Soft Mask – мягкая маска для UI
Graphy – ещё один отличный инструмент для дебага на девайсе
Собственно это всё что взяли со стороны :)
В основе лежит наш фреймворк, который оброс интересными возможностями:
Сетевая часть: RPC, events, многосерверность, поддержка SSL и прочее
UI binding
Набор UI компонентов: попапы, бесконечные списки, туглы, модальные окна итд.
Менеджер сцен и экранов с дозагрузкой
Работа с HTTP
Загрузка и кеширование картинок
Менеджер корутин
Работа с эмоджи
Менеджер сообщений. За основу взяли штуку на интерфейсах и допилили под свои нужды
Локализация и другие табличные данные через Google Sheets (тут снова привет Леопотаму :)
Большой набор билд скриптов. Про это я немного писал на DTF. Теперь это выглядит как-то так и улучшается:
Наш кастомный билдер под разные платформы, экономит кучу времени
Набор плагинов для Android, Huawei и iOS:
Apple Sign in
Google Sign in
Huawei Sign in
Встроенный браузер
Работа с камерой и галерей
Нативное поле ввода
Покупки
Реклама
Push уведомления
Отправка почты
Шаринг
In-app review и другие. Об этом писал как-то тут.
Еще у нас свой remote конфиг, менеджер звуков, шифрование, liveops штуки итд
Все модельки сделаны в Blender. Потом делали ретопологию, потом запекали свет, анимации и всё это импортировали в Unity. Получилось вроде симпатично. Вот так выглядели почти законченные первые герои:
Все герои на текущий момент
А вот так выглядел самый первый прототип, когда ещё не было понятно, пойдет игра в продакшн или нет:
Он был играбельный, без сервера, игроки просто ходили по очереди, тут ещё неправильно делается разлёт шашек, но даже такие простые штуки сразу позволяют оценить как игра будет играться. Делайте прототипы!
Все спрайты и текстуры делали POT, собирали в атласы, пробовали разные типы сжатия дабы добиться меньшего размера билда и хорошего качества на экране. Кстати про оптимизацию, мой древний пост ещё немного актуален, ну, некоторые пункты точно будут полезны.
Вообще каких-то особых проблем с 3D не возникло, хорошо оптимизированные модельки и запечённый свет решают много проблем :) Но у нас и каких-то замороченных сцен, травы, воды и прочего нет. Для первого раза решили не мудрить, если пойдет – будем дальше в 3D что-то поинтересней делать.
Если говорить про код, банально, но кодим чтобы поменьше мусора было, тогда всё будет плавно и красиво. Не всегда это конечно получается, но стремимся. Каких-то визуальных штук не используем, типа PlayMaker, Bolt или что там ещё есть. ECS тоже пока не приходилось в прод запускать, так, побаловались просто. Да, на монобехах, да не дрочим на SOLID, пользуемся тем чем удобно, чтобы работало хорошо и было понятно)
Вот такая коротенькая история про нашу новую игру. Когда будут какие-то метрики, постараюсь поделиться тем чем можно. Если интересны какие-то детали – пишите в комменты, попробую ответить всем.
Хороших и интересных игр!
Небольшая просьба: если нашли баг, напишите пару строк на hg@magicboard.games, постараемся побыстрее исправить и сделать апдейт. Плохие оценки в сторе так сложно исправлять :(
В Питере шаверма и мосты, в Казани эчпочмаки и казан. А что в других городах?
Мы постарались сделать каждый город, с которого начинается еженедельный заед в нашей новой игре, по-настоящему уникальным. Оценить можно на странице совместной игры Torero и Пикабу.
Реклама АО «Кордиант», ИНН 7601001509
Тримино на доске 4 на 4
Это моя авторская игра на удаление рядов. Число игроков от одного до четырёх. Для одиночного режима нужно 14 шашек, (цвет не важен), игральный кубик и ещё доска 4 на 4. Рядом с доской нарисованы 6 фигур тримино (подсказок).
Суть одиночного режима - сделать как можно больше ходов. Ход - это бросок кубика, затем выставление тримино (трёх рядом стоящих шашек) и, если повезёт, удаление всех построенных вертикальных и горизонтальных рядов.
Теперь подробнее. Тримино - это три квадрата, соединённых сторонами. Эти квадратные поля занимают шашками. Бывает тримино-палочка и тримино-уголок. В моей игре важно, как повёрнуто тримино: палочка может быть вертикальной и горизонтальной, а уголок можно крутить четырьмя способами.
Всего 2+4=6 комбинаций (они и нарисованы на подсказках). Игрок бросает кубик и выставляет на доску выпавшую комбинацию на любое свободное место (даже если эта комбинация висит в воздухе). Например, если в начале игры выпала вертикальная палочка, есть 8 вариантов, где её разместить. Варианты: в любой из четырёх колонок (сверху или снизу).
Короче, проще посмотреть видео игры в одиночном режиме продолжительностью 19 ходов. Видео без звука.
Если Вы построили горизонтальный и/или вертикальный ряд/ряды из 4 клеток, то все шашки с доски снимаются. Диагональные ряды не считаются. Игра заканчивается "тупиком", когда нет ни одного хода.
Как Вы поняли, у меня есть примитивная web-версия. Выложил код в открытый доступ и сделал страничку на GithubPages. Используйте GoogleChrome, ЯндексБраузер, Opera, FireFox, Edge. У любителей яблочной техники в Safari баг, до которого я ещё не добрался.
Насладиться игрой:
Поковыряться в коде и скачать доску для печати на А4:
Файл: Printable Board on A4 (GameTrimino).pdf
Весь JavaScript находится прямо внутри одного index.html файла, никакие библиотеки и фреймворки не используются. Если вы скачаете файл index.html, то он будет работать даже без интернета. Графика на Canvas самая примитивная.
Теперь о режиме игры вдвоём (и с большим числом игроков). Есть быстрая версия (в этой версии, если нет ни одного хода, то игра сразу заканчивается), а есть медленная (в этой версии, если нет ни одного хода, то игрок бросает кубик до тех пор, пока ход не появится). Остальные правила одинаковы для обоих версий. Правила такие.
Оба игрока получают в свой запас по 12 шашек (цвет ни на что не влияет, просто в начале удобнее делить шашки по цветам: первому игроку - белые, второму игроку - чёрные). Ходы игроки делают из шашек из своего запаса и образовавшиеся ряды собирают в свой запас. То есть игрокам выгодно строить ряды и мешать сопернику.
Когда у ходившего игрока после хода остаётся две, одна или ноль шашек, игра заканчивается подсчётом очков: каждая шашка в запасе приносит по одному очку. Ещё игра может закончится, если на доске нет ни одного возможного хода (даже при любом броске кубика) - тогда теоретически возможна ничья (равный счёт).
При быстрой версии большинство партий заканчивается «тупиком». Самый быстрый теоретически возможный «тупик» возникает после того, как белые сыграли уголок номер три в центр, черные - уголок номер три в правый нижний угол, а белым потом выпал уголок номер шесть. Ниже - самый быстрый «тупик».
При игре вдвоём можно раздавать не по 12 шашек, а 11, 10 или 9 (чтобы игра заканчивалась быстрее, особенно в медленном режиме с перекидыванием). При игре втроём или вчетвером правила такие же, как и при игре вдвоём.
Если вас заинтересовала моя игра, то пишите комментарии в комментариях. Я их прокомментирую.
Ребят, тут новую игру запилили!
Ну как же Мы, в такую волну и без NSFW?
Крестики-нолики, шашки и шахматы: немного об играх в математике
Вы вечно проигрываете в крестики-нолики? Устали от бесконечных издевок окружающих? Чувствуете себя неполноценным членом общества? Тогда вы обратились по адресу! Сегодня у вас есть уникальная возможность пройти наш обучающий курс по беспроигрышной стратегии, который стартует уже сегодня! Присоединяйтесь сейчас и получите скидку 10% по промокоду НЕУДАЧНОЕ_ВСТУПЛЕНИЕ!
Так, ладно, скорее всего все и так знают, что в крестиках-ноликах практически невозможно не победить, да и они давно вышли из моды. Но для поддержания уровня занудства, мы все-таки пробежимся по общей стратегии, а затем очень издалека начнем разговор про игры, так что заваривайте чаёк и присаживайтесь. Кто в теме, следующую часть можно пропустить.
Итак, как не проигрывать, если вы ходите первыми (напомню, что в нашем консервативном мире крестики доминируют).
1 ход: всегда в центр;
2 ход: в угол, который дальше всего от предыдущего хода ноликов;
3 ход: защита от попыток нолика чет выстроить или, что вероятнее, – снова ход в угол;
4 ход: тут у вас в наличии либо уже имеются две выигрышные линии, и вы гасите его, либо нолик прикрыл тылы, и исход – ничья.
Если вы играете за нолики, то при «идеальном» сопернике (который ходит всегда верно) у вас есть лишь возможность обороняться и выйти вничью, например:
1 ход: в любой угол;
2 ход: а дальше только пытаться помешать крестикам замутить тройничок, ведь больше вы ни на что не способны в силу своей submissive сущности.
Автор потерял нужную картинку из инета, не судите строго
Как видно, максимальная выгода от этих знаний – спорить с детишками на конфетки (хотя и они быстро раскусят фокус), а программу, способную никогда не проигрывать в крестики-нолики, может написать даже школьник. Самым примитивным методом в данном случае является дерево игровых ситуаций: перебор всех возможных исходов игры, где в конце партии заполнены все клетки поля.
Смотрите, корень нашего дерева – пустое поле 3х3. Первый игрок имеет возможность сделать ход на одну из девяти позиций – рисуем дереву девять веток с разными позициями крестиков (там внизу есть картинка). На следующем ходе у каждой ветки с крестиком есть восемь свободных мест для ноликов, то есть каждой ветке рисуем по восемь новых, где в различных комбинациях на поле две клетки заняты крестиком и ноликом. Итого имеем 9х8 – 72 ветки. Следуя такой логике, на дальнейшем шаге у дерева появится по 7 ответвлений, так как свободно только 7 клеток для крестика, количество теперь веток стало 9х8х7=504. Конечное число решений – листиков нашего дерева – равно 9! (все же знают, что это не девять с восклицанием, а факториал? – 9х8х7х6х5х4х3х2х1) или 362880. Теперь достаточно вбить компьютеру все эти исходы и запрограммировать выбирать только выигрышные.
Первые ветви дерева решений
Но тут даже с первого взгляда понятно, что такой способ слишком «деревянный»: некоторые ветви приводят к победе еще до того, как заполнится все поле, так что мы, по сути, выполняем тонну ненужных вычислений. Нужно уметь не только выбрать кратчайший путь к выигрышу, но и отсечь ненужные ветви – короче, подстричь наше дерево. Первая задача реализуется с помощью алгоритма минимакс, который сводит к минимуму счет противника, максимизируя при этом свой (то есть – выбирая наиболее возможную короткую ветвь). Вторая задача решается методом альфа-бета отсечения, который при переборке различных узлов дерева отсекает заранее проигрышные.
Ну вот, дерево подстригли, причесали – теперь полное количество его узлов сократилось до 256158, и программа всегда будет выигрывать или заканчивать партию вничью за секунды.
Таким образом, крестики-нолики являются примером игры, находящейся в состоянии «ничейной смерти»: любой игрок (даже если он полный чайник, а противник чемпион мира), применяющий правильную теорию, может выиграть или в худшем случае свести ее к ничьей. Такая полностью просчитанная игра теряет смысл, ведь опыт и квалификация игроков больше не имеют веса, и соревновательный момент уступает место вычислениям.
Но крестики-нолики – игра очень примитивная, самая длинная партия в ней равна всего девяти ходам, так что построить и просчитать дерево решений для нее можно даже вручную (развлечение для людей с кучей свободного времени).
Вот, например, с шашками дела обстоят интереснее: кроме большого поля у них и правила на порядок сложнее, так что при подсчетах оказывается, что листьев у дерева решений около 5х10^20. Это пять и рядом двадцать нулей. Думаете, это мало? Оно и понятно, у нас мозг просто не способен представить число такого порядка, но для сравнения: чтобы выстроить цепочку от Земли до Марса из бусинок размером с атом потребуется как раз 5,5х10^20 бусинок. Очевидно, что число это офигеть какое большое, и пятидесяти компьютерам не просто так потребовалось почти 20 лет (двадцать лет, Карл!), чтобы полностью рассчитать все возможные исходы шашек и выстроить их дерево решений.
Сие знаменательное событие произошло в 2007 году благодаря команде канадских исследователей во главе с Джонатаном Шеффером, и с этого момента шашки официально вошли в список полностью решенных игр. Если оба соперника не совершают ошибок, то партия всегда заканчивается ничьей. Тут нужно учесть, что речь идет об английских шашках – чекерс; в них назад бьет только дамка.
Статья Шеффера и его коллег в журнале Science
Таким образом, человек даже теоретически больше никогда не обыграет компьютер в шашки, так как с первого его хода известны все выигрышные решения, и каждый шаг лишь приближает компьютер к победе. Ничейная смерть шашек была предсказана еще в 50-е, и спустя полвека прогноз подтвердился. Но не стоит грустить: если крестики-нолики имеют короткую беспроигрышную стратегию, то для шашек она гораздо-гораздо сложнее, так что и воспользоваться ей может только компьютер. По сути, 2007 был значим только для математиков. Как многие заметили, после 2007 года шашки не умерли, и в игре между двумя человеческими существами решающее значение все еще имеет опыт, а не вычислительные мощности мозга.
Сейчас на меня наверняка налетят шахматные снобы, утверждающие, что приличные люди вообще не играют в шашки. И действительно, а как обстоят дела у шахмат?
Кто победит, если две одинаковые программы устроят между собой шахматный турнир? Будут ли партии всегда заканчиваться вничью или у белых будет преимущество первого хода? И есть ли какая-то выигрышная стратегия, которая позволила бы полному чайнику одолеть чемпиона?
От математики в этой части не осталось ничего, кроме парочки больших чисел, и она является скорее кратким историческим обзором. Однако теория игр без шахмат – как самолет без двигателя, надо чуть-чуть пробежаться по основным моментам.
Итак, по сравнению с великими и ужасными шахматами, шашки (а тем более, крестики-нолики) покажутся развлечением для малышей. Напомню, что для английских шашек количество различных вариантов партий равняется 5х10^20, и полностью просчитать их смогли только спустя 18 лет после начала работы программы.
Тут нужно отдельно отметить, что обыграть в шашки особь вида Homo sapiens компьютер смог гораздо раньше, целью проекта было не научить машину побеждать людей, а знать последствия каждого его хода вплоть до окончания игры.
Напрашивается очевидный вопрос: раз шашки рассчитали, то и шахматы сможем, разве нет? Ждали же 18 лет, подождем и еще. Всё равно простым смертным нет дела до этих математических извращений, и в каком-нибудь 2040 году, листая ленту девятым кибер-пальцем, мы смахнем новость про найденное решение для шахмат.
К сожалению, пока что это утопия. И дело не в том, что математики поняли, что страдают какой-то фигней, проблема заключается в сложности самой игры: одних только позиций фигур на доске существует около 10^46, а уникальных партий – не меньше 10^120.
Десять в сто двадцатой степени. Это много. Так много, что у нас даже нет аналогии, чтобы показать весь ужас этого гигантского числа, его попросту не существует в физическом мире. Чтобы вы понимали, количество атомов в известной нам части Вселенной примерно равно 10^80, а количество оригинальных партий в шахматах больше этой цифры в 10^40 раз. Причем в начале игры все выглядит довольно безобидно: у белых есть всего двадцать ходов – 16 пешками и четыре конями — но с каждым сделанным шагом количество возможных комбинаций на доске очень быстро растет. Так, например, после первого хода каждого из соперников, на поле существует 400 различных позиций для следующего шага, после второго – 72084, после третьего – больше 9 миллионов, после четвертого – более 288 миллиардов. Такое число соразмерно с количеством звезд в нашей галактике, а ведь это всего лишь самое начало партии.
Однако не просто так было сказано, что теория игр без шахмат – как самолёт без двигателя. После окончания Второй мировой еще на заре эпохи машинных вычислений шахматы стали своеобразным эталоном для проверки различных идей в этой области. Клод Шеннон *кстати, именно в честь него число 10^120 называется числом Шеннона*, один из основателей раздела об искусственном интеллекте, говорил, что не видит практической ценности в вычислении всех возможных шахматных партий, но сама эта мысль побуждает исследователей двигаться вперед и развивать технологии до тех пор, пока они не найдут решение.
Первую программу для игры в шахматы написал еще в 1952 году Дитрих Принц (коллега Алана Тьюринга) на компьютере Ferranti Mark. Правда, тут не стоит обольщаться, этот компьютер, лишь отдалённо напоминающий наши современные устройства, был таким слабеньким, что объем его оперативной памяти мог содержать программу только по типу «мат в два хода». Она была рассчитана лишь для последних двух ходов, но начало шахматной эпопеи было положено.
В 1956 году компьютер MANIAC-1 *милое название* сыграл три партии в облегченные шахматы (на поле 6х6 и без слонов) – сам с собой, против сильного игрока и против новичка. Несмотря на то, что опытный шахматист в начале игры решил отказаться от ферзя, программа все равно ему проиграла *какой неумелый маньяк*, но вот последнего – слабого соперника компьютер смог победить. Это была первая победа машины над человеком.
Название MANIAC, кстати, — это аббревиатура: Mathematical Analyzer Numerical Integrator and Automatic Computer. "… Компания Metropolis выбрала имя MANIAC в надежде остановить поток глупых аббревиатур для названий машин»
После изобретения в 1971 году первого микропроцессора, у ученых появилась возможность задействовать более мощные компьютеры, а значит, сохранять в памяти машины еще больше победных комбинаций. В 1974 году был организован первый чемпионат по шахматам среди программ, в 1978 году машина обыграла международного мастера по шахматам, а в 1981-м Cray Blitz стал первым компьютером, получившим рейтинг мастера.
Но несмотря на то, что с появления первого компьютера, играющего в шахматы, прошло уже много времени, алгоритм программы оставался на уровне решения крестиков-ноликов: легендарный суперкомпьютер Deep Blue от компании IBM использовал типовой метод поиска по шахматному дереву— минимаксный алгоритм с альфа-бета-отсечениями. Преимущество того или иного компьютера заключалось лишь в мощности процессора и количестве загруженных в него победных ходов живых шахматистов.
Кстати, легендарным Deep Blue стал 11 мая 1997 года, когда выиграл матч из шести партий у чемпиона мира Гарри Каспарова. Интересно, что за восемь лет до этого в Нью-Йорке Каспаров победил более слабого предшественника Deep Blue под названием Deep Thought. Тогда он высказал такую мысль: «Если компьютер сможет превзойти в шахматах лучшего из лучших, это будет означать, что ЭВМ в состоянии сочинять самую лучшую музыку, писать самые лучшие книги. Не могу в это поверить. Если будет создан компьютер с рейтингом 2800, то есть равным моему, я сам сочту своим долгом вызвать его на матч, чтобы защитить человеческую расу». Что ж, ему явно пришлось пересмотреть свои взгляды.
Матч 1997 года, который стал предметом документального фильма «Человек против машины»
Окончательно и бесповоротно человечество проиграло железякам в 2005-м: в этот год представитель нашей расы в последний раз смог одержать верх над программой. Сегодня рейтинг живых шахматистов настолько отстал от их железных соперников, что человеку больше никогда не выиграть партию с машиной. На начало сентября 2022 года наивысший шахматный рейтинг человека составляет 2861, а программы 3535.
Чувствуете, как повеяло киберпанком? Но несмотря на такие потрясающие успехи компьютеров, сама игра так и остается нерешенной: нам неизвестно, как закончилась бы идеально просчитанная партия, где обе программы знают последствия каждого хода вплоть до конца игры. Ученые лишь предполагают (но до сих пор не могут доказать), что белые обладают преимуществом первого хода, так как в идеальной игре черные могут только реагировать на создаваемые ими угрозы. Некоторую надежду в этой области вселяет активное развитие квантовых компьютеров, которые могут вести поиск одновременно по нескольким ветвям дерева решений, но тем не менее какого-то революционного алгоритма для самого поиска мы не имеем, и идеальной стратегии для чайников не существует.
Рейтинг шахматных программ
Хотя еще в 1960-х шахматы были своеобразным испытательным полигоном при проверке различных методов создания искусственного интеллекта, сложные стратегические игры и сегодня служат этой цели. В чистом виде они не представляют особой ценности, но подходы, используемые для обучения и самообучения машин, имеют большое значение для науки. Кроме того, мне кажется, сама мысль о том, что мы знаем, как рассчитать шахматы, но пока просто не имеем для этого ресурсов, очень вдохновляет.
Оказалось – человек так отстал от своих железных собратьев, что больше никогда не сможет одержать над ними верх. Но что, если бы существовала игра, где люди могли бы проявлять свои сильные стороны, не присущие машинам? Где победа зависит не только от строгих логических расчетов, но и от силы воображения и хитрости?
Как вы уже поняли, такая игра есть: мы наконец-то добрались до го. Го – китайская стратегия – является самой древней настольной игрой, сохраняющей свои правила практически неизменными вот уже 2500 лет. До ХХ века игра была распространена только в Азии, но на сегодняшний день она входит в пять дисциплин Всемирных интеллектуальных игр и является самой распространенной настолкой по числу участников (c поправочкой на плотность населения Востока).
В Китае го образно называют «разговором рук» *italian_moment*, что подчеркивает особое отношение к игре как к искусству. Это неудивительно, ведь ее правила невероятно сложны, так что напоминают не соревнование, а своеобразный диалог, и у разных мастеров есть даже свои собственные стили, по которым их узнают – как стиль писателя или манера художника.
Чтобы сыграть в классическую версию го вам понадобятся: доска в клетку 19х19 (называется гобан) – 1 шт, белые игральные камни – 180 шт., черные игральные камни – 181 шт., кошка-жена – 1 шт. (если есть больше, поделитесь?). Цель игры — отгородить на доске камнями своего цвета бо́льшую территорию, чем противник. Как видно, здесь нет черных и белых клеток на поле, камни можно ставить на любые пересечения линий, нет и разграничения игральных фигур – все они равноценны друг другу. Собственно, именно эта простота и порождает дьявольски сложные тактику и стратегию.
Напомню, тактика – локальное противоборство в какой-то части поля. Стратегия – общее положение сил в игре. Если в шахматах вы лишились дорогой фигуры, ваши шансы на победу обычно заметно уменьшаются, то есть тактика очень сильно влияет на стратегию. В го и поле больше, и фишек огромное количество – поэтому хитрости и поддавки здесь вполне могут стать более близким путем к победе, чем прямая и открытая политика завоевания.
Обычный метод перебора, которым пользуются компьютеры для выбора выигрышной стратегии в шахматах, здесь просто не уместен. Во-первых, дерево решений го необычайно огромно – на начальной позиции существует 55 вариантов ходов (в шахматах – 20), и «растет» оно быстрее – после первых двух ходов соперников существует уже около 16 миллиардов позиций для следующего (в шахматах – меньше ста тысяч). А во-вторых, го – игра, в которой очень важен опыт.
Настоящий мастер способен оценивать ситуацию на поле с помощью распознавания визуальных образов, а человеческий мозг приспособлен к этому гораздо лучше компьютера. Умение узнать на доске некий общий рисунок, который не повторяется каждый раз в точности – задача для машины куда более сложная, чем просто молниеносный подсчет. Именно по этой причине даже после первых серьезных проигрышей людей в шахматы, считалось, что компьютерам не скоро удастся добиться того же в го.
Но вот настал 2016 год и программа AlphaGo, разработанная корпорацией Google, в прямом эфире победила мирового мастера с девятым даном – Ли Седоля. Это стало возможно благодаря новому подходу обучения, который кардинально отличается от обучения шахматных компьютеров. Помните, что Deep Blue использовал обычный метод перебора дерева решений просто с кучей оптимизаций и на самом деле кроме мощных процессоров и больших объемов памяти он недалеко ушел от железяк 60-х.
AlphaGo – революционная программа, в ней нет базы данных с удачными ходами чемпионов или оценочного алгоритма, лишь самые базовые правила, которым учат новичков. Всему остальному она научилась сама, проигрывая тысячи партий с собой. В основе компьютера лежит нейронная сеть, моделирующая работу органического мозга. Главное новшество AlphaGo заключается в использовании глубинного обучения — метода, успешно применявшегося для распознавания образов (например, для поиска картинок в Google Images). Но как ни парадоксально именно из-за этого разработчики не знают, каким конкретным образом программа оценивает ситуацию в игре: система настолько сложна, что анализировать все уровни обработки информации в целом не представляется возможным.
Синтез интеллектуального подхода, свойственного людям, и высокой скорости вычислений делает AlphaGo уникальной. Методы, реализованные в этом проекте, сейчас проходят проверку для применения подобных программ жизни. Уже сегодня они помогают выстраивать модели химических реакций в живых организмах и могут диагностировать некоторые заболевания на ранних стадиях.
Довольно простая статья о работе AlphaGo.
Поэтому как ни грустно признавать наше поражение по всем фронтам (и в шашках, и в шахматах, и даже в го) – все же мы не проигрываем впустую. Такие программы, как AlphaGo только лишний раз доказывают невероятную силу человеческого разума и задают высокую планку для следующих поколений. Несмотря на окончательную победу машин, го не только не потеряла статус интересной настольной игры, но и вышла за эти рамки, став важным этапом в истории развития искусственного интеллекта, также как шашки или шахматы.
Конкурс для мемоделов: с вас мем — с нас приз
Конкурс мемов объявляется открытым!
Выкручивайте остроумие на максимум и придумайте надпись для стикера из шаблонов ниже. Лучшие идеи войдут в стикерпак, а их авторы получат полугодовую подписку на сервис «Пакет».
Кто сделал и отправил мемас на конкурс — молодец! Результаты конкурса мы объявим уже 3 мая, поделимся лучшими шутками по мнению жюри и ссылкой на стикерпак в телеграме. Полные правила конкурса.
А пока предлагаем посмотреть видео, из которых мы сделали шаблоны для мемов. В главной роли Валентин Выгодный и «Пакет» от Х5 — сервис для выгодных покупок в «Пятёрочке» и «Перекрёстке».
Реклама ООО «Корпоративный центр ИКС 5», ИНН: 7728632689