Игра Fortress. Конкурс на создание лучшего бота. Итоги
Здравствуйте читатели блога программистов. 18 января на форуме программистов стартовал конкурс на создание лучшего бота для игры в Fortress. Правила игры Fortress.
Игра рассчитана на двух игроков. У каждого есть база. У базы есть щит. Есть также три типа ресурсов: энергия (En), металл (Me) и эллектроелементы (El). Есть набор проектов, которые игроки могут реализовывать. Они бывают разных типов: атака чужой базы, ремонт своей базы, развитие своей базы и т.д. Всего проектов 30, перед началом игры игрок должен выбрать только 15 из них на своё усмотрение (согласно выбранной стратегии). Каждый проект стоит некоторое количество ресурсов. Игроки делают ходы (выбирают проекты) по очереди. Если у игрока не хватает ресурсов ни на один проект, он пропускает ход. Задача игрока уничтожить базу противника (уменьшить броню базы до нуля).
Более подробно правила описаны в этой теме, а обсуждение конкурса в этой теме (также там есть вся необходимая информация для создания бота). Бот представляет собой DLL с тремя экспортируемыми функциями.
На создание бота участникам было отведено более двух месяцев. В итоге было написано пять ботов
1. Разрушитель-1 Somebody
2. FTBotPro (Neeter) Neeter
3. VovanZ ExBot8 VovanZ
4. Crusader v1.4 rpy3uH
5. Alar BOT v 1.19 Alar
Для начала узнаем как они хороши играя против SimpleBot v1.0 так как именно он был доступен всем и поставлялся вместе с самой игрой.
Разрушитель-1 vs SimpleBot v1.0
Количество игр: 10000
SimpleBot v1.0 : количество побед 17
Разрушитель-1 : количество побед 9197
Количество ничей 786
Победы — 91%, ничьи – 7%.
FTBotPro (Neeter) vs SimpleBot v1.0
Количество игр: 10000
SimpleBot v1.0 : количество побед 8
FTBotPro (Neeter) : количество побед 9990
Количество ничей 2
Победы — 99%, ничьи ~ 0%.
VovanZ ExBot8 vs SimpleBot v1.0
Количество игр: 10000
SimpleBot v1.0 : количество побед 1534
VovanZ ExBot8 : количество побед 8275
Количество ничей 191
Победы — 82%, ничьи — 19%.
Crusader v1.4 vs SimpleBot v1.0
Количество игр: 10000
SimpleBot v1.0 : количество побед 337
Crusader v1.4 : количество побед 9440
Количество ничей 223
Победы — 94%, ничьи – 2%.
Alar BOT v 1.19 vs SimpleBot v1.0
Количество игр: 10000
SimpleBot v1.0 : количество побед 3290
Alar BOT v 1.19 : количество побед 6710
Количество ничей 0
Победы — 67%, ничьи – 0%.
Против SimpleBot v1.0 места распределились следующим образом
1. FTBotPro (Neeter).
2. Crusader v1.4
3. Разрушитель-1
4. VovanZ ExBot8
5. Alar BOT v 1.19
Теперь самое интересное — боты играют друг с другом. Играть они будут по круговой системе : каждый с каждым, у кого больше побед тот и выиграл. Игры производятся в стандартном режиме игры.
Alar BOT v 1.19 vs VovanZ ExBot8
Количество игр: 10000
Alar BOT v 1.19 : количество побед 1226
VovanZ ExBot8 : количество побед 8774
Количество ничей 0
Alar BOT v 1.19 : количество ошибок 0
VovanZ ExBot8 : количество ошибок 0
Alar BOT v 1.19 : 420680 очков
VovanZ ExBot8 : 1779320 очков
Победил VovanZ ExBot8. Победы – 87%.
Alar BOT v 1.19 vs Разрушитель-1
Количество игр: 10000
Alar BOT v 1.19 : количество побед 0
Разрушитель-1 : количество побед 10000
Количество ничей 0
Alar BOT v 1.19 : количество ошибок 0
Разрушитель-1 : количество ошибок 0
Alar BOT v 1.19 : 200000 очков
Разрушитель-1 : 2000000 очков
Победа Разрушитель-1 несомненна. Стопроцентная победа!
Alar BOT v 1.19 vs Crusader v1.4
Количество игр: 10000
Alar BOT v 1.19 : количество побед 2542
Crusader v1.4 : количество побед 7458
Количество ничей 0
Alar BOT v 1.19 : количество ошибок 1258
Crusader v1.4 : количество ошибок 0
Alar BOT v 1.19 : 657560 очков
Crusader v1.4 : 1542440 очков
Победил Crusader v1.4. Процент побед – 74 %
Alar BOT v 1.19 vs FTBotPro (Neeter)
Количество игр: 10000
Alar BOT v 1.19 : количество побед 0
FTBotPro (Neeter) : количество побед 9996
Количество ничей 4
Alar BOT v 1.19 : количество ошибок 0
FTBotPro (Neeter) : количество ошибок 0
Alar BOT v 1.19 : 200000 очков
FTBotPro (Neeter) : 1999280 очков
Почти 100% победа FTBotPro (Neeter)
После 4 игр у всех по одной победе кроме Alar BOT v 1.19. Alar BOT v 1.19 делает упор только на мелкие атаки, полностью игнорирует проекты по починке базы и почти не развивает базу (увеличивает только количество батарей) и никакого шпионажа. Результат ожидаем.
VovanZ ExBot8 vs Разрушитель-1
Количество игр: 10000
VovanZ ExBot8 : количество побед 0
Разрушитель-1 : количество побед 8824
Количество ничей 1176
VovanZ ExBot8 : количество ошибок 0
Разрушитель-1 : количество ошибок 0
VovanZ ExBot8 : 200000 очков
Разрушитель-1 : 1788320 очков
Победа Разрушитель-1 очевидна у VovanZ ExBot8 нет ни одной победы из 10000. Ничьи – 11%, остальное победы разрушителя. VovanZ ExBot8
VovanZ ExBot8 vs Crusader v1.4
Количество игр: 10000
VovanZ ExBot8 : количество побед 2213
Crusader v1.4 : количество побед 7685
Количество ничей 102
VovanZ ExBot8 : количество ошибок 0
Crusader v1.4 : количество ошибок 0
VovanZ ExBot8 : 598340 очков
Crusader v1.4 : 1583300 очков
VovanZ ExBot8 опять проигрывает. Перевес очевиден — Crusader v1.4 сильнее. Ничьи – 1%, победы «крестоносца» — 76%.
VovanZ ExBot8 vs FTBotPro (Neeter)
Количество игр: 10000
VovanZ ExBot8 : количество побед 354
FTBotPro (Neeter) : количество побед 9168
Количество ничей 478
VovanZ ExBot8 : количество ошибок 0
FTBotPro (Neeter) : количество ошибок 0
VovanZ ExBot8 : 263720 очков
FTBotPro (Neeter) : 1850240 очков
VovanZ ExBot8 снова уступает. Победла FTBotPro очевидна. Победы FTBotPro – 91 %, ничьи – 4 %.
Прошло 7 сражений и остаётся ещё 3 битвы, и уже можно подвести некоторые итоги.
1. FTBotPro (Neeter) — 2
2. Crusader v1.4 — 2
3. Разрушитель-1 — 2
4. VovanZ ExBot8 – 1
5. Alar BOT v 1.19 — 0
Можно уже сказать, что VovanZ ExBot8 получит предпоследнее место, так как уже ни с кем играть не будет. Посмотрев его статистику модно сделать вывод, что его проигрыш обусловлен тем, что он не использует шпионаж вообще. Шпионаж в этой игре один из ключевых моментов.
Разрушитель-1 vs Crusader v1.4
Количество игр: 10000
Разрушитель-1 : количество побед 3972
Crusader v1.4 : количество побед 5712
Количество ничей 316
Разрушитель-1 : количество ошибок 0
Crusader v1.4 : количество ошибок 0
Разрушитель-1 : 914960 очков
Crusader v1.4 : 1228160 очков
Видно, что встретились два достойных соперника, но Crusader v1.4 оказался сильнее. Победы «крестоносца» — 57 %, ничьи 3%
Разрушитель-1 vs FTBotPro (Neeter)
Количество игр: 10000
Разрушитель-1 : количество побед 1437
FTBotPro (Neeter) : количество побед 7942
Количество ничей 621
Разрушитель-1 : количество ошибок 0
FTBotPro (Neeter) : количество ошибок 0
Разрушитель-1 : 458660 очков
FTBotPro (Neeter) : 1629560 очков
Победа за FTBotPro (Neeter). Победы FTBotPro – 79%. Ничьи – 6%.
Перед последним сражением сложилась следующая ситуация
1. FTBotPro (Neeter) — 3
2. Crusader v1.4 — 3
3. Разрушитель-1 — 2
4. VovanZ ExBot8 – 1
5. Alar BOT v 1.19 — 0
Опять же проигрыш разрушителя обусловлен тем что он из шпионажа использовал только 26 и 28 проекты (похищение металла и уничтожение рудника)
Crusader v1.4 vs FTBotPro (Neeter)
Количество игр: 10000
Crusader v1.4 : количество побед 5442
FTBotPro (Neeter) : количество побед 3494
Количество ничей 1064
Crusader v1.4 : количество ошибок 0
FTBotPro (Neeter) : количество ошибок 0
Crusader v1.4 : 1179560 очков
FTBotPro (Neeter) : 828920 очков
Очевидно, что встретились два достойных соперника, но Crusader v1.4 оказался сильнее. Победы «крестоносца» — 54 %, ничьи — 10%. Из-за Минимального перевеса Crusader v1.4 необходимо провести битву между ними в расширенной режиме игры.
Crusader v1.4 vs FTBotPro (Neeter)
Расширенный режим, лимит ходов 1000.
Количество игр: 10000
Crusader v1.4 : количество побед 4907
FTBotPro (Neeter) : количество побед 4708
Количество ничей 385
Crusader v1.4 : количество ошибок 0
FTBotPro (Neeter) : количество ошибок 0
Crusader v1.4 : 1083260 очков
FTBotPro (Neeter) : 1047440 очков
Опять встретились два достойных соперника, но Crusader v1.4 оказался сильнее. Победы «крестоносца» — 49 %, ничьи ~ 4%.
По итогам игр в стандартном режиме игры, сложилась следующая ситуация.
1. Crusader v1.4 — 4
2. FTBotPro (Neeter) — 3
3. Разрушитель-1 — 2
4. VovanZ ExBot8 – 1
5. Alar BOT v 1.19 — 0
Битва в расширенном режиме показала минимальный перевес Crusader v1.4.
Первое место Crusader v1.4
Второе место FTBotPro (Neeter)
Третье Разрушитель-1
Четвёртое место VovanZ ExBot8.
Пятое место Alar BOT v 1.19
Также можно сделать вывод о том, что чем больше используется шпионаж, тем больше шансов на победу. Разрушитель-1 почти не использовал шпионаж, а VovanZ ExBot8 вообще пренебрёг шпионскими проектами. Alar BOT v 1.19, вообще выбивается из общей колеи — он «спамил» мелкими атаками.
А теперь каждый может скачать игру с ботами и проверить их.
Скачать Fortress и ботов к ней
rpy3uH, поздравляю. 😉
Присоединяюсь, хоть и несколько запоздало, к поздравлениям. У меня знакомый с командой участвовал в аналогичном конкурсе — Sapka — в 2008 году. Бота они писали, как помню, на OCaml. В финал не вышли по причине тупой нехватки времени (не успели
по-человечески реализовать игровую стратегию), но опыт приобрели, что тоже хорошо 😀
Продолжение конкурса — http://pkonkurs.ru — призовой фонд — 5000 рублей.
Жалко не развиваете — интересная тема!