Эта идея пришла мне в голову еще когда я делал мод по Quake. Мод благополучно расплавился в экзаменах и моем пристрастии к маппингу под ХЛ и КС. Идея заключалась в создании монстра без кода. Я хотел написать несколько алгоритмов поведения и под них подгонять будущих упырей. Итак, вот описание системы с персмотром на нынешние реалии:
C++ Source Code:
1
monster_generic
2
{
3
targetname
4
name
5
health
6
- и прочие стандартные параметры
7
specification - имя файла с описанием зверя
8
}
Файл спецификации может выглядеть вот так:
C++ Source Code:
1
Main data
2
{
3
model = ""
4
scale = ""
5
army - солдаты, гражданские, чужие и т.д.
6
walkspeed
7
runspeed
8
reactionscale - коэффициент времени реакции (умножается на заложеное в коде)
9
sitesound1 = ""
10
sitesound2 = ""
11
и т.д.
12
idlesound1 = ""
13
idlesound2 = ""
14
и т.д.
15
ну и все прочие звуки
16
IAtype - тип арт.инт.
17
animation_idle1
18
animation_idle2 и т.д.
19
animation_walk1 2 и 3 и сколько надо
20
animation_run1,2,3
21
animation_swim1,2,3
22
animation_fly1,2,3
23
то же для crouch, jump
24
для летающих, только ходячих, плавающих зверей соотв. поля просто отсутствуют
25
animation_die_forward
26
animation_die_back
27
animation_die_sidel
28
animation_die_sidef
29
animation_die_fall и т.д. думаю, здесь все понятно.
30
}
31
32
Shooting attack 1
33
{
34
weapon - оружие из стандартного набора
35
range - расстояние, когда логично стрелять
36
punchangle
37
nextshot
38
sound1 - звук, издаваемый монстром
39
sound2 и т.д.
40
animation1
41
animation2
42
}
43
Melee attack 1
44
{
45
weapon - оружие из стандартного набора
46
range - расстояние, когда логично бить
47
punchangle
48
nextshot
49
sound1 - звук, издаваемый монстром
50
sound2 и т.д.
51
animation1
52
animation2
53
}
Ну, я думаю из всего вышеперечисленного можно догадаться, что я имею ввиду.
Что касается набора интеллектов, то можно ограничится пока кваковскими walk_monster, fly_monster и swim_monster. Конечно, не плохо бы еще и по умениям вести бой разобрать, типа зомбак, солдат и воин, но это так. К слову.
Дядя Миша Слушай, а че это у нас квака так в душе-то сидит? Я же оружие скриптами тоже там делал, только не получилось, и еще кучу фишек, которые в ксаше нашел тоже для кваки задумывал. Это все в ней дело!
Еще было бы неплохо научить монстров НА САМОМ ДЕЛЕ перепрыгивать препятствия и проползать под ними. ну, тоесть если монстр не может подойти к ноду, он пытается подпрыгнуть, и присесть. не получилось, ищет обходной путь. не нашел, останавливается в растерянности. когда открывается проход, монстр идет к нему.
Да и неплохо было бы монстрам доработать АИ. сделать чтоб они звуками интересовались.(скажем, добавить амбиэнт генерику флаг "monster hear". генерик играет, монстр его слышит(в зависимости от стандартных флагов генерика(small medium large everywhere)) и топает к генерику. думаю одного генерика хватит, в случае если нужно, можно пустой звук туда загрузить.) и чтоб на игрока поразвернутей реагировали. скажем, не сразу атаковали, а сначала "присматривались". убегали бы, как ученые, если стало слишком жарко, или гордон к ним с редемиром выходит. но наверно не надо халтуры, как в деус ех'е и в редфекшене, когда монстр боится игрока только 15 секунд. Да, и ещё неплохо было бы чтоб монстра можно было бы повалить на землю.
__________________ [LIVE FLCL][LOVE Haruko] I know everyone.
I've been everywhere.
I know everything.
Because I'm everybody. Сайт творческой студии ITS
Кардинально ногвых монстров так не наделаеш. А вот если систему монстров использовать для разнообразия одного типа монстров - это да. Т. е. без перекомпиляции длл-ки создаеш зомби со слегка измененной моделью, которая идет вместе с картой. То же и на чсет ассаингов - делать ассасинга с AI зомби - дурдом, а если наделать разных модификаций ассасингов, то да.
__________________
"..впрочем крысы интересовали его только с гастрономической точки зрения"
-----
Матрешка - рекурсия по-русски
Не знаю... У меня на сотом пентиуме первая квака без тормозов работала. А сейчас - у кого меньше трёх гигагерц процессор? Ты мне скажи, почему в анриле не С++, а UnrealScript?