HLFX.Ru Forum Страницы (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)


Отправлено PLut 28-04-2016 в 18:38:

Ku2zoff В бдефе была сложность раньше, но в новой версии она отрезана, все жизни, урон и уникальные фишки монстров зависят от номера волны. Мало кто пользовался этой фишкой, ну и разница между сложностями была не велика.

Буду рад увидеть всё в действии, успехов!

__________________
Base Defense on Steam, ModDB


Отправлено Ku2zoff 01-05-2016 в 07:04:

Баг исправлен даже без всяких проверок на вес активностей. Три строчки в функции CBaseMonster::SetGait, элементарно, Ватсон:

C++ Source Code:
if (m_IdealGait == m_IdealActivity)
{
  if (iGaitSequence != pev->sequence)
    iGaitSequence = pev->sequence;
}
Вот уж действительно, никогда не надо считать себя опытным (насколько опытным, не важно) кодером


Отправлено ~ X ~ 01-05-2016 в 07:34:

Факт. Хотя, такие моменты, когда реализовать что-то получается кратко, быстро и эффективно, бывают КРАЙНЕ редко.

Может, что-нибудь ещё и для игрока подпилишь

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено Ku2zoff 01-05-2016 в 08:46:

Цитата:
~ X ~ писал:
Может, что-нибудь ещё и для игрока подпилишь

Мне надо ещё со скриптами разобраться. Не совсем корректно работают для монстров, у которых есть гейт.


Отправлено faiton 20-05-2016 в 20:31:

Эх, так и хочется сказать: "Где же раньше были эти все идеи".

Читаю эту тему и вспоминаю свои шаги по 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] 20-05-2016 в 21:53:

Ты, браток, красиво тут всё расписал. А вот исходники,которые так могли бы нам помочь, сохранились? Иначе к чему мотать перед мордой сырым куском мяса?

__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.

Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo


Отправлено faiton 21-05-2016 в 01:37:

Цитата:
Ghoul [BB] писал:
Ты, браток, красиво тут всё расписал. А вот исходники,которые так могли бы нам помочь, сохранились? Иначе к чему мотать перед мордой сырым куском мяса?

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

Будут конкретные вопросы - постараюсь помочь в меру своих возможностей.


Отправлено ~ X ~ 21-05-2016 в 07:52:

Цитата:
faiton писал:
-После гибели у солдата было разное кол-во патронов. В зависимости от того, сколько ему при spawn дал random и сколько он успел выстрелить.

я тоже был такой программер как ты, а потом получил морпехов без патронов.

Цитата:
Ghoul [BB] писал:
Ты, браток, красиво тут всё расписал. А вот исходники,которые так могли бы нам помочь, сохранились? Иначе к чему мотать перед мордой сырым куском мяса?

+1

faiton расписку у них возьми

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено Ghoul [BB] 21-05-2016 в 08:54:

Цитата:
faiton писал:
Исходники мода на спирите сохранились, но выложить в публичный доступ их я могу только с согласия команды. Кое-что из того, что может помочь я отправил.


в публичный и не надо. свяжись с автором XDM и можешь лично ему передать. Это будет очень ценная помощь нашему проекту.

__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.

Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo


Отправлено Chyvachok 21-05-2016 в 09:03:

faiton прикольные наработки, особенно интересна реализация стрельбы на упреждение у питдронов и солдата с барретом, что-то в играх на движке id tech и его модификаций как двиг халвы почему то редко это встречается, или монстры используют хитскан или же стреляют прямо в игрока, то есть от атак можно уйти просто не стоя на одном месте а двигаясь в одном направлении. Кстати то что солдаты используют аптечки это тоже круто.


Отправлено faiton 21-05-2016 в 09:12:

Цитата:
~ X ~ писал:
я тоже был такой программер как ты, а потом получил морпехов без патронов.


Ну так есть константа с минимальным количеством, к которому прибавляется Random. Да и солдаты запоминали все точечные энтити относящиеся к оружию, боеприпасам и аптечкам, которые видели по пути. Планировалось, что при необходимости они смогут к ним вернуться и поменять оружие или пополнить патроны.

Хотя кто знает, не исключаю, что разгребу дела и продолжу начатое.

Ghoul [BB] а есть ссылка на страницу с описанием проекта ?
А то я на долгое время отошёл от работы с Half-Life и не посещал форумов, затянула цифровая электроника и начал работать с микроконтроллерами.

Добавлено 21-05-2016 в 12:12:

Цитата:
Chyvachok писал:
faiton прикольные наработки, особенно интересна реализация стрельбы на упреждение у питдронов и солдата с барретом, что-то в играх на движке id tech и его модификаций как двиг халвы почему то редко это встречается, или монстры используют хитскан или же стреляют прямо в игрока, то есть от атак можно уйти просто не стоя на одном месте а двигаясь в одном направлении. Кстати то что солдаты используют аптечки это тоже круто.


Вот код который был у солдат для расчёта поправок на дальность и на скорость цели.
Для вертикальной поправки узнаём расстояние до противника и умножаем на коэффициент.

Для горизонтальной - узнаём вектор ускорения противника и умножаем тоже на коэффициент, не забывая учесть расстояние.

Код писался давно, сейчас сам морщусь глядя на него.


C++ Source Code:
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());



Для дефольных пуль код не имеет смысла, т.к. они долетают до цели мгновенно и не требуют упреждения.


Отправлено ~ X ~ 21-05-2016 в 10:51:

Цитата:
Chyvachok писал:
faiton прикольные наработки, особенно интересна реализация стрельбы на упреждение у питдронов и солдата с барретом,

кода в одну-две строчки - как нефиг делать.
А, ну вот тебе его уже показали... в каком-то виде.

Цитата:
faiton писал:
А то я на долгое время отошёл от работы с Half-Life и не посещал форумов,

Долго - это так с 2001 года?
http://hlfx.ru/forum/showthread.php?s=&threadid=4641
http://www.moddb.com/mods/xdm/
Раз в микрухах шаришь, английский должен знать

Цитата:
faiton писал:
сейчас сам морщусь глядя на него.

++
Но мы морщимся куда сильнее, глядя на говнокод спирита...

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено faiton 21-05-2016 в 11:44:

~ X ~ спасибо за ссылки, интересно.


Цитата:
~ X ~ писал:
Раз в микрухах шаришь, английский должен знать


Я бы сказал, программирование микроконтроллеров очень хорошо отучает от говнокода. В коком-нибудь восьми битном attiny13 - 1 килобайт flash памяти для программ и 64 байт RAM можно писать на С, но чаще использую ассемблер.
На говнокоде далеко не уедешь, хотя сейчас очень дёшевы 32-х битные STM32, там 16 килобайт и выше, можно и на C++ говнокод писать, худо бедно работать будет.
Цитата:
~ X ~ писал:
Но мы морщимся куда сильнее, глядя на говнокод спирита...


Ну когда-то спирит казался одной из немногих более или менее стабильных платформ превосходящих по возможностям оригинальных Half-Life.
На нём и решено было делать мод.
Потом попытка переезда на Xash, дела, заботы и всё заглохло.


Отправлено XaeroX 21-05-2016 в 12:05:

Цитата:
~ X ~ писал:
глядя на говнокод спирита

Автор спирита работает программером ИИ и создал свой язык программирования, а чего добился ты?
Цитата:
faiton писал:
Ну когда-то спирит казался одной из немногих более или менее стабильных платформ превосходящих по возможностям оригинальных Half-Life.

А я, глядя на спирит, недоумевал - почему же в халфе сразу не сделали то, что, например, было в Unreal искаропки? Ведь возможность, как выяснилось, была.


Отправлено Crystallize 21-05-2016 в 13:35:

Цитата:
~ X ~ писал:
Долго - это так с 2001 года?

Я посещаю данный форум с 2007 года, но даже не догадывался о существовании XDM, пока ты не создал эту тему в 2013 году.
С КСМ примерно так же.


Временная зона GMT. Текущее время 03:17. Страницы (8): « Первая ... « 3 4 5 6 [7] 8 »
Показать все 106 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024