Показать все 64 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Volatile Engine (https://hlfx.ru/forum/forumdisplay.php?forumid=3)
-- Минимальный джентльменский набор энтитей (https://hlfx.ru/forum/showthread.php?threadid=4633)
Минимальный джентльменский набор энтитей
Давеча Фиектро выдвинул гипотезу, что в движке обязательно должен присутствовать некий "минимальный джентльменский набор" энтитей. Пока очевидно, что под ним понимается func_rotating и всякое такое. Давайте совместно составим полный список того, без чего, по вашему мнению, движок не имеет права на существование.
Зубрам Юнити кодинга, которые готовы всё писать самостоятельно или покупать плагины, просьба проходить молча и не задерживать очередь.
Я буду по ходу обновлять этот пост.
Итак, джентльменский набор:
__________________
func_wall
GioHAUS0n
А для чего он нужен, если а) для оптимизации отныне детальные браши, б) решётки и стёкла делаются обычными брашами, т.к. прозрачность на них прекрасно работает?
Хотелось бы пояснений для каждой предлагаемой энтити. Если польза func_rotating очевидна - без неё двиг не будет юзать Фиектра - то с остальными не так всё просто.
__________________
Неправильная постановка вопроса, ящитаю. Минимальный джентльменский набор это некая абстракция. Не может его быть в принципе. И сейчас поясню почему:
Хотим мы, допустим, стратегию. Какие энтити нам нужны? Ну юниты там, пятидесяти сортов, транспорт для них, постройки, ресурсы (аналог итемов), проджектайлы, гибсы, всякие пакости для эффектов и логические энтити, на которых строится геймплей.
А вот хотим мы, допустим, гонки. Какие энтити нам нужны? Сами машины (игроки), пушабли/брейкабли на трассе, пропы различные анимируемые, зрители на трибунах, обломки машин (то есть гибсы, при условии разрушаемости), пакости для эффектов и логические энтити для геймплея.
Или хотим мы шутер. Какие энтити нам нужны? Оружия, итемы, неписи (количество варьируется в зависимости от фантазии автора), всякие физические энтити (двери, поезда, пушабли, ротатинги, бочки катающиеся, платформы и т.д.), пакости для эффектов (тысячи их), и гора логических энтить (см. халфу).
Так вот, к чему это отступление. В ДВИЖКЕ не может и не должен присутствовать никакой джентльменский набор. Движок должен быть полностью отвязан от игровой логики. Иначе выйдет гавно как в ГС, где хулл игрока при приседании не изменить, потому что usehull = 1 привязан к флагу FL_DUCKING. Движок вообще ничего не должен знать об энтитях, эдиктах и прочем. При условии, что этот движок планируется использовать как основу для игр разных жанров. А если всё, что на нём выходит, является клоном исходной игры (см. халфу), то это тоже не повод что-то в него зашивать намертво. Чтобы не нужно было потом городить огороды из костылей и плеваться, что какую-то простую вещь невозможно реализовать.
А теперь немного оффтопа. Дядя Миша в своих первых ксашах (ещё под халфу) пошёл по правильному пути: упрощения и объединения энтить. В ксаше 0.45, которого не существует, очень стройная система брашевых энтить. Они все абсолютно разбиваемые. То есть не нужно крепить к невидимой двери брейкаблю, чтобы дверь была разбиваемой. И они все крепятся к друг другу, мовевитч работает нормально там, где не мешает движок. Но потом что-то у Дяди Миши ёкнуло внутри, он понял, что придётся сделать мод на ксаше, чтобы всё это показать. А так как никто этого делать не стал бы, (и сам ДМ тоже, я бы на его месте возможно три полноценных карты склепал бы тогда, но не сейчас, возраст не тот ) то ДМ решил обвешать обычную халфу частью плюшек из старых ксашей и кастом билдов спирита, чтобы ленивые мапперы без особого напряжения моска перенесли свои старые карты под его ксаш.
__________________
Ну вот, а я про движок в целом.
__________________
- env_beam [ env_laser ]
- env_shooter [ env_blood | gibshooter ]
- env_sprite [ cycler_sprite | env_glow ]
- func_rotating
[ func_door_rotating | func_pendulum | func_platrot | func_rot_button | func_trackautochange | func_trackchange | func_tracktrain | momentary_rot_button ]
- func_plat
[ button_target | func_breakable | func_button | func_door | func_guntarget | func_mortar_field | func_pushable | func_train | func_water | momentary_door ]
- func_tank
[ func_tanklaser | func_tankrocket | func_tankmortar ]
- func_wall
[ func_conveyor | func_friction | func_healthcharger | func_illusionary | func_ladder | func_monsterclip | func_recharge | func_tankcontrols | func_wall_toggle ]
Может лучше для начала определиться с классификацией ентить для этого "минимального джентльменского набора"?
Пока я вижу "крутить и двигать браши" по типу дверей, платформ и ротатов.
Есть ещё какие варианты?
GioHAUS0n
Ты будешь просто перечислять содержимое фгд без пояснений, я правильно понял?
Skaarj
Я понял это как набор энтить, нужных для создания карты как таковой. Например, двери нужны практически в любой игре, не говоря уже о шутерах. А вот, скажем, функ_танк - энтитя чисто геймплейная и нужна не всем.
Но тут нужна консультация средних экспертов. Придёт Фиектро - разъяснит свою позицию.
__________________
Move ентитии (перемещение брашей, поезда, двери, маятники, фанк ротатинг)
Point ентитии (тут понятно, всякие env_, item_, npc_ и т.д.)
Logic ентитии (логические энтитии, мультименегеры, триггеры_авто и т.п.)
Func ентитии (функции брашевых ентитей, фанк бреакбли, детайлы, ареапорталы, валл_тоглы, доктортрессизм и т.д.
Trigger ентитии (trigger_butthurt)
Vgui ентитии (для вывода различных сообщений и окошек на экран)
Ai ентититии (для создания различных скриптов с NPC)
Phys ентитии (всякие коробочки, флюидэ, тряпочки, веревки и т.д.)
Пока вроде всё, может еще что то вспомню.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Набор энтить для передвижения и взаимодействия с объектами на карте.
Такие как
ladder
пушабля
объекты которые может поднять игрок
конвеер
замедление, ускорение движения
триггер меняющий sv_gravity
__________________
А что нет?
__________________
А как на счет создания оружия через ентити?)))
__________________
А что нет?
conveyor же через материал удобнее делать.
PunkPaToB
А может, лучше по старинке, в коде?
Добавлено 12-07-2015 в 00:47:
__________________
__________________
__________________
А что нет?
PunkPaToB
Непривычный префикс ------> волатилу не будут юзать.
__________________
Так это получается что Фиектрам еще и логик энтити нужны? Я бы вообще этот рудимент выкинул раз есть скрипты...
func_breakable, а лучше свойство breakable для любых эжнтитей.
func_[track]train+func_trackchange
Добавлено 11-07-2015 в 23:48:
вот что я считаю неимоверным злом и идотизмом, так это логик энтити. нужна всего одна точечная script энтитя (или даже возможность привязать скрипт к любой энтите), внутри которой можно на обычном текстовом ЯП записать хоть мультиманагер, хоть реле, хоть мультивотчер, хоть любую сложную логику с if-else-case-while и глобальными+локальными переменными.
не ну правда, иной раз оказывается проще на питоне написать генератор .map файла с нужным префабом, чем вручную расставлять энтити.
а уж со скриптами монстров совсем беда. когда на одного барника приходится штук 20 scripted_sequence в одном месте и ещё в два раза больше scripted_sentence и всё это приходится как то хитро расставлять по карте что бы не запутаться где что и в каком порядке, получается АНАЛЬНАЯ НЕНАВИСТЬ.
вообще, нужна хитрая система с доступом из скрипта к любым поддающимся изменениям параметрам энтить. не городить связку из реле, манагеров и сэт-трэйнспиида, а просто вызвать из патч_трека что ни будь вроде +set(victim=*locus,speed=500,time=5)
Добавлено 12-07-2015 в 00:09:
и возможность работы со строками, что бы например можно было использовать в качестве имени цели str(*locus)+'_door' -- что бы открыть дверку приаттаченую к лифту, который остановился на этаже.
__________________
http://www.moddb.com/mods/monorail-quest
Логик-энтитя в волатиле и есть одна. Называется trigger_execute. Позволяет выполнить любой Lua-код (ну и до кучи работает как реле). Проблема в том, что Фиектры хотят иметь возможность сделать карту вообще без Lua-кодинга. И очень может быть, что таких Фиектр найдётся немало.
Вот ИИ-скриптов в старой волатиле почти нет (есть, правда, луа-функция SetOrders, и среди order-ов есть PlayAnimation, но это не совсем полноценная замена скриптед-секвенциям). Думаю, нужен некий Lua-API для ИИ-скриптов. Но это уже отдельная тема, пока я о ней думать не буду.
__________________
Виртуальные машинки полезны когда движок уже предоставляет какой то функционал, а так какой от них толк, если всеравно ничего на них не написать?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
XaeroX
trigger (должен быть брашем или точкой с радиусом).
static (модель или спрайт с колиженом)
mover - это хоть двеь, хоть поезд, хоть ротейтинг
npc_* - само за себя
item_* - семён
Добавлено 14-07-2015 в 10:46:
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
__________________
Вот даже ~ X ~ понял мою мысль лучше. Интересно почему игронируется func_train и func_tracktrain которые произносили тут не один раз?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro
Разумеется, нету - равно как и Фримона.
Добавлено 19-07-2015 в 23:17:
func_train, кстати, в третьей кваке есть. Ну эта энтитя ещё в первой появилась.
ИЧСХ, в третьей кваке даже func_rotating есть!
XaeroX
Ну я имею ввиду они до халфовских не дотягивают. И на ЛУА такое тоже не напишешь.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro
Ну тебе всяко виднее.
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
У меня такой вопрос: будет ли само количество возможных типов энтить сказываться на стабильности, играбельности, ресурсозатратности?
И еще: хотелось бы иметь возможность добавлять энтити вне самого движка, например, движок по умолчанию загружает дополнительно некий user_entities.***, который может быть отредактирован пользователем под свои нужды (возможно это нереальная фигня, так что простите, в кодинге не шарю).
Хотелось бы иметь общую систему флагов: в cs 1.6 нельзя флаг от другой энтити дать нужной (хотел задать минимальное освещение модели и сделать какой-то браш проходимым, не используя func_door, illusionary, rotating,etc). Разумеется флаги для точечных и брашевых энтить будут разными.
И в конце: мне в маппинге не хватало возможно делать из моделей func_tractrain, func_rotating, etc. Хотелось бы иметь эту возможность.
Government-Man
по первому вопросу: я не силен в кодинге, создании движка и т.д. Однако, я в курсе, что для кодирования сообщения в 100 символов требуется разное количество памяти: если в самой системе кодирования небольшое количество возможных символов, то размер будет маленьким и наоборот. Поэтому я просто предположил, что количество энтитей может напрячь систему.
по второму вопросу все верно. можем даже сравнить cs 1.6 и nexon. По сути одно и тоже, но количество энтитей в нексоне значительно больше. И я не об npc. Там введена система частиц, добавлены дополнительные эффекты. Да, там сам движок изменен, но база то одна.
по третьему вопросу у меня даже назрел возможный план: сама модель объект точечный, с ней будет не так просто оперировать как с брашевым энтити с ориджином. Поэтому есть два пути: сделать как на source движке (там это как-то реализовано, не в давался как) или задать хитбокс модели(у обычных объектов он один) как некий особый браш с изменяемым ориджином и с возможностью возведения в func'и. Не знаю, на сколько это логично и возможно, просто поделился идеей.
>потом по туннелям покататься.
а эта самоеглавное кстате. один из лучших эпизодов наравне с ксеном. вон даже в дуум3 паравозик есть.
>делать из моделей func_tractrain, func_rotating, etc.
дык эта и в хл можно. вообще то, достаточно в fgd добавить копию брашевой энтити с pointclass вместо solidglass и вставить её на карту (только в хл такие штуки коллайдиться не будут). помнится, поезда моделями ещё BUzer (кстати, где он?) в далёком 2002 году делал.
__________________
http://www.moddb.com/mods/monorail-quest
Government-Man удивлюсь. Но я мапперю пока только для 1,6.
thambs а вот не получалось у меня брашевую модель сделать. После компиляции объекта вообще не было,
Тред все еще актуален?
Будет ли изначально возможность цеплять сучности друг к другу?
__________________
А что нет?
__________________
Побуду немного улыбчивым скептиком, спрося: когда движок? Хотя бы публичная альфа? По энтитям бы хотелось внятного movewitha и что-то наподобие quakec для создания логики.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
domded
По датам пока сказать не могу. Последний раз код движка писал в июле, с тех пор не было времени. Для начала надо с релизом джекхаммера в стиме разобраться.
Для логики будет традиционный Lua. На нём же можно будет писать клиентские евенты для оружия (то, что в халфе планировалось в sc-файлах, а на деле осталось в ev_hldm.cpp).
__________________
XaeroX зачем для событий в пару строчек предоставлять целый язык?
ILZM
Для событий и игровой логики. Это один модуль, просто в нём есть клиентская и серверная части.
Но вообще интересная постановка вопроса. Если писать скрипты не на языке, то на чём? В машинных кодах?
__________________
ComradeAndrew
Страшно представить, как на этих абстрактных инпутах/аутпутах делается простая арифметика или конкатенация. Например, "активировать объекты с именами t1-t9 с растущим интервалом с шагом 0.1 сек".
В халфе, например, приходилось вручную писать мульти-менеджер такого вида:
t1 - 0.1
t2 - 0.2
t3 - 0.3
и так далее.
А на луа - простейший цикл типа:
for i = 1, 9, 1 begin FireTargets( 't'..i, i * 0.1 ) end
Причём это можно вписать одной строкой в спец.энтитю trigger_execute и не писать никакие внешние скриптовые файлы.
__________________
XaeroX у меня после amxx плохое мнение о скриптах осталося в силу его ограниченности. А если функционал позволяет, то надо хаками пользоваться, потому что сама игра меняет эти значения. Намного проще все это в коде игры сделать
ILZM
С амхх ситуация осложнялась тем, что код движка был закрыт, и из него нельзя было вывести наружу нужные амхх фичи. У меня такой проблемы нет.
__________________
Дядя Миша
Ну, во-первых, это был вопрос из разряда "планируется-не планируется", а во-вторых, голда и ксаш сейчас представляют для себя интерес только для обучения, ничего серьёзного и коммерческого кроме "ещё-одного-десматча-для-халфы" с прицелом на перспективу пройти в стим и зашибать бабки не получится сделать, как ни крути. поэтому никто и не прикручивает этот ваш куси ни к тому, ни к другому. потому что смысла нет от слова совсем. будет хт, который будет представлять коммерческую ценность и иметь конкурентные преимущества, тогда и будут допиливать.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша
Волатила, скорее всего, не будет ничем. ИМХО, конечно. Так же как и НТ, и текущий ксаш. Если, конечно, авторы не дадут вменяемую цифру на лицензирование и плюшки в виде удобных редакторов ( хотя бы ), а так же современного рендера. Всё более-менее вышеперечисленное и много-много больше искаропки предоставляет тот же край, юнити и уеч. И исходники у них есть, и никто не просит за доведение хотя бы до уровня 96 ( возвращаясь к баранам про куси и вменяемую систему скриптинга ) бешеных денег.
domded
Волатила разрабатывается не для абстрактных проектов, а для вполне конкретных. Т.е. продавать мы будем не движок, а игры на нём. Пользователей же я нахожу через личные знакомства.
__________________
А, если это пишется как движок для внутреннего использования, то вопросов нет.
domded
А ты думал, мы тут убийцу Юнити и УЕ4 пишем?
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
nemyax
Нормально поживает. В разработке.
__________________
Временная зона GMT. Текущее время 01:13. | Показать все 64 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024