КАМ ИИ
|
Вовец | Дата: Среда, 01.08.2012, 10:49 | Сообщение # 61 |
PsychoBotoKiller
Группа: Администраторы
Сообщений: 4231
Награды: 25
Репутация: 358
Статус: Offline
| Действительно, такой вариант лучше
Без лишней скромности: один из основателей R.A Гильдия бойцов: 2011-2014. Помним, любим, скорбим.
|
|
| | |
WannA_Play | Дата: Среда, 01.08.2012, 11:18 | Сообщение # 62 |
Пикейщик
Группа: Проверенные
Сообщений: 439
Награды: 7
Репутация: 9
Статус: Offline
| Да,krom согласен с твоим вариантом,он действительно лучше
Скриптодел и картограф.
|
|
| | |
AntonP | Дата: Среда, 01.08.2012, 12:42 | Сообщение # 63 |
Дозорный
Группа: Проверенные
Сообщений: 339
Награды: 1
Репутация: 7
Статус: Offline
| В идеале, нужно добавить в формулы еще и зависимость от ресурсов. Вот допустим пример: У ИИ есть Склад и Школа, в Складе есть 30 камней и 10 досок
Тогда если он будет следовать по формуле "НужноКаменоломен = 2 + (есть Лесопилка * (1 + Мощь * 2)", он заведет себя в тупик. Т.к. построив 2 каменоломни, он потратит 6 досок, а 3 доски не хватит для постройки лесорубки и лесопилки. Он должен был поступить так: Построить каменоломню, потом лесорубку и лесопилку. поэтому нужно формулу переделать. Допустим у нас: l_lesopilka - Нужное колличество досок для лесопилки l_Lesorybka - Нужное колличество досок для лесорубки l_Kamenolomn - Нужное колличество досок для каменоломни Lamber - Текущее колличество дерева Если (l_lesopilka+l_Lesorybka<=Laber) И (l_lesopilka+l_Lesorybka+l_Kamenolomn>Laber) Тогда Приоритет постройке древесной промышленности Иначе Каменной промышленности. Ну в общем это все для наглядности, нужно придумать, как все это учесть.
Еще былобы хорошо еслибы ваши ИИ параметры были не статическими а динамическими, чтобы во время игры они могли меняться. Так допустим если экономика мощная, то прибавим воинственности и наоборот. И по аналогии с остальными.
Война и мир лучшая!
Сообщение отредактировал AntonP - Среда, 01.08.2012, 12:45 |
|
| | |
malin | Дата: Среда, 01.08.2012, 13:03 | Сообщение # 64 |
Сквайр
Группа: Проверенные
Сообщений: 180
Награды: 3
Репутация: 44
Статус: Offline
| Quote (Krom) Мощь - определяет размах с которым идет стройка (например строить сразу 3 каменоломни и 4 лесника вместо 1) Скорость - количество одновременных строек (2 или 4) и строителей (6 или 12) Воинственность - упор на армию или город (строим сначала агропром или армию) ТипОружия - что выбираем в первую очередь, железных или деревянных воинов Могу предложить ещё параметры: Оборона - определяет не только сколько воинов оставить на защите, сколько отправить в атаку, но и\или (наверное лучше разделить эти параметры?) плотность застройки башен, кольцо башен одно\два\три\десять... Медлительность - определяет время "перекура" у строителей. Медлительность определяет задержку между "здание построено" -> "дать новое задание на строительство". Пример: Если медлительность = 10, то после того как одно здание было построено, задание на постройку следующего будет дано только через 10 секунд. Данный параметр будет полезен при регуляции "сложности" ИИ не затрагивая его мощь и скорость. Разведка - переключатель типа 0,1,2 . Разведка = 0 - ИИ разведывает территорию строго в соответствии с Любознательностью (см. ниже). Разведка = 1 - тоже что и "0", но если ИИ замечает враждебного игрока - разведывает позицию игрока. Разведка = 2 - тоже что и "1", но если враждебный игрок не защищён, разведчик ИИ атакует игрока, сразу же. Любознательность - будет ли ИИ проводить разведку территории и как далеко он будет разведывать. Пример: Любознательность = 60, ИИ разведает все проходимые клетки в радиусе 60 клеток от каждого здания.
Также могу предложить, но это уже на будущее, суперИИ: Вовремя игры ИИ может сам себе изменить параметр мощи\скорости\и тп... Пример_1: ИИ имеет ТипОружия железо с упором на мечников (он производит их больше всего). ИИ атакует игрока и проигрывает битву. ИИ по разведанным данным видит, что у игрока большое количество конницы, ИИ меняет ТипОружия на железо-пикейщики (остальных он также производит, но пикейщиков делает специально для конницы игрока). Атакует снова, по новым разведданным делает вывод:"Кого у игрока больше? Какой тип анти-юнита производить?" Пример_2: ИИ имеет мощь = 1, скорость=1, медлительность=10 и некоторое начальное войско. ИИ развивается, и если по каким любо причинам ИИ понимает, что погибнет если будет так развиваться (Напал враждебный игрок -> уменьшилось начальное войско; Разведка донесла, что у враждебного игрока больше армия, больше каменоломен и лесопилок; и др.) ИИ изменяет свою мощь на , скажем, +1, скорость +2, медлительность -5. Если положение не меняется ИИ вновь пытается увеличить свою мощность. Пример_3: ИИ агрессивен и оставляет мало воинов в защите, мало башен. ИИ был атакован и понёс потери. ИИ меняет свою агрессивность на защиту, повышает оборону +1 и теперь оставляет больше воинов в защите и застраивает башенки плотнее, может и второе кольцо строит. ИИ оставили в покое, он завершил возведение оборонительных конструкций, разведка донесла, что один из игроков слабоват, ИИ вычисляет шанс на победу, но при обороне = 2 ему не хватает войск для атаки, тогда ИИ уменьшает оборону -1 и поднимает агрессивность -> атакует игрока.
Пора бы и поесть. (с) Ополченец Да-а? (с) Каменотёс Да! (с) Строитель
Сообщение отредактировал malin - Среда, 01.08.2012, 13:09 |
|
| | |
Krom | Дата: Среда, 01.08.2012, 13:28 | Сообщение # 65 |
Воитель
Группа: Супер Модераторы
Сообщений: 2526
Награды: 25
Репутация: 153
Статус: Offline
| Чертовски рад читать выши мысли и предложения! )
AntonP, идея отличная и хорошо ложится на первоочередные ресурсы. Строим минимум по 1 каждого дома до Золотоплавильни включительно. Если хотим построить еще какой-то дом, то в проверку добавляем условие - постройка этого дома не должна уменьшить дерево/камень ниже необходимого минимума или Каменоломня/Лесопилка уже есть и работают. Так же с наемом юнитов в школе - иметь запас золота для найма шахтеров/металлурга.
malin, Оборона будет у Генерала, пока больше упор на Мэра идет, сделаем город сначала. Медлительность - другое название для Скорости, суть та же - растянуть строительство по времени. Количеством одновременных построек, строителей и паузами между стройками, да. Разведка похожа на Экспансивность, она же Оборона. Чем больше оборона тем ниже разведка и наоборот, т.е. прямая связь параметров, следовательно их объединяем в 1.
Все перечисленные параметры пока булевые поля (да/нет) но в будущем нет причин не сделать их процентами 0..100%. Это проще чем иметь набор величин. Я пока стараюсь обобщить и выбрать параметры так, чтобы любая комбинация имела право на жизнь и была достаточно логична. Поэтому некоторые несочитаемые вещи объединяю (Скорость и Медлительность например, или Разведку и Оборону)
Менять параметры во время игры .. почему бы и нет, но это оставим на потом.
Еще параметр, по секрету, и пока не окончательно - Читерство. Чем больше комп читер, тем больше он берет стройматериалов и оружия "из воздуха". Как все знают в кампаниях ИИ и так махровые читы - по овер9000 всего на складах. Обыграть наш ИИ игрока все равно не сможет, так что дать ему пару козырей в рукав для игры против профессионалов - можно )
Нашли баг в КаМ Ремейке? Отправьте отчет на с пометками, желательно на английском, в какой версии, что и когда случилось, приложите реплей или сохраненную игру в которой этот баг воспроизводится.
|
|
| | |
WannA_Play | Дата: Среда, 01.08.2012, 14:22 | Сообщение # 66 |
Пикейщик
Группа: Проверенные
Сообщений: 439
Награды: 7
Репутация: 9
Статус: Offline
| AntonP, malin, Ребят,ну и фантазия у вас
Скриптодел и картограф.
|
|
| | |
malin | Дата: Среда, 01.08.2012, 14:36 | Сообщение # 67 |
Сквайр
Группа: Проверенные
Сообщений: 180
Награды: 3
Репутация: 44
Статус: Offline
| Quote (Krom) Строим минимум по 1 каждого дома до Золотоплавильни включительно ИИ должен спланировать этот "минимальный город" заранее, ведь местность разная и длинна дорог разная. При чём если камней не хватает ИИ должен рассчитать количество каменоломен для того чтобы обеспечить свою скорость, иначе будет простой из-за того что один каменотёс не обеспечивает всех строителей камнями.
Ещё параметр6 плотность застройки - число клеток отступа от зданий (1 - минимум)
Пора бы и поесть. (с) Ополченец Да-а? (с) Каменотёс Да! (с) Строитель
|
|
| | |
Krom | Дата: Среда, 01.08.2012, 15:00 | Сообщение # 68 |
Воитель
Группа: Супер Модераторы
Сообщений: 2526
Награды: 25
Репутация: 153
Статус: Offline
| malin, Вот тут наступает момент, когда либо делать все по уму и писать алгоритм калькуляции и бронирования камня и местности под здания и сопутствующего кода на 300 строк, либо немного срезать угол и сделать для ИИ строительство дорог бесплатным до постройки каменоломни )) Я за второй вариант. А уж игрок ничего и не заметит т.к. А - ранний этап постройки города не увидит из-за тумана, а потом уже и все равно, Б - ИИ почти всегда будет укладываться в лимит и чит будет незадействован.
Сейчас немного улучшился алгоритм поиска мест под здания, на тестовой карте ИИ строится заметно лучше - меньше делает глупых ошибок (типа стройки обходной дороги к каменоломне, или строительства параллельных дорог).
Нашли баг в КаМ Ремейке? Отправьте отчет на с пометками, желательно на английском, в какой версии, что и когда случилось, приложите реплей или сохраненную игру в которой этот баг воспроизводится.
|
|
| | |
malin | Дата: Среда, 01.08.2012, 16:08 | Сообщение # 69 |
Сквайр
Группа: Проверенные
Сообщений: 180
Награды: 3
Репутация: 44
Статус: Offline
| Если по уму я думая там больше чем 300 строк выйдет) Поэтому я поддерживаю тебя, Krom, лучше будет "срезать" этот угол. Экстремальных карт - где очень (ну ОЧЕНЬ!) мало места и\или катастрофически мало ресурсов, мало. В основном места хватает и ресурсов достаточно. Да и в любом случае поведение по "уму" можно будет подписать отдельным типом AI_honest потом, когда захочется)
На счёт читерности ИИ: Можно задать такой параметр типом массив, в котором будут перечислены ресурсы которые ИИ может сам себе добавить на склад или казарму. Пример: ИИ имеет массив читерство = [доски, камни, хлеб, топоры]. ИИ хочет построить домик, но на складе ему не хватает 5 камней, несмотря на то что каменотёс у ИИ уже есть, ИИ добавляет себе "читом" на склад 5 камней, чтобы поддерживать скорость развития (пока там каменотёс за камнем идёт). Такая же ситуация с хлебом, если в харчевню надо принести 1 хлеб, если на складе хлеба нет, если в пекарнях готового хлеба нет, то +1 хлеб на склад. При кормлении солдат тот же случай, но с разделением пищи случайным образом. Для поддержания агрессивности (атака через каждые 10 минут, например) ИИ может добавить себе в казарму топориков, если они есть в его списке читерства.
Пора бы и поесть. (с) Ополченец Да-а? (с) Каменотёс Да! (с) Строитель
Сообщение отредактировал malin - Среда, 01.08.2012, 16:10 |
|
| | |
Krom | Дата: Среда, 01.08.2012, 16:17 | Сообщение # 70 |
Воитель
Группа: Супер Модераторы
Сообщений: 2526
Награды: 25
Репутация: 153
Статус: Offline
| Думаю просто ввечти параметр Читерства (сначала как флаг, а потом как процент) и в соответствии с ним играть. Читер 0 - значит не читить принципиально. Читер 1 читить только в необходимых местах типа постройки каменоломни и найма металлурга. Читер 100% - бессовестно читить раш войсками после постройки казарм )
Нашли баг в КаМ Ремейке? Отправьте отчет на с пометками, желательно на английском, в какой версии, что и когда случилось, приложите реплей или сохраненную игру в которой этот баг воспроизводится.
|
|
| | |
malin | Дата: Среда, 01.08.2012, 17:55 | Сообщение # 71 |
Сквайр
Группа: Проверенные
Сообщений: 180
Награды: 3
Репутация: 44
Статус: Offline
| А как это будет выглядеть? Например читер на 30% -> при нужде будет выбрасываться кость читери\нечитерить (30/100)? Или будут какие-то пределы? 0 - нельзя. 1...33 - только в безвыходной ситуации и при нужде, 33...66 - всегда в строительстве и чуть чуть при обороне, 66...100 - всегда при строительстве и при обороне, и в зависимости от % в атаках? Какова эта зависимость? Может тогда проще переключатель сделать 0,1,2,3,4?
Пора бы и поесть. (с) Ополченец Да-а? (с) Каменотёс Да! (с) Строитель
|
|
| | |
DIV | Дата: Среда, 01.08.2012, 18:23 | Сообщение # 72 |
Гвардеец
Группа: Друзья
Сообщений: 1227
Награды: 12
Репутация: 59
Статус: Offline
| Есть еще мысль. В некоторых играх на карте делаются специальные пометки для ИИ. Может ввести нечто подобное, там где могут возникнуть сложности у ИИ (места для усиленной защиты, место с безопасными для добычи ресурсами и т.д.) Приветить это к редактору карт, как маркеры. Что бы АИ мог нормально играть на сложных картах.
div@kamclub.ru
|
|
| | |
Krom | Дата: Среда, 01.08.2012, 18:40 | Сообщение # 73 |
Воитель
Группа: Супер Модераторы
Сообщений: 2526
Награды: 25
Репутация: 153
Статус: Offline
| malin, оба варианта хороши, просто % воспринимать легче. Не хочется распыляться и делать 20 отдельных ключей читерства поотдельности (читить камни, читить доски, читить топоры, читить дороги, ...)
DIV, может быть, надо будет попробовать.
Нашли баг в КаМ Ремейке? Отправьте отчет на с пометками, желательно на английском, в какой версии, что и когда случилось, приложите реплей или сохраненную игру в которой этот баг воспроизводится.
|
|
| | |
Вовец | Дата: Среда, 01.08.2012, 19:33 | Сообщение # 74 |
PsychoBotoKiller
Группа: Администраторы
Сообщений: 4231
Награды: 25
Репутация: 358
Статус: Offline
| Ещё надо будет сделать разную сложность у ИИ: лёгкая, средняя, сложная, очень сложная, ну ппц какая сложная Ну на последних двух читерство будет частенько работать =)
Без лишней скромности: один из основателей R.A Гильдия бойцов: 2011-2014. Помним, любим, скорбим.
|
|
| | |
malin | Дата: Среда, 01.08.2012, 19:46 | Сообщение # 75 |
Сквайр
Группа: Проверенные
Сообщений: 180
Награды: 3
Репутация: 44
Статус: Offline
| Quote (Krom) malin, оба варианта хороши, просто % воспринимать легче. Не хочется распыляться и делать 20 отдельных ключей читерства поотдельности (читить камни, читить доски, читить топоры, читить дороги, ...) Мне что-то не воспринять в процентах) Так и не пойму как это в процентах будет работать. А списком просто: Если на складе не хватает N количества товара Х, если товар Х указан в списке читерства, то добавить N количество товара на склад. Хотя тебе виднее)
Пора бы и поесть. (с) Ополченец Да-а? (с) Каменотёс Да! (с) Строитель
|
|
| |
|