Объявления

Друзья, если не получается зарегистрироваться, напишите на почту vdv_forever@bk.ru.
Я оторву свою задницу от всех дел и обязательно Вас активирую! :smile10:
Добро пожаловать на геройский форум! :smile25:

Мозговой штурм

Обсуждаем, делимся впечатлениями, новой информацией
offlineАватара пользователя
Владимир  
Эксперт
Эксперт
 
Сообщения: 1057
Зарегистрирован: 30 окт 2012, 18:37
Пол: Не указан
Награды: 3
Высшая медаль (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (1)
Поблагодарили: 638 раз.

Re: Мозговой штурм

Сообщение Владимир » 17 фев 2015, 10:18

Zelya писал(а):

Вобщем, что я могу предложить. Можно было б написать небольшую (для начала) онлайн боевку по первым героям.

Это как раз проще всего - не надо реконструировать ИИ и большую часть пользовательского интерфейса.
Когда я начал писать боёвку - запоролся именно на ИИ.

Визуальную составляющую можно любую - из единички/ из двойки/ собственного рисования/ заимствованную откуда-нибудь ещё. Двумерную/трёхмерную... любую, которую проще сделать.
Последний раз редактировалось Владимир 17 фев 2015, 10:26, всего редактировалось 1 раз.
Вернуться к началу

offlineZelya  
Мастер
Мастер
 
Сообщения: 390
Зарегистрирован: 04 янв 2011, 15:16
Пол: Не указан
Поблагодарили: 204 раз.

Re: Мозговой штурм

Сообщение Zelya » 17 фев 2015, 10:26

Владимир писал(а):

Когда я начал писать боёвку - запоролся именно на ИИ.

Ну, с ИИ есть некоторый опыт. Если надо, могу помочь.
Вернуться к началу

offlineАватара пользователя
Владимир  
Эксперт
Эксперт
 
Сообщения: 1057
Зарегистрирован: 30 окт 2012, 18:37
Пол: Не указан
Награды: 3
Высшая медаль (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (1)
Поблагодарили: 638 раз.

Re: Мозговой штурм

Сообщение Владимир » 17 фев 2015, 10:28

Zelya писал(а):

Владимир писал(а):

Когда я начал писать боёвку - запоролся именно на ИИ.

Ну, с ИИ есть некоторый опыт. Если надо, могу помочь.


Навряд ли. Хотелось иметь его на уровне "шахматного", пусть даже очень глупого шахматного, а не в виде блок-схемы "если можешь атаковать стрелков - атакуй их, иначе если... и так далее, и так далее, и так далее".

Я его даже написал в более-менее рабочем виде, только вот "оценочная функция" меня подвела.
Вернуться к началу

offlineZelya  
Мастер
Мастер
 
Сообщения: 390
Зарегистрирован: 04 янв 2011, 15:16
Пол: Не указан
Поблагодарили: 204 раз.

Re: Мозговой штурм

Сообщение Zelya » 17 фев 2015, 10:34

Владимир писал(а):

Навряд ли. Хотелось иметь его на уровне "шахматного", пусть даже очень глупого шахматного

Только такой, других не предлагаю
Вернуться к началу

offlineАватара пользователя
Владимир  
Эксперт
Эксперт
 
Сообщения: 1057
Зарегистрирован: 30 окт 2012, 18:37
Пол: Не указан
Награды: 3
Высшая медаль (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (1)
Поблагодарили: 638 раз.

Re: Мозговой штурм

Сообщение Владимир » 20 фев 2015, 10:58

можно попробовать. Немного времени у меня сейчас есть.
Вернуться к началу

offlineZelya  
Мастер
Мастер
 
Сообщения: 390
Зарегистрирован: 04 янв 2011, 15:16
Пол: Не указан
Поблагодарили: 204 раз.

Re: Мозговой штурм

Сообщение Zelya » 20 фев 2015, 11:56

Ну, если коротко, то алгоритм приблизительно таков.
1. Комп оценивает все юинты противника согласно их урона, плюс некоторые повышающие коэфициенты для летунов, прикрытых стрелков и неприкрытых стрелков. Абсолютно неважно против какой защиты расчитывать урон, хоть против крестьян, так как восновном он пропорционален.
2. Потом, при ходе совего юнита, расчитывется, сколько такого урона он мог бы уничтожить, если б ударил этот стек. Грубо говоря, насколько слабее этот стек будет бить после нашей атаки. Совершенно пофиг, можем ли мы достичь жтот стек или нет на данный ход. Причем, нужно учесть, что даже если мы не убиваем "жирный" юнит, мы его ослабляем. Т.е. считаем не только количесвто убитых юнитов, но снятые хитпоинты. Это есть "базовая полезность"
3. Теперь, создаем логическую карту полезности, аналог боевого поля. Расставляем "базовую полезность" по местам, где стоят вражины. От каждого врага пускаем "волну" по всем доспутным для хождения клеткам. "Волна" добавляет к каждой непосещенной ею до этого клетке "некоторую полезность". Это "некоторая полезность" уменшается с каждым ходом. В самом простом случае в два раза. Т.е. при условной полезности юнита в 1000, соседние клетки от него увеличатся на 500. Клетки на расстоянии в два хода на 250 и т.д. В местах, где нельзя пройти, либо где волна для текущего юнита уже побывала, она "глохнет". Ну, стандарт, для всех волновых алгоритмов.
4. Когда все волны прошли, мы имеем оценку "полезности" каждой клетки. Теперь очередь за перебором. ИИ перебирая все возможные варианты хода юнита выбирает такой, чтобы: юнит нанес наибольший урон по полезности врага, и чтобы при этом он стоял на наиболее ценной клетке.
Вот и все в простейшем случае. Можно учложнить, когда ИИ считает теоретическую ответку и добавляет штрафы.
При умелом подборе коэфициентов имеем прекрасные результаты, когда, например, ИИ игнорируя одинокого стрелка противника на его пути, не атакует лишь бы приблизится на ход-два к жирному опасному стеку.
Конечно, такой алгоритм тоже обманывается на раз-два, и можно добавить несколько "ограничителей". Например, летунов вне зоны досягаемости можно игнорировать (для первых-вторых героев). Для стрелков можно сдлеать принцип "убегания" от перекрытия.
В самом сложном случае (я не использовал), можно пробовать анализировать возможный ход противника по таким же критериям и строить перебор на несколько ходов вперед. Но насколько это будет качественно, я не знаю.
Если нужно, могу помочь с кодом.
Вернуться к началу

offlinebobchik  
Новичок
Новичок
 
Сообщения: 27
Зарегистрирован: 15 апр 2013, 12:57
Пол: Не указан
Поблагодарили: 10 раз.

Re: Мозговой штурм

Сообщение bobchik » 20 фев 2015, 12:29

AlexSpl писал(а):

Вон baratorch запилил игру за нейтралов во время ожидания хода. Типа твой противник нападает на охранников лесопилки, а ты сражаешься за охранников-импов :) Давно была такая идея. Теперь, наверное, не так скучно будет ждать своего хода, хотя, полагаю, многие такой резкий поворот событий примут далеко не сразу, ведь уже отработаны тактики взятия консерв, утоп и т.п. против ИИ. А с человеком такие номера не прокатят :) В общем, считаю нововведение далеко идущим и нужным.


Однако видел вопрос - тогда получается, что соперники будут заранее знать размеры армий своих оппонентов, то бишь, бесплатная разведка на любой стадии игры. Помешает это геймплею или нет? Вот в чем вопрос.
Вернуться к началу

offlineАватара пользователя
Владимир  
Эксперт
Эксперт
 
Сообщения: 1057
Зарегистрирован: 30 окт 2012, 18:37
Пол: Не указан
Награды: 3
Высшая медаль (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (1)
Поблагодарили: 638 раз.

Re: Мозговой штурм

Сообщение Владимир » 20 фев 2015, 14:31

Zelya писал(а):

Ну, если коротко, то алгоритм приблизительно таков.

Код есть. С перебором в 3 хода (существ, конечно, а не полных раундов).
Нужно только чуть-чуть подправить.
Буду вспоминать и пробовать.

И наверное, если сильно захотеть, можно сделать GUI, пользуясь теми же средствами, какими я делал солдатиков.
Будет, правда, не как в оригинале.
Последний раз редактировалось Владимир 20 фев 2015, 17:14, всего редактировалось 1 раз.
Вернуться к началу

offlineZelya  
Мастер
Мастер
 
Сообщения: 390
Зарегистрирован: 04 янв 2011, 15:16
Пол: Не указан
Поблагодарили: 204 раз.

Re: Мозговой штурм

Сообщение Zelya » 20 фев 2015, 14:57

Как показывает практика, в Героях, в отличие от шахмат, перебор на несколько ходов неэффективен. Во-первых, сильный рандом, во-вторых, использование магии. Так что, если в шахматах, действия человека, кое-как поддаются оценке, подобно действиям компа, то в Героях 1-2, практически нет. В Героях - 3 еще хуже (с "переждать"). Поэтому, перебирать на несколько юнитов вперед имеет смысл, только если все эти юниты в данный момент под управлением ИИ.
Вернуться к началу

offlineАватара пользователя
DeathLust  
Подмастерье
Подмастерье
 
Сообщения: 140
Зарегистрирован: 29 ноя 2012, 15:19
Пол: Не указан
Поблагодарили: 62 раз.

Re: Мозговой штурм

Сообщение DeathLust » 20 фев 2015, 19:46

bobchik писал(а):

AlexSpl писал(а):

Вон baratorch запилил игру за нейтралов во время ожидания хода. Типа твой противник нападает на охранников лесопилки, а ты сражаешься за охранников-импов :) Давно была такая идея. Теперь, наверное, не так скучно будет ждать своего хода, хотя, полагаю, многие такой резкий поворот событий примут далеко не сразу, ведь уже отработаны тактики взятия консерв, утоп и т.п. против ИИ. А с человеком такие номера не прокатят :) В общем, считаю нововведение далеко идущим и нужным.

Однако видел вопрос - тогда получается, что соперники будут заранее знать размеры армий своих оппонентов, то бишь, бесплатная разведка на любой стадии игры. Помешает это геймплею или нет? Вот в чем вопрос.

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

Пред.След.

Вернуться в Общий раздел

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1