Я создаю игру типа «Защити свой замок», в которой у каждого игрока есть свой замок, и он должен послать юниты, чтобы уничтожить замок противника. Похоже на это (и да, это настоящая игра, а не быстрое рисование краски ..):
Сейчас я пытаюсь реализовать ИИ противника, и я хотел бы создать 4 разных уровня ИИ: легкий, нормальный, сложный и хардкорный. Я никогда не делал «серьезный» ИИ, и на этот раз я хотел бы создать достаточно законченный.
Моя идея состоит в том, чтобы рассчитать показатель «силы» игрока, основываясь на текущем здоровье его замка и индивидуальном показателе «силы» его юнитов. Затем ИИ просто попытался бы сохранить счет, близкий к счету игрока ( Easy оставался бы ниже его, Normal оставался бы рядом с ним, а Hard пытался подняться выше него). Но я просто не знаю, как рассчитать показатель силы игрока. Просто слишком много переменных, чтобы принять их во внимание, и я не знаю, как правильно использовать их для создания одного значимого числа (уровень мощности).
Может ли кто-нибудь помочь мне в этом?
Вот переменные, которые должны влиять на показатель силы игрока:
Текущее здоровье замка, общее здоровье юнита, урон, скорость и дальность атаки. Кроме того, игрок может увеличить доход (мешок с деньгами), урон (+ урон) и скорость (+ скорость) ... Как я могу включить их в счет?
Я действительно застрял здесь ... Или есть другой способ, которым я мог бы реализовать ИИ для этого типа игры?
Спасибо за ваше драгоценное время.
источник
Ответы:
Я не уверен, насколько легко это будет сказать, но, пытаясь выяснить, насколько важна каждая переменная, вероятно, стоит начинать (если вы набираете 50 единиц здоровья, вы можете продержаться на 10 секунд дольше; если вы получаете 5 урона, вы может уничтожить 50 единиц здоровья на 10 секунд быстрее и т. д.). После этого стоит попытаться нормализовать способности (50 ед. Здоровья - это то же самое, что 10 ед. - это то же самое, что и 100 ед. Дохода).
Я думаю, что простой способ найти это - просто запустить симуляцию. Держите одного игрока на одном уровне, а затем начните регулировать индивидуальные переменные в соответствии с их масштабом.
источник
Прежде всего, я бы не стал принимать во внимание краткосрочные преимущества, такие как повышение дохода или скорости - я думаю, что игроки ожидают, что эти вещи помогут им какое-то время, а не то, что ИИ мгновенно адаптируется и становится сильнее.
А в остальном: попробуйте. Начните с формулы мощности, которая кажется вам разумной (ответ nimbus57 должен быть хорошей отправной точкой), а затем разработайте свою формулу и ИИ итеративно.
И последнее, но не менее важное: постарайтесь убедиться, что базовая формула не может быть использована игроком для получения несправедливого преимущества и т. Д. Она также не должна быть слишком очевидной, как она работает, поэтому добавьте немного случайности.
источник