Ku2zoff В бдефе была сложность раньше, но в новой версии она отрезана, все жизни, урон и уникальные фишки монстров зависят от номера волны. Мало кто пользовался этой фишкой, ну и разница между сложностями была не велика.
Эх, так и хочется сказать: "Где же раньше были эти все идеи".
Читаю эту тему и вспоминаю свои шаги по AI монстров.
Первое, что приходит в голову - я сделал видимость монстров в зависимости от освещения (Брал GetEntityElum монстра), габаритов (сидя/стоя), скорости перемещения. Параметр Заметность высчитывался у каждого монстра.
Обнаружение других монстров зависело от дальности до другого монстра его уровня заметности и от State самого монстра, в состоянии Alert внимательность была выше чем в Idle, а в Combat самая высокая.
Благодаря этому можно было делать Stealth миссии. В темноте можно было тихо прокрасться недалеко от враждебного монстра.
Также достаточно плотно работал с Human Grunt.
Модель взял из CS Condition Zero, так как там больше анимаций.
Солдаты умели:
-Выбирать тип стрельбы в зависимости от дальности до противника, вблизи стреляли длинной очередью, чуть дальше по 3 патрона, если противник совсем далеко, то переходили на одиночные выстрелы.
-Присаживаться и ложиться, в режиме лёжа могли передвигаться, стрелять и метать гранаты (к режиму лёжа пришлось лепить корявые самопальные анимации).
-Более осознанно применять гранаты. При метании гранаты учитывалось наличие своих рядом с точкой падения гранаты.
-Стрелять из гранатомёта, опять же проверяя, есть ли свои в точке попадания и на пути полёта гранаты.
-Менять первичное оружие на вторичное (у солдат могло быть 2 типа оружия), анимация была корявая, но всё равно выглядело интересно, солдаты брали оружие в руки, а вторичное весело за спиной. http://mod-s.ucoz.ru/_fr/2/s4505658.jpg
-Так как в игре были пули со скоростью и честной баллистикой, то солдат вооружённый винтовкой Barret вносил поправку на дальность и на движения цели. Если двигаться однообразно, то солдат не мазал. Единственным спасением было непредсказуемо перемещаться прыгая как обезьяна.
-Пользоваться пулемётом. Только я не стал использовать стандартные пулемёты, а сделал свой моделью.
Солдаты в случае шухера без всяких скриптов становились за пулемёт.
Если солдат погибал за пулемётом, то его заменял товарищ, опять же без всяких скриптов.
-Солдаты научились пользоваться аптечками. Как стационарными (Wall charger) так и item_healthkit. Во время тестов было забавно, ранил издалека солдата, приближаешься чтобы добить, а он убежал за стенку, восстановил здоровье с помощью Wall Charger-а и вернулся чтобы отомстить. Убиваешь его, идёшь по привычке за стенку, чтобы восстановить здоровье, а Wall Charger разряжен.
-Если зомби подходили слишком близко, то солдат переставал стрелять и убегал от них на некоторое расстояние, правда отступать задом на перёд и стрелять я их так и не научил.
-Также была сделана система критических ранений. При серьёзном ранении в 20% случаев солдат не погибал, а проигрывал анимацию смерти и лежа корчился. Планировалось также сделать возможность прийти в себя и ударить игроку в спину. Всё это делало оправданность контрольных выстрелов (контрольные выстрелы жёсткая, но суровая необходимость в реальных боевых действиях). Правда я так и не доделал анимацию смерти при гибели из ранения.
-После гибели у солдата было разное кол-во патронов. В зависимости от того, сколько ему при spawn дал random и сколько он успел выстрелить.
-Солдата с пулемётом я учил делать огонь на подавления, правда уже не помню, закончил с этим или нет.
-Начиналась строиться альтернативная система навигации, но так я её и не закончил. Путь прокладывал через WayPoint с помощью алгоритма A* (A-Star) рассчитывалось расстояние между waypoint-ом и его типа. По замыслу солдаты должны были перемещаться по лестницам.
Для монстров с Xen была сделана интересная система. В случае если монстра слышал выстрел в стороне, то он с 20% вероятностью пойти посмотреть, кто там нарушает тишину. Во время тестирования было забавно, воюешь с солдатами и тут к ним из-за угла несколько любопытных монстров подходят.
Был добавлен Пещерный трутень (PitDrone) из Opposing Forcе. Моим товарищам не понравилось, что он плюётся бесконечно, поэтому я его доработал. Иглы были сделаны суб моделями, после каждого плевка с морды исчезала одна игла. Игла вела себя согласно баллистике, летела по дуге и имела свою скорость. Из-за этого монстра нужно было научить делать поправки, благо, что это было легко, т.к. это уже умел солдат с Barret. После того, как кончались иглы он бежал атаковать ближней атакой, а до этого держался на удалении от игрока. Была идея их сделать стайными животными на уровне логики. Встретишь одного - он начнёт убегать, а если их толпа, то атакуют. Одиночки должны были беспорядочно перемещаться по уровню и встречая своих объединяться в стаи.
Ещё вспоминаю, что зомби иногда притворялись убитыми, но потом оживали. Играть стало веселее. Боеприпасы тратились ещё и на контрольные выстрелы.
Ещё дорабатывал ближние атаки гарга. Конечно огнемёт никто не отменял, но мне не понравилось как он воюет вблизи. Поэтому я отключил ему дальнюю атаку и начал работать над ближней атакой. Даже сохранилось видео, которое снял в процессе проверки: https://youtu.be/RlmtzG72Fq4
Ты, браток, красиво тут всё расписал. А вот исходники,которые так могли бы нам помочь, сохранились? Иначе к чему мотать перед мордой сырым куском мяса?
__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.
Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo
Ghoul [BB] писал: Ты, браток, красиво тут всё расписал. А вот исходники,которые так могли бы нам помочь, сохранились? Иначе к чему мотать перед мордой сырым куском мяса?
Исходники мода на спирите сохранились, но выложить в публичный доступ их я могу только с согласия команды. Кое-что из того, что может помочь я отправил.
Будут конкретные вопросы - постараюсь помочь в меру своих возможностей.
faiton писал: -После гибели у солдата было разное кол-во патронов. В зависимости от того, сколько ему при spawn дал random и сколько он успел выстрелить.
я тоже был такой программер как ты, а потом получил морпехов без патронов.
Цитата:
Ghoul [BB] писал: Ты, браток, красиво тут всё расписал. А вот исходники,которые так могли бы нам помочь, сохранились? Иначе к чему мотать перед мордой сырым куском мяса?
faiton писал: Исходники мода на спирите сохранились, но выложить в публичный доступ их я могу только с согласия команды. Кое-что из того, что может помочь я отправил.
в публичный и не надо. свяжись с автором XDM и можешь лично ему передать. Это будет очень ценная помощь нашему проекту.
__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.
Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo
faiton прикольные наработки, особенно интересна реализация стрельбы на упреждение у питдронов и солдата с барретом, что-то в играх на движке id tech и его модификаций как двиг халвы почему то редко это встречается, или монстры используют хитскан или же стреляют прямо в игрока, то есть от атак можно уйти просто не стоя на одном месте а двигаясь в одном направлении. Кстати то что солдаты используют аптечки это тоже круто.
~ X ~ писал: я тоже был такой программер как ты, а потом получил морпехов без патронов.
Ну так есть константа с минимальным количеством, к которому прибавляется Random. Да и солдаты запоминали все точечные энтити относящиеся к оружию, боеприпасам и аптечкам, которые видели по пути. Планировалось, что при необходимости они смогут к ним вернуться и поменять оружие или пополнить патроны.
Хотя кто знает, не исключаю, что разгребу дела и продолжу начатое.
Ghoul [BB] а есть ссылка на страницу с описанием проекта ?
А то я на долгое время отошёл от работы с Half-Life и не посещал форумов, затянула цифровая электроника и начал работать с микроконтроллерами.
Добавлено 21-05-2016 в 12:12:
Цитата:
Chyvachok писал: faiton прикольные наработки, особенно интересна реализация стрельбы на упреждение у питдронов и солдата с барретом, что-то в играх на движке id tech и его модификаций как двиг халвы почему то редко это встречается, или монстры используют хитскан или же стреляют прямо в игрока, то есть от атак можно уйти просто не стоя на одном месте а двигаясь в одном направлении. Кстати то что солдаты используют аптечки это тоже круто.
Вот код который был у солдат для расчёта поправок на дальность и на скорость цели.
Для вертикальной поправки узнаём расстояние до противника и умножаем на коэффициент.
Для горизонтальной - узнаём вектор ускорения противника и умножаем тоже на коэффициент, не забывая учесть расстояние.
Код писался давно, сейчас сам морщусь глядя на него.
~ X ~ писал: Раз в микрухах шаришь, английский должен знать
Я бы сказал, программирование микроконтроллеров очень хорошо отучает от говнокода. В коком-нибудь восьми битном attiny13 - 1 килобайт flash памяти для программ и 64 байт RAM можно писать на С, но чаще использую ассемблер.
На говнокоде далеко не уедешь, хотя сейчас очень дёшевы 32-х битные STM32, там 16 килобайт и выше, можно и на C++ говнокод писать, худо бедно работать будет.
Цитата:
~ X ~ писал: Но мы морщимся куда сильнее, глядя на говнокод спирита...
Ну когда-то спирит казался одной из немногих более или менее стабильных платформ превосходящих по возможностям оригинальных Half-Life.
На нём и решено было делать мод.
Потом попытка переезда на Xash, дела, заботы и всё заглохло.
Автор спирита работает программером ИИ и создал свой язык программирования, а чего добился ты?
Цитата:
faiton писал: Ну когда-то спирит казался одной из немногих более или менее стабильных платформ превосходящих по возможностям оригинальных Half-Life.
А я, глядя на спирит, недоумевал - почему же в халфе сразу не сделали то, что, например, было в Unreal искаропки? Ведь возможность, как выяснилось, была.