"Почему новые патчи ставятся как в 19-м веке, когда вся игровая промышленность уже делает апгрейды автоматически?"
"Отсутствие массовости боя, серость и заунывность происходящего, жуткие пейзажи в зимнюю ночь, ужасное меню, слабый микроменеджмент... как можно было такое создавать?" (с) egoeastos про APOS.
"Почему новые патчи ставятся как в 19-м веке, когда вся игровая промышленность уже делает апгрейды автоматически?"
"Отсутствие массовости боя, серость и заунывность происходящего, жуткие пейзажи в зимнюю ночь, ужасное меню, слабый микроменеджмент... как можно было такое создавать?" (с) egoeastos про APOS.
Скачал, поставил. При запуске ругается на msvcr71.dll, MFC71.dll
Windows XP SP3 лицензия со всеми обновлениями....
Крайний раз редактировалось =Alex=; 23.07.2009 в 19:14.
"Почему новые патчи ставятся как в 19-м веке, когда вся игровая промышленность уже делает апгрейды автоматически?"
"Отсутствие массовости боя, серость и заунывность происходящего, жуткие пейзажи в зимнюю ночь, ужасное меню, слабый микроменеджмент... как можно было такое создавать?" (с) egoeastos про APOS.
Скачал, уставновил, запустил, можете удивится, но запустилось отлично, правда пока ещё плохо разобрался с особенностями игры, первый бой что называется проиграл. Впечетления вцелом позитивные (звук стрельбы понравился). Из недостатков - не раз мною названное очень тёмное небо (да весь полигон) - не даёт насладится красотами игры на 100%, второе что тоже в глаза бросилось - кусты травы на замёрзшей реке. ща картинку приложу, если получится.
Интерфейс вцелом удобный, только рекомендую поменять клавишу Z на ЛКМ+ПКМ - удобнее
![]()
"Почему новые патчи ставятся как в 19-м веке, когда вся игровая промышленность уже делает апгрейды автоматически?"
"Отсутствие массовости боя, серость и заунывность происходящего, жуткие пейзажи в зимнюю ночь, ужасное меню, слабый микроменеджмент... как можно было такое создавать?" (с) egoeastos про APOS.
Надеюсь это скриншоты?![]()
Что бы ратовать за гуманитарную помощь, сначала нужно создать гуманитарную катастрофу.
"Почему новые патчи ставятся как в 19-м веке, когда вся игровая промышленность уже делает апгрейды автоматически?"
"Отсутствие массовости боя, серость и заунывность происходящего, жуткие пейзажи в зимнюю ночь, ужасное меню, слабый микроменеджмент... как можно было такое создавать?" (с) egoeastos про APOS.
Предлагаю такую методику:
1)изучения инструкций и наставлений
2)адаптация инструкций и выбор приоритетов
3)формирование алгоритма
наставление можно прочитать тут, начиная со стр 38
стрельба из орудия прямой наводкой
http://www.amyat.narod.ru/theory/ale...dkoy/index.htm
по наставлению, надо чтобы место стрельбы имело хороший обзор, было замаскировано до 1-го выстрела, чтобы стрельбой из орудия поразить противника.
Также требуется инженерная подготовка места стрельбы – организация окопа для орудия, в котором оно будет находится до того, как потребуется выдвинуть его на место стрельбы.
Требуется держать орудие в окопе, чтобы противник не мог во время подготовки места стрельбы несколькими выстрелами расстрелять орудие.
Еще потребуется сделать 2-3 наката из бревен с прослойкой земли – для защиты орудийного расчета от оружейных выстрелов и осколков мин и снарядов
Что такое накат можно посмотреть тут:
http://army.armor.kiev.ua/fort/zaschita.shtml
надо сделать также но вертикатьно
Затем, надо замаскировать место стрельбы.
Все эти приготовления осуществляются за 2-3 ночи до наступления атаки. Днем работы не проводятся, чтобы не дать обнаружить место стрельбы и не дай бог дать пристрелять противнику это место.
2)Адаптируем инструкцию к алгоритму
Для пушки в игре надо хороший обзор, маскировка будет реализована просто несколькими кустами.
Если в игре моделируется вариант, когда нет времени за 2-е -3е суток оборудовать место стрельбы, и ожидается контрнаступление неприятеля, то следует
а)замаскировать пушку и место стрельбы (0,5 - 1 час)
б) подготовить окоп для личного состава (0,5 час)
Итак, в приоритете для пушки нужен хороший обзор.
В наставлениях оговаривается, что для пушки хороши открытые места – площади, просеки, большие дворы, луга.
3)Алгоритм для поиска места наилучшего обзора:
Локализуем область поиска места установки до определенного размера(вроде южный край деревни такой-то), в которой и будет занимать оборону рота солдат и орудийные расчеты..
Разделим эту область на квадратные клетки размером с место орудийного расчета(4м х 4м). Для каждой клетки введем понятия
1)свободна для установки орудия (те там того, что убрать нельзя – дом, водная преграда и прочее)
2)в клетке есть предмет закрывающий обзор
3)клетка недоступна, тк туда пушку не вкатить (например за водной преградой, которую не форсировать)
Зная откуда будет/может нападать противник, выделим участки вне зоны размещения, либо на границе зоны размещения, такого же квадратного размера – места которые должны будут просматриваться/обстреливаться орудийными расчетами.
Нумеруем эти квадраты по часовой стрелке, если смотреть от центра деревни-места где мы размещаемся. Далее эти квадраты будут называться «сектора обстрела».
Если видно далеко(те мы на холме) то следует брать эти квадраты-сектора обстрела на пределе дальности выстрела, и дополнительно включить перекрестки, дороги, мосты, броды, перезды и тп, через которые может продвигаться вражеская техника или пехота.
Перенумеровываем сектора, если добавили квадраты с дорогами.
Перебираем от центра обороны по спирали свободные от препятствий и достижимые квадраты – места потенциального размещения орудийного расчета и отмечаем следующее:
Сколько из имеющихся т.н. секторов обстрела видны без того, чтобы быть закрытыми клеткой в которой есть предмет закрывающий обзор, или топографической высотой местности. Те расчет видимости осуществляется на клетках размера орудийного расчета.
Допустимыми для размещения орудий являются квадраты со значениями 80-100 % от максимума. Рекомендация - иметь максимальную непрерывную цепочку пронумерованных секторов обстрела. Но не более фиксированного числа клеток-секторов обстрела. Это число = все сектора обстрела поделить на все пушки.
Выбираем случайно одну ячейку. – Там будет орудийный расчет. Добавляем эту ячейку к ячейкам закрывающим обзор.
Каждый квадрат «сектор обстрела» пронумерованный, отмечаем как простреливаемый или не простреливаемый.
Выбираем не простреливаемые до сих пор сектора. Ищем квадраты для установки орудийного расчета так, чтобы было максимальное число не простреливаемых секторов, но не выше фиксированного числа(см выше).
Повторяем алгоритм до тех пор, пока либо закончатся пушки, либо закончатся не простреливаемые сектора обстрела.
Если пушки еще есть, размещаем их аналогично для усиления, те вместо отместки не простреливаемый сектор обстрела, говорим простреливаемый всего один раз.
Если моделируется установка пушки в лесу и значит требуется вырубка части леса, то для каждой клетки еще следует оценить трудозатраты на порубку квадрата с лесом, чтобы они были минимальны.
Если моделируется, что пушки спрятаны и не видны сразу, а на позицию выдвигаются только когда противник идет в атаку - то надо рядом с местом для стрельбы - еще место для окопа под орудие или естественное укрытие (дом, овраг).
Это все хорошо распараллеливается за счет того, что выполняются однотипные операции - подсчет суммы простреливаетмых секторов для буфера позиций орудийных рассчетов, при неизменной карте клеток-препятствий. Распараллеливание осуществляется за счет деления общего буфера поленциальных позиций для пушек на N частей (или N-1, при активном рендере), где N- число процессоров.
Это когда пушка работает в обороне,
когда в наступлении - главное что требуется от орудийного рассчета - поразить цель. и не обязательно иметь широкий сектор обстрела, лучше иметь укрытие (лес, дом, овраг) затем, чтобы не убили сразу. (см наставления стр 65)
Крайний раз редактировалось Alexandro; 23.07.2009 в 21:06.
Спасибо за детальный обзор.
Звучит заманчиво, но как сделать накаты при помощи компьютера?
Это как-то упрощенно, а если кустов нет?
Так не годится
Моделируется
Согласен
Как определить при помощи компьютера эти самые места?
Прямо мысли читаете, почти так и сделали, и даже наставления смотрели
Если нет какго-то ориентира - деревни и т.д., например размещаемся в поле, что будет делать алгоритм?
Как узнать откуда будет нападать противник (игрок) до начала игры?
Как определять перекрестки?
Плохо, не будет работать правильно по квадратам
Условия недостаточны, хорошо бы чтобы сектора перекрывались и, например, пушку можно было прикрыть пехотой и т.д., как с этим быть
Получится распыление сил и в результате проигрыш - в демоверсии можно увидеть как это бывает когда пушки расставлены на широком фронте, а ИИ атакует на узком - и на одну пушку выходит 3-5 танков
Как думаете, сколько времени нужно будет ждать пока такой алгоритм расставит 4 пушки и 10 взводов солдат? Будет ли ждать столько потенциальный игрок при каждой загрузке?
Это уже фантастика
Как определить, что это овраг, а не там низина или яма?
Число "процессоров" редко превосходит 2, по формуле X = N-1, где N = 2 получаем X = 1 - да, отлично распараллеливается
Это неплохо работает всегда, когда целей ожидается больше чем есть пушек.
Кстати замечу, кроме пушек есть минометы, САУ, БТРы, танки и т.д. их тоже хорошо бы расставить
"Почему новые патчи ставятся как в 19-м веке, когда вся игровая промышленность уже делает апгрейды автоматически?"
"Отсутствие массовости боя, серость и заунывность происходящего, жуткие пейзажи в зимнюю ночь, ужасное меню, слабый микроменеджмент... как можно было такое создавать?" (с) egoeastos про APOS.
Вначале вы просто стебались над каждой строчкой – разбирая сообщение построчно, вы не видели общего, начало – это вводная информация, на чем строится собственно алгоритм. Привел я это потому, что форум читают разные люди, и не всем сразу понятно понятно, откуда берется начальный материал для размышления.
Вы же заставили защищать флаги в демке – значит что защищать уже есть.
Ну, я исходил из того, что он может появиться отовсюду с любого их этих трех направлений. И просто указал способ записать через какие квадратики обязательно будет проходить противник.
Ну дорога-то у вас имеет статус дороги, а? что мешает один раз на всю карту перекрестки, мосты, и прочее и обозначить их как интерес для зоны обстрела?
Если в квадрате находится объект который закрывает обзор, и тогда и квадрат помечается как закрывающий обзор. Ища выгодную позицию, мы должны найти такое место, где большинство клеток-целей будут видимы. Если в квадрате нет пометки, что она закрывает обзор, то значит любые лучи обзора будут через нее проходить и на обзор она не влияет . Если в квадрате таки есть дерево, то мы считаем что весь квадрат непригоден – и значит будем искать то место где лучше видно цели.
мы будем отбрасывать невыгодные позиции, из-за того что В СУММЕ, из этой позиции будет видно не все, что хотелось, мы будем выбирать те позиции где в сумме мест обстрела больше, те обзор лучше. (а с нуждой в обзоре вы согласились)
Работать будет, поразмыслите еще раз.
Если бы вы прочитали до конца, то увидели, что есть требование на одну пушку не более фиксированного числа квадратов обстрела, которое равно = все квадраты для обстрела делить на число пушек.
Потому и квадраты, чтобы дискретный расчет работал быстрей. Думаю не больше 1 секунды на 1 пушку при размере поля защиты 50х50 и количестве клеток обстрела 152 (по внешнему периметру) – это будет 200х200 метров квадратных
. Компы сейчас гораздо производительней, чем были 10 лет назал в эпоху Win98.
Я бота к линейке писал и был удивлен что он работает очень шустро.
2 400 000 000 Гц *4 = 9 600 000 000 целочисленных операций в секунду.
Ну ведь у вас хранятся данные о том какая высота в каждой точке карты да? Ведь солдаты и танки у вас не проваливаются, так ведь? Таким же образом, только данные передать не в модуль физики, а в другое место.
Загляните на яндекс маркет.
6 ядер пока дорого 100 тыс рублей
http://market.yandex.ru/model.xml?CM...G=10&hid=91019
4 ядра совсем не дорого, всего 6,3 тыс рублей
http://market.yandex.ru/model.xml?CM...G=10&hid=91019
2 ядра это все старые АМД…
Чтобы сектора перекрывались, надо сделать вторую итерацию в алгоритме, она приведена в оригинальном сообщении ниже.
Чтобы прикрывать пушки пехотой и расставлять САУ БТР-ы – это уже _другие_ алгоритмы, но вам приведенный алгоритм не интересен, наверное из за того, что вы не программист, значит смыла смысла мне выдумывать способы размещать алгоритмически все остальное – что бы я ни написал, это будет принято также, как и это сообщение.
У меня к вам просьба покажите это тому, кто думал над тем как размещать пушку алгоритмически
Вы в демку играли? Сколько времени?
Обращаю ваше внимание, что, как правило, в игре в бою нужно защитить не один флажок, а несколько. Так что общая территория получается весьма немаленькая, а орудийных расчётов игре ограниченное количество, порой даже не хватает по одной пушке на флажок.
Соответственно и противник тоже часто может наступать из любого места, в любом направлении по фронту в несколько километров. Причём заранее неизвестно, на какой из флажков он будет наступать, будет ли он наступать всеми силами в одном направлении или в нескольких из разных мест и т.п.
Как быть с вашим условием и алгоритмом в этом случае?
Вы невнимательно читаете. Андрей спросил, как различить между собой овраг-низину-яму?
Какая потребуется дискретизация для этого, хватит ли для этой задачи квадратов или потребуется большее разбиение?
А как вы определяете поле защиты?
Это площадь, внутри которой флаг может быть захвачен? Поле, где можно расставлять юниты? Или что?
Что есть количество клеток обстрела?
А если пушки расставлять близко к внешнему периметру или по нему?
Или пушки, по-вашему, не должны стрелять за пределы поля защиты?
С чего это вы такой вывод сделали? С того, что ваш алгоритм с распростёртыми объятиями не приняли
Открою вам огромный "секрет": Андрей - программист и разработчик сей игры.
Я понял, но вводная информация из "военных методичек" не подходит для использования в качестве основы алгоритмов, т.к. "исполнительное устройство" на которое нацелена методичка весьма отличается от компьютера
В демке (игре) не нужно защищать флаги, можно, но не нужно, в некоторых случаях это даже ведет к проигрышу
Не совсем понял - противником ИИ, является игрок, мне не совсем ясно как до начала игры предугадать через какие квадратики он будет настыпать
кто это будет делать? Нас 4 человека в команде - по-этому ручное задание этих объектов не лучший вариант, остается автоматическое, вот я и спросил, как автоматически определить перекрестки?
Это мягко говоря долго и очень неточно.
Представьте дерево с обширной кроной, под которым ничего нет расположенное в низине, обзор для тех кто стоит в низине оно не закрывает обзор, а для тех кто стоит на холмах рядом с низиной закрывает, и таких случаев подавляющее большинство, как с этим быть?
По сумме мест очень хорошо, особенно для пушек, которые не могут быстро сменить направление обстрела, нужна сумма "нормированная по направлению" или еще как-то.
Мы не только поразмыслили и не раз, но и еще реализовали _на практике_ рабочий вариант, перебрав перед этим несколько нерабочих
Но квадраты для одной пушки должны лежать на небольшом количестве направлений, и очень желательно соседних, не так ли?
Ничего не понял, из каких соображений получены эти числа?
И что за периметр такой?
Даю свои числа - размер полигона 6144х6144 метра, дальность до видимого горизонта свыше 2 км, примем для простоты, что пушка "видит" вокруг своего места на 2048 метров (квадратом) - итого 4096х4096 метров. Поделим на 4 чтобы получить количество квадратов для проверки - 1024х1024 = ~1 миллион квадратов, вычтем 30% если проверять по радиусу.
Предположим расставлять мы можем в 3-4 х областях площадью 1 кв.км.
Итого нам нужно проверить для 262 тысячи квадратов на которые мы можем поставить пушку на видимость с 700 тысячами квадратов.
И так повторить для всех отделений (х10).
(Параметры взяты реально используемые в игре)
Секунда говорите?
Моя оценка - месяц, при хорошей оптимизации две недели - думаете игрок будет столько ждать загрузки?
Я в курсе
Конечно
Я уже запутался, данные о картах высот и так передаются в разные места, включая интерфейс, но передать мало
Расскажите это игрокам и главное издателям, а не мне, даже если я куплю самый быстрый компьютер в мире, это никак не поможет потенциальным игрокам в нашу игру.
См. выше про быстродействие
Наверное.
Алгоритм интересен иначе бы я не писал ответ более менее по каждому пункту.
На реально работающие вещи я уже Вам указал, но есть у этого алгоритма недостатки, которые ограничивают его применение.
Это сообщение принято очень хорошо, не расстраивайтесь не хотел Вас обидеть.
Уже показал.
А чем собственно не нравиться как в игре сделана расстановка, то?
"Почему новые патчи ставятся как в 19-м веке, когда вся игровая промышленность уже делает апгрейды автоматически?"
"Отсутствие массовости боя, серость и заунывность происходящего, жуткие пейзажи в зимнюю ночь, ужасное меню, слабый микроменеджмент... как можно было такое создавать?" (с) egoeastos про APOS.
Список клавиш управления в word файле нельзя получить? А лучше в excel файле.
"Почему новые патчи ставятся как в 19-м веке, когда вся игровая промышленность уже делает апгрейды автоматически?"
"Отсутствие массовости боя, серость и заунывность происходящего, жуткие пейзажи в зимнюю ночь, ужасное меню, слабый микроменеджмент... как можно было такое создавать?" (с) egoeastos про APOS.
если реализовали, значит реализовали. что спорить -то тогда?
Да, я вроде и не спорил.
А ИИ такая штука что обсуждать и улучшать можно бесконечно, чем мы и будем заниматься. Поэтому разные идеи изучаем, даже которые кажутся нереализуемыми на первый взгляд
---------- Добавлено в 14:27 ---------- Предыдущее сообщение было написано в 14:23 ----------
Так pdf лежит в корне игры docs\support - чем не устраивает?
"Почему новые патчи ставятся как в 19-м веке, когда вся игровая промышленность уже делает апгрейды автоматически?"
"Отсутствие массовости боя, серость и заунывность происходящего, жуткие пейзажи в зимнюю ночь, ужасное меню, слабый микроменеджмент... как можно было такое создавать?" (с) egoeastos про APOS.
"Почему новые патчи ставятся как в 19-м веке, когда вся игровая промышленность уже делает апгрейды автоматически?"
"Отсутствие массовости боя, серость и заунывность происходящего, жуткие пейзажи в зимнюю ночь, ужасное меню, слабый микроменеджмент... как можно было такое создавать?" (с) egoeastos про APOS.