![]() |
Страницы (2): [1] 2 » Показать все 20 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Xash3D (https://hlfx.ru/forum/forumdisplay.php?forumid=14)
-- Виртуальная машина в Xash (https://hlfx.ru/forum/showthread.php?threadid=1953)
Виртуальная машина в Xash
Как вы наверное помните, в январе этого года, я создал небольшой опрос - что вам удобнее - виртуальная машина из кваки (пускай и сильно доработанная) или же обычные дллки как в half-life.
Тогда большинство проголосовало за обычные дллки, и я их прикрутил.
Но виртуальную машину не стал выбрасывать (на ней меню работало),
на данный момент я перенес меню в движок и надобность в виртуальной машине отпала окончательно. Однакож выбрасывать её совершенно, как-то жалко что ли. У меня есть мысль как-то прикрутить её к серверу, и дать возможность писать на ней простенькие энтити.
С другой стороны - это только лишнее усложнение системы, на мой взгляд.
Вообщем я долго размышлял над этим вопросом и так и не пришел к какому-либо решению.
Поэтому снова обращаюсь к вам за советом: если VM нужна - предложите механизмы её имплементации.
Сразу предупреждаю - херню в стиле "прикрути её к серверу" писать не надо. Механизм интеракции распишите в деталях и в нескольких словах
о вазимодействии entvars игровой библиотеки с entvars виртуальной машины. Уже хотя бы потому что, что виртуальная машина не понимает указатели в прямом их написании, следовательно там юнионов надо будет понасажать, хитрых конверторов указателя в номер энтити и прочего.
Поэтому, повторюсь, писать строго по делу.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Виртуальная машина а ля ку1, имхо, отжила свое. Выбрасывай ее на свалку истории.
__________________
Дядя Миша
Раз уже решил все на си писать, то выкидывай её нафиг, и не парься.
Если уж прикручивать скрипты, то че-нить помощнее, типа луа.
BUzer да дело-то не в мощности. Мне бы пример какой-нибудь - как оно в совокупности пригодится. Ну вот есть у нас hl.dll, который может исполнять скрипты виртуальной машины - где такое счастье может понадобится?
Если, скажем, просто вводные настройки монстров\оружия поменять, так для этого виртуальной машины не надо.
Может эвенты, как в халфе? там помнится был код с условиями.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша свою xash weapon system перетащи на эту виртуальную машину. Или использовать скрипты, к примеру, для построения сложных скриптовых сцен, с ветвистыми диалогами и неоднозначным развитием событий ?
__________________
кто к нам с чем зачем, тот от того и того...
SanYa я думал об этом.
Но опять же - народ толком не может простенькие скрипты освоить, из старой версии.
Мысль такая, что машину следует использовать для выполнения множества маленьких интерпретируемых скриптов (точнее говоря их компиляция будет производится на этапе запуска движка).
Кстати хотелось бы послушать Ксерокса, как у него в волатиле уживаются дллка с Lua. Про общую идеолгию тасказать.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Точно, ведь SanYa дельную вещь сказал - скриптовый язык можно использовать для маппинга. Например, встроить редактор скриптов прямо в редактор уровней. В варкрафте-3 примерно так и сделано - начинающие мапмейкеры могут собирать триггеры из заготовок, а продвинутые могут изучить скриптовый язык и творить всякие мощные штуки.
BUzer ты разве не это же советовал, когда говорил про луа?
__________________
Подумалось: было бы неплохо иметь возможность писать свои ентити на qc и докидывать их вместе с картой. Допустим, захотелось маперу сделать паровоз - колесо-то соберет, а вот рычаг от поршня до обода уже нет, надо свой код писать. Ну создал porshen.qc, накодил там func_porshen, скомпилил в porshen.dat и пользует его, держа в папочке scripts, а дивг эту папочку смотрит на предмет лежащих там минипрогсов - это могло бы решить проблемы модеров с закрытостью кода некоторых модов.
ДЛЯ ТУПЫХ: Так можно было бы сделать партикли в контре.
__________________
"Злобным гениям не нужна харизма." © Shooter__Andy
"Making stuff for an "old ugly game" can be ten times more fun than grinding on a map for a dull, next-gen title." © Lunaran
Scrama ну так для этих целей и можно взять луа. Зачем заставлять людей мучиться с куси? Даже я в нем ни бум-бум, а что говорить про новое поколение, которое выросло на хл2 и ждалкере?
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша так я ничего не пробовал делать на куси.
Я помню только, что там аргументы идут до имени функции, меня это в такой шок повергло, что я даже не стал в этом куси ковыряться.
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Да ужасно. Один ".float" чего стоит
__________________
XaeroX точка указывает на принадлежность к entvars_t
Scrama сделать можно, но исключительно как некий энтмод для конкретной карты. Т.е. основные энтити один фиг останутся в дллке, а если что-то не будет найдено, то возъмется из progs.dat.
Правда при такой системе не вполне ясно как использовать все плюшки. предоставляемые server.dll - ну тот же Movewith к примеру.
Можно конечно movewith вынести в движок, но тогда народ будет страдать, что вся физика в движке закрыта.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Временная зона GMT. Текущее время 22:23. | Страницы (2): [1] 2 » Показать все 20 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024