HLFX.Ru Forum Страницы (251): « 1 2 3 [4] 5 6 7 8 » ... Последняя »
Показать все 3764 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Наши проекты (https://hlfx.ru/forum/forumdisplay.php?forumid=1)
-- XashNT: блог разработчика (https://hlfx.ru/forum/showthread.php?threadid=5297)


Отправлено thambs 12-08-2019 в 20:55:

Дядя Миша
это из-за этого всякие полезные параметры называются неочевидными ключами вроде netname и подобного?

__________________
http://www.moddb.com/mods/monorail-quest


Отправлено Дядя Миша 12-08-2019 в 21:25:

Именно так, да. В халфе довольно сложная возня с объявлением сейв-рестора, чтобы в новой энтите сохранить хотя бы одну переменную, надо скопипастить довольно большой кусок кода и там поперименовывать всё. А потом еще и в KeyValue добавить лишнее условие, народ (и я в том числе), предпочитали брать уже готовые переменные. Вот в кваке там с этим было хорошо, объявил переменную с точкой и она у тебя уже и из настроек сразу читается и в сейв пишется.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено thambs 12-08-2019 в 21:32:

Дядя Миша
А ты как теперь делаешь эту систему, там какая-то сериализация или?

__________________
http://www.moddb.com/mods/monorail-quest


Отправлено Дядя Миша 12-08-2019 в 21:54:

Там с 12-го года другая сериализация, похожая на ту что в сорсе.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено FreeSlave 13-08-2019 в 01:15:

Цитата:
Дядя Миша писал:
Ну и стараюсь убрать эту порочную практику, когда для новых энтить вовсю использовались переменные из entvars_t подходящие по типу, чтобы не возится с описанием IMPLEMENT_SAVERESTORE и прочей гадости. Помоему это Лаури первым придумал, этот фантазёр.


Этим занимались сами Valve. body у gibshooter в качестве количества сабмоделей, netname у монстров в качестве названия сквада, message в самых разных смыслах и т.д.

__________________
I'm on github
I'm on opendesktop.org


Отправлено XaeroX 13-08-2019 в 06:17:

Мне кажется, энтварсы очень удобная штука. Они позволяют шарить основные параметры энтитей между разными библиотеками, и в том числе с ботами и скриптовой системой (в волатиле это например Lua). А переиспользуются они в целях экономии памяти, и в этом с точки дизайна нет ничего плохого. Единственное что я делаю - добавляю в класс простенькие геттеры/сеттеры, чтобы по ходу кода потом не гадать, что же тут значит pev->body.

__________________

xaerox on Vivino


Отправлено Дядя Миша 13-08-2019 в 06:37:

энтварсы для разработчика это UB в первую очередь, потому что нет никакого соглашения какие переменные смотрит движок, какие он меняет, на какие реагирует, на какие возможно будет реагировать в дальнейшем.
В квейке была виртуальная машинка и там было совсем другое дело.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 13-08-2019 в 06:53:

Дядя Миша
Движок реагирует на очень небольшое число энтварсов, и как правило, они имеют вполне чёткое предназначение, типа classname или origin. Но я согласен, работу движка с энтварсами надо минимизировать, они нужны пользовательским дллкам, и конечно же скриптовой системе, которая ничего не знает про pvPrivateData.

__________________

xaerox on Vivino


Отправлено Дядя Миша 13-08-2019 в 07:30:

Цитата:
XaeroX писал:
Движок реагирует на очень небольшое число энтварсов, и как правило, они имеют вполне чёткое предназначение, типа classname или origin.

я тебе про то, что в халфе получилось. Там как минимум половина энтварсов просматривается движком без чёткой логики со пользовательской стороны. Скажем pev->flags используется частично. Некоторые флаги движок не смотрит, причём они даже по диапазонам не разделены. Ну как повизёт.
Удачный интерфейс - это явный каллбэк, а не вот такой вот просмотр приватдаты по тихому. А в той же кваке движок мог даже пользовательские переменные искать из вирт.машины, она же как решето в этом смысле. И менять он их тоже мог. Нет в таком подходе ничего хорошего.

C++ Source Code:
1
struct edict_s
2
{
3
  int		flags;		// edict->flags
4
  float		freetime;		// sv.time when the object was freed
5
  int		serialnumber;	// increment each time when entity was freed
6
  link_t		area;		// linked to a division node or leaf
7
  void*		pvPrivateData;	// alloced, freed and used by DLLs
8
};

мой эдикт вот так выглядит сейчас. Единственное поле, которое смотрит движок - это flags. В остальные он не лезет.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 13-08-2019 в 07:45:

Дядя Миша
А если ты потом захочешь скрипты прикрутить, ну или блупринты какие-нибудь, как ты туда инфу о классах протащишь?
Не знаю, как в новом УЕ, а в старом классы были на UnrealScript и к ним был доступ через специальный экспорт, где перечислялись "внешние" поля. Но на плюсах ты так легко не сделаешь, по идее.

__________________

xaerox on Vivino


Отправлено Дядя Миша 13-08-2019 в 07:58:

Цитата:
XaeroX писал:
как ты туда инфу о классах протащишь?

ну посмотри как в третьем дууме сделано. Там скрипт является продолжением класса, объявленного в движке и наследует его поля. Очень оригинально, я такого больше нигде не видел.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 13-08-2019 в 08:11:

Цитата:
Дядя Миша писал:
Очень оригинально, я такого больше нигде не видел.

Емнип, классы UnrealScript тоже наследовались от базовых движковых.

__________________

xaerox on Vivino


Отправлено Дядя Миша 13-08-2019 в 11:41:

Я Unreal никогда толком не ковырял, так ничего сказать не могу.

Добавлено 13-08-2019 в 14:41:

Думаю настала пора полностью отказаться от лайтмапы, в NT будет только динамическое освещение.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено thambs 13-08-2019 в 11:44:

Дядя Миша
А на каком варианте для индиректа ты решил остановиться? А вообще жаль, лайтмэпы дюже православны.

__________________
http://www.moddb.com/mods/monorail-quest


Отправлено XaeroX 13-08-2019 в 12:07:

Цитата:
Дядя Миша писал:
в NT будет только динамическое освещение.

Главное, чтобы оно не выглядело хуже лайтмапового.

__________________

xaerox on Vivino


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

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