Pull to refresh

Comments 24

Для тех, кто зайдёт в комментарии за этой картинкой:
Скрытый текст
image
Не знаю, как другим, а вот мне интересно учиться от игр. Одна победа на десять поражений в честном сражении с компьютером — гораздо ценнее, чем десять побед на одно поражение там, где компьютер даёт игроку красиво победить. Кажется, людей вроде меня называют хардкорщиками.
Не скажу за биллиард и покер, но в том что касается традиционных настолок, таких как Шахматы и Го — очень важно, чтобы противники играли приблизительно на одном уровне. Чтобы учиться, желательно, чтобы противник играл немного сильнее. Немного (здесь) — ключевое слово! Если компьютер рвёт вас «как тузик грелку» чему либо научиться принципиально сложно. В этом плане, статья очень годная. Да, и ещё. Когда вы учитесь играть — дело не в победах (тем более в их количестве). Это всего лишь индикатор вашего прогресса. Важно чтобы он рос. Абсолютные значения не принципиальны (это касается и учебных партий с людьми, разумеется).
Нет у Вас никаких шансов на «честную победу» ни в какой игре с компьютером, основанной на скилах. Есть шансы на одиночные победы в играх, основанных на чистой вероятности (типа рулетки), но это же не «честная победа», а просто случай.
Ну в целом оно так, но это идеальный случай. У меня, например, AI очень слабенький, победить не сложно. Я конечно работаю над тем чтобы сделать его сильнее, но пока годится только чтобы играть с детьми. Тут дело не только в том, что я нуб в разработке AI (это так), но и в серьёзных ограничениях производительности, в связи с выбранной архитектурой.

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

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

Вы вообще-то занимаетесь совершенно другим классом игр. Если не видите разницы — попробуйте сыграть в TF2 против пулеметчика с аим-ботом.

Я занимаюсь довольно широким классом игр. Не только дискретными. Другой вопрос, что именно сейчас я занимаюсь традиционными настольными играми. Это просто один из этапов.
просто потому что не забывает ничего что накопил (соответственно надо думать о том, чтобы он как-то поддавался, но при этом не лажал совсем откровенно).


Или просто ограничить ему память на карты, так что бы он как средний человеческий игрок запоминал например только вышедшие крупные козыри, а не все карты в принципе.
Согласен, всё зависит от жанра игры. Однако шансы на победу есть не только в рулетке. Там, где есть свобода выбора (хотя бы относительная) — например, в стратегиях — сражение с самым сложным ИИ представляет собой скорее сражение с его автором. С его парадигмой, с подходом к написанию ИИ. Это поиск слабых мест. С другой стороны, это уже не игра, а тестирование какое-то — но мне нравится.
Там, где есть свобода выбора (хотя бы относительная) — например, в стратегиях — сражение с самым сложным ИИ представляет собой скорее сражение с его автором. С его парадигмой, с подходом к написанию ИИ.
Эта эпоха стремительно катится к своему закату. Нет в AlphaGo никаких «парадигм». К компьютерным стратегиям этот подход пока неприменим («доска» на порядки больше по размеру, чем Го'шные 19x19, а потребление в мегаватты несколько не то, что может себе позволить средний игрок), но уже отчётливо видно, что скоро и в стратегиях «боты» будут заменены на ИИ достаточно общего плана просто слегка натасканный на правила игры конкретной стратегии…
Как же я жду цивилизации с нормальным ИИ!)
Знаете, это зависит от реализации ИИ.
Человек должен чувствовать, что может победить. Я тоже люблю играть с более сильным противником, не важно, будь то ИИ или человек, но в некоторых ситуациях я опускаю руки и просто понижаю планку) Например, в КС ГО (я не уверен, стандартные ли это боты, либо какая-то модификация от сообщества моддеров.) на одном из DM серверов боты стреляют на опережение — ты не успел выйти из укрытия, а пуля уже у тебя в голове, при этом они постоянно крутятся вокруг своей оси как какие-то турели, а когда не хотят победить, даже не пытаются стрелять в тебя. И это чертовски раздражает! Ты просто понимаешь, что у тебя нет шансов против ботов, если им выпадет задача тебя убить, а не поддаться. В статье об этом и говорится, причем по несколько раз повторяется одна и та же мысль (Зачем? Проблема оригинала или перевод корявый?).
Про CS:GO — это т.н. spinbot. Часть функционала более сложных читов для обычных игроков (конечно, может быть использовано и в обычных ботах). С счастью, большинство читов ЛЮДИ определяют более-менее стабильно, и голосованием просто выгоняют читера (или за некоторое время читер получает пачку жалоб в steam).
Если не считать спинбот — то стрельба «на опережение» — стандартная тактика, когда видишь, что противник бежит в определённом направлении, но _твоя_ точность движения мышкой не позволяет быстро прицелиться по движущейся мишени, приходится прицелиться чуть далее по ходу движения игрока (есть запас времени в какие-то доли секунды), и далее выстрелить, когда уже цель близка (чтобы учесть запаздывание реакции и пинг) или на линии прицела. Тут сильно влияет то, как человек определяет (предсказывает) дальнейшее движение противника, некоторых можно легко предсказать, других — сложно.
А не правильнее ли ставить AI в те же условия, что и живого игрока, имитируя ограничения человека?
Скажем в бильярде — добавлять случайность к углу и силе удара, но не после того как AI этот удар идеально расчитал, а чтобы сам AI учитывал что может промазать. В шахматах — можно ограничивать использование готовых дебютов, и искусственно выкидывать ходы противника из просчета. В FPS — давать AI картину мира с задержкой.

Если AI сначала специально поддается, а потом отыгрывается как бог без 5-ти фигур — не думаю что это как-то прям супер-интересно.
Мне кажется, что целью ИИ, который априори играет лучше человека в какую-то игру, должно быть не «подыграть», а «научить человека играть лучше».

Вот с таким играть будет интересно. Он должен стараться подвести человека к обнаружению каких-то особенностей игры, помогающих победить.
Интересно, когда уже сделают некий режим «обучения», когда после игры против компьютера будет показываться видеоролик, где компьютер подробно разберёт все твои ошибки, и подскажет, как можно было бы сделать лучше в той или иной ситуации. Это был бы прорыв!
А если ещё и подберёт какие-нибудь упражнения (игры, или что-то ещё) для тренировки какого-либо навыка (реакция, тактика, выдержка, память, и т.п.) — вовсе цены не будет такому решению!
В шахматах, например, это уже реализовано. Есть анализ партии, с разбивкой лучший/обычный ход/неточность/ошибка/зевок. Позиция на доске оценивается численно (например +10 — белые сильно выигрывают или -1,5 — черные немного лучше). Там где сделан слабый ход, показывается сильнейший, и в комментариях несколько следующих ходов — понятна идея хода, развитие атаки. Всё достаточно удобно и работает в браузере, т.е. далеко не мегаватты вычислений.
При этом компьютер победил чемпиона мира 20 лет назад и все это время шахматный AI прогрессировал, во многом в качестве помощника живому гроссмейстеру. В го чемпион мира проиграл только в этом году, подождем лет 15 :)
Ситуацию с RTS не знаю, но вроде AI еще не может стабильно побеждать топ-игроков. Опять же не факт, что сообществом будет востребован компьютерный советник, способный к рекомендациям «здесь можно на 2 секунды раньше заказать постройку» или «выгоднее заказать улучшение брони вместо трех солдат».
Карты с тренировкой микро-менеджмента я помню еще в первом StarCraft. Например, убить «собачками» кучу зилотов. Первая эмоция «это нереально, у него 6 целых зилотов остаются», потом оставалось 2… а потом я понял, что игра интересней, чем оттачивание техники, и забросил.

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

Спасибо за статью, я сейчас работаю в т.ч. над AI для одной коллекционной карточной игры, попробую вдохновится написанным. А то пока у меня там всё как в первом примере про бильярд — в некоторых случаях AI просто забивает на алгоритм и ходит случайно, чтобы не быть слишком сложным…

При всём уважении к Фрицу назвать его современной шахматной программой сложно. Пик его славы прошёл году в 2006-м.
Метод, которым во Фрице реализован гандикап, тоже сложно назвать реалистичным: зевок фигуры, а потом игра в силу супергроссмейстера всю оставшуюся часть партии. Гораздо правильнее, на мой взгляд, поступили программисты Чессмастера, разработав несколько десятков настроек параметров разной силы, от новичка до Каспарова и выше. И у них получилось — любители до сих пор весьма ценят эту программу!
Да, и ещё. Из-за техники форсированных шахов и разменов даже замедленная в 1000 раз шахматная программа не будет делать совсем уж глупых действий. Никогда не подставит под бой фигуру, а при случае может объявить вам мат в десять, скажем, ходов. Что тоже для новичка не характерно...

«ИИ должен быть более умным, чтобы казаться менее умным.»

Ну вот, направление разработки -компьютерная женщина. Не та, что Вы подумали, а мама.
Для разработчика добавление намеренных ошибок всегда проблема, чем простое уменьшение точности.
Sign up to leave a comment.

Articles