Pull to refresh

Comments 9

Мысли о 'ловушке точки возрождения'
Рассмотрим ситуацию на картинке. Видно, что это тупик. Зачем мы туда вообще пошли, если от него так и веет опасностью? Решение: не позволять ИИ заходить в тупики путем их закрашивания.

А теперь усложним задачу. Что, если в конце тупика расположен рудник? Изолировать эту территорию будет неправильно в случаях с маленькими картами, где всего 4 рудника на карте и удерживание двух из них принесет победу. Что же тогда делать? Ответ: перетягивающие поля спаунпоинтов.
Сколько у нас спаунпоинтов? Четыре отметим их точками A, S, D, F. Мы застряли за одним из них — за D, к примеру. Сам игрок стоит на точке X. То есть можно сказать, что расстояние AD, SD, FD будут в любом случае больше или равны соответсвующим им расстояниям AX, SX и DX, что можно считать признаком того, что мы в тупике. Верно? Не совсем.

На фотографиии изображены два случая. Случай 1 — эталонный, случай 2 — исключение. Нужно что-то более сложное.
Небольшое пояснение к ловушке
В случае срабатывания правила с длинами, описанный выше, следует сделать так, чтобы тебя притягивали спаунпоинты A, S, F, а не отталкивал спаунпоинт D.

Однако такой способ хоть и хорошо помогает избежать заточения в мертвую зону, но всё равно не является идеальным, поэтому было бы неплохо рассмотреть другие варианты решения задачи (притягивание к тавернам? Таверны нередко находятся в этом самом тупике, которого мы хотим избежать, и пока мы сражаемся с вечно возрождающимся противником, мы теряем золото в таверне, наши рудники захватывают остальные два игрока. Тогда мб к середине карты? Но иногда бывает так, что середина карты заполнена лесом, поэтому определить середину проблематично. Как самая действенная идея — 8 клеток, которые образуют прицел на середину, но подробнее расскажу уже в следующей статье)
При захвате рудников стоит отдавать предпочтение тем из них, которые заняты топовыми ботами (имеющими большее кол-во золота) — увеличивает шанс победы.

Просчитывать рекурсивно план захвата будет ресурсоемко, а без учета ходов противников ещё и малодейственно. Проще примитивно выбрать ближайшие N (с учетом текущего здоровья) доступных к захвату шахт (скорректировав их вес (1/dist) на ценность отбивания их у противников) и посчитать, движение в каком направлении имеет максимальное увеличение суммы весов этих N шахт). Это будет работать вполне неплохо, хотя и не всегда оптимально.

Ну и следует учитывать, что удачная стратегия заключается вовсе не в эффективном захвате шахт, а в успешном выживании и успешной охоте на других ботов. Иначе все эти эффективно захваченные шахты достанутся более умному боту ) Так что лучше посчитать в глубину план взаимодействия с другими ботами, а не просто захват шахт.
Мне даже и в голову не приходило строить козни против лидирующего соперника… Действительно замечательная идея! Я соберу статистику по играм с безыскусным захватом рудников и с целенаправленноым увеличением важности захватата рудников лидера.

Думаю, это новведение определенно точно принесет большую пользу, увеличив коэффицент успешности боя (рассчтывается как отношение моего золота и золота лидера). Спасибо за отличные идеи)
Мой опыт (боты типа Elfar) показывает, что вроде как не очень работает — если отдавать предпочтение шахтам соперников (была у меня такая настройка), то бот вместо ближайших шахт предпочитает пилить до соседских (получается меньше золота) + больше вступает в бои. В результате у меня эффективность падала, но, может, это можно настроить.
Вообще идея строить козни да, есть :))
не вижу смысла учитывать, что у врага мало хп и он может вернуться на точку возрождения. Т.к.
1. через точку возрождения ближе
2. он может никогда на нее не вернуться

Надо учитывать точку возрождения, только если чужой игрок находится рядом с ней.
Тут есть определенные нюансы:
1. Если мы стоим именно на точке возрождения, то в случае смерти врага он нас убивает и захватывает все рудники.
2. В отличие от реальной жизни, противник не может быть внезапно смертным, т.е. можно оценить шанс того, что скоро он умрет.
3. Если мы попадем в эту ловушку, то шанс умереть составляет 100%, если противник имеет адекватные способности к сражениям; мы точно потеряем все рудники, да еще и впустую упустим несколько своих ходов.

Спаунпоинт — очень важная единица в игровом мире. Не следует пренебрегать ей, иначе можно сильно пожалеть.
Есть еще такая особенность, что значимость этой ловушки сильно зависит от числа шахт на карте. Я, например, её не раз наблюдал в ситуации — маленькая карта до 10х10 и 4 шахты. Там, на мой взгляд, практически неважно как ты играешь — де-факто ты не можешь захватить больше 1 шахты на продолжительное время, потому что игроки быстро гибнут и быстро захватывают самую близкую шахту.
На таких картах, по моим наблюдениям, лучше всего работает минимаксный расчет ближайших вариантов — он все-таки позволяет Mini-Me (пока самый сильный играющий бот) зарабатывать больше золота к концу игры, хотя и не намного.
Про нюансы я согласен. Но если у вас нет рудников, то и респаун нет смысла учитывать в потенциальных полях. Т.к. самое худшее вам не повезет и вы окажетесь на своем респавне.

К тому же потенциально респавн может быть и привлекательным. Если вы знаете, что чужой игрок сейчас умрет, а вам нужно на свой респавн, т.к. там можно убить другого игрока и получить + по шахтам.
Sign up to leave a comment.

Articles