???
Математика на уровне МГУ

Показано с 1 по 25 из 528

Тема: Мнение об демоверсии . Линия фронта , Битва за Харьков

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #6
    Зашедший
    Регистрация
    23.07.2009
    Возраст
    41
    Сообщений
    55

    Ответ: Мнение об демоверсии . Линия фронта , Битва за Харьков

    Нет домов и окон и дверей у нас, вообще для ИИ.
    Тогда без введения поняти дом или окно, для ИИ, предлагать какой-нибудь алгоритм или какую-либо нормальную тактику боя в городе, где вокруг дома - просто безсмысленно. шаблоны там .. не шаблоны... Нужны поняти дома, в котором засели солдаты противника. без этого никак, ну вообще никак.

    Как проверить это быстро? Есть идеи?
    Худший случай - 1400 домов и 500 юнитов - каждый с каждым - 700 тыс. проверок - занимает это несколько секунд - для игры нерабочий вариант.
    У вас наверняка каждый юнит или дом или любое дерево привязано к соответвующему квадратику, так как это необходимо для рендера ландшавтов с пирамидальным отсечением зоны видимости. У меня предположение, что размер этого квадратика-ячейки равен размеру квадратиков для первоначального размещения войск.

    Значит те дома, кторые отстоят на 4 клетоки(взял с запасом) и более от клеток которым принадлежит отрезок движения - гарантированно безопасны для гранат. Если пехота там сидит - мы не будем их трогать пускай они там сидят, будем стрелять только если высунуться( как сейчас).

    Если расстояние на которое можно бросить гранату неизвестно - то это фауст патрон.
    Про фауст патроны с неограниченой дальностью такая тема: от них и в жизни сложно защититься. Значит подозревать, что в каждом доме сидит человек с Фауст патроном - просто бояться собственной тени танкисту. В Кенинсберге для этого просто было больше танков, кторые заменяли подбитые. Надо вести танки в окружении пехоты - они должны будут отстреливать появляющихся фаустпатронщиков.

    Фаустпатроны - это совершенно другая тактика чем просто гранаты! А ведь ИИ от гранат защититься не может, вот в чем беда!

    Итого, чтобы быстро проверить, сначало в отдельный список отбираем все клетки подходящие по расстоянию, потом всех энитов к ним приписанных.

    А если нельзя как выбрать место (шаблоны не работают)?
    Если будет понятие дом, и понятие окно, и понятие направление нормали окна, то можно говорить о применении тактики превентивной стрельбы по окнам.

    чтобы обстрелять окно подойдет любое место в верном полупространстве окна, такое чтобы снаряд не с срикошетил об стену, те угол выстрела 0-60 с нормалью бы был, и расстояние было безопасно для броска гранатой.
    абсолютно любое место. Те любое место при угловом отклонении +/-0-60град от лучса нормали и по дальности - не дальше 8 клеток. Подьехал, подошел туда. не видно - отошел в другое место. не видно снова - отошел в третье, и так, пока безопасно не обошел дом.

    Иногда ИИ заставляет(уже сейчас) свои силы обойти предполагаемы участки сопротивления. как вариант я предлагаю использова такой же алгоритм, но в меньшем пропорциональном маштабе - обходить подозрительный дом не за лесом, а за огородом, например.

    Асинхронный рендер
    Оно и так уже лет 10 происходит
    странно. У меня двухядерный комп основной. Системная загрузка от винды составляет 2-4%. При игре, в бою У меня загрузка процессора не превышает 29% при скорости х1 и 44-48% при скорости х4.
    При этом, при включении режима времени х4, FPS падает в два раза.
    для игры используется оба ядра.
    Нажмите на изображение для увеличения. 

Название:	загрузка.JPG 
Просмотров:	55 
Размер:	36.7 Кб 
ID:	96892

    На графике на картинке: слева хронология загрузки ЦП. серединный минимум - это я переключился Alt-Tab на игру. чуть правее минимума - это загрузка при скорости игры х1. еще правее - это при скорости х10. Также, на графике загрузки видно, что второе ядро, несмотря на то, что первое загружено значительно, занимается только тем, чем его нагружает система. Значит не используются вычисления в двух потоках, а один поток выполняет и просчет логики ИИ и регистрацию и обработку действий пользователя, и рендер. И делает он это последовательно, сначало одно, потом другое потом третье, Иначе говоря изображение формируется не параллельно с расчетом ИИ, а синхронно с ним, т.е. в одном и том же потоке (Thread). Если бы рендер был асинхронным, то при наличии двух потоков при двухядерным процессоре, один бы был занят чисто рендером, и у него ФПС не падалобы от включения скорости ни Х4, ни Х10, ни увеличивалось бы от того что нажали на паузу. Вот.
    Таким образом, игра имеет значительные возможности для оптимизации по скорости, засчет использования двухпоточной(и более) схемы.

    ИИ выбирает маршрут(например по дороге) дорога проходит по ряду квадратиков – исходных для тактической расстановки. Если ИИ выбрал маршрут не по дороге, то вместо понятия дороги следует использовать понятие прямой отрезок движения.
    ---
    ???
    ИИ едет по участку местности. У него цель приехать в точку для захвата.
    По его путь до точки захвата будет состоять из отрезков - это и есть прямые отрезоки движения, рядом с которыми следует искать дома, которые надо будет зачищать.
    -эти отрезки применяются если юнит едет не по дороге.

    Никак не определять надо просто чтобы х4 не отрубался в принципе сам, а то при появлении противника он отрубается. А если ИИ ведет свои войско через лес – их моим войскам то видно, то не видно. Если они не видят противника и потом снова видят – отрубается Х4. только и делаешь что включаешь его снова
    Как-то непонятно, что и когда "отрубается",как алгоритм негодится - слишком много непонятных компьютеру терминов - лес, войско, видно/не видно
    это не алгоритм, а удобство использования ускорения времени.
    давайте, я по другому поясню.

    Кнопка х4 подкрашивается желтеньким, сразу после нажания на нее.
    если вдруг появляются синие точки и треугольники которые мне раньше на экране не было видно, то кнопка Х4 перестает быть подкрашеной желтеньким. (само, без моего участия)
    чтобы снова увидеть приятный, желтый цвет на этой кнопке надо снова на нее шелкнуть мышкой или нажать Ctrl+F11.
    мне бы хотелось, чтобы никакие события не затавляли пропадать этот желтый свет с кнопки х4, за исключением щелчка мышки по ней.

    А зачем? Думаете сможете что-то кардинально лучше для размещения наскриптовать? Да Вы оптимист
    я бы попытался сконцетрировать силы ИИ и попытаться ударить с нескольких направлений добившись одновременности нападения.

    А если они пришли сюда "после проверки"?
    Хм, тогда получается еще потребуется вводить правило для ИИ, о том, что проверенными дома остаются до тех пор, пока рядом (в 6-ти клетках) находятся свои войска и противника не бегал по улице. Если противник бегал по улице, то мог забежать в уже зачищенный дом,и надо зачищать все подозрительные дома(по пути к точке захвата) снова, даже если они уже были захвачены.

    Идея понятна, алгоритм несколько неоднозначен
    Лед сдвинулся! Лед сдвинулся, Господа присяжные заседатели!! (с) О. Бендер
    Крайний раз редактировалось Alexandro; 31.07.2009 в 04:55.

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •