![]() |
Страницы (8): « Первая ... « 3 4 5 6 [7] 8 » Показать все 106 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Опрос по AI. (https://hlfx.ru/forum/showthread.php?threadid=4661)
Ku2zoff В бдефе была сложность раньше, но в новой версии она отрезана, все жизни, урон и уникальные фишки монстров зависят от номера волны. Мало кто пользовался этой фишкой, ну и разница между сложностями была не велика.
Буду рад увидеть всё в действии, успехов!
__________________
Base Defense on Steam, ModDB
Баг исправлен даже без всяких проверок на вес активностей. Три строчки в функции CBaseMonster::SetGait, элементарно, Ватсон:
if (m_IdealGait == m_IdealActivity) |
{ |
if (iGaitSequence != pev->sequence) |
iGaitSequence = pev->sequence; |
} |
Факт. Хотя, такие моменты, когда реализовать что-то получается кратко, быстро и эффективно, бывают КРАЙНЕ редко.
Может, что-нибудь ещё и для игрока подпилишь
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
Эх, так и хочется сказать: "Где же раньше были эти все идеи".
Читаю эту тему и вспоминаю свои шаги по 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
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.
Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo
faiton прикольные наработки, особенно интересна реализация стрельбы на упреждение у питдронов и солдата с барретом, что-то в играх на движке id tech и его модификаций как двиг халвы почему то редко это встречается, или монстры используют хитскан или же стреляют прямо в игрока, то есть от атак можно уйти просто не стоя на одном месте а двигаясь в одном направлении. Кстати то что солдаты используют аптечки это тоже круто.
Vector vecShootOrigin = GetGunPosition(); |
Vector vecShootDir = (m_hEnemy->BodyTarget(pev->origin) + Vector(0,0, DistToEnemy * RANDOM_FLOAT(0.001,0.004)) + (m_hEnemy->pev->velocity * (DistToEnemy * RANDOM_FLOAT(0.000025,0.000034 )) ) - GetGunPosition()); |
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
~ X ~ спасибо за ссылки, интересно.
Временная зона GMT. Текущее время 03:17. | Страницы (8): « Первая ... « 3 4 5 6 [7] 8 » Показать все 106 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024