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

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)


Отправлено nemyax 09-08-2019 в 06:40:

Иисус, ваш терапевт имеет лот, чтобы ответить для!
Английский язык через канпелятор не прогонишь


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

Если вы хотите мой совет - дайте это дерьмо вверх!

__________________
My Projects: download page

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

Цитата:

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


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

Пришло время избавиться от структурки entvars_t. Ну это которая pev->
Эта зараза пронизывает всю серверную часть движка, поэтому процесс будет непростым.

__________________
My Projects: download page

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

Цитата:

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


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

>https://hlfx.ru/forum/attachment.ph...=&postid=182326
там блуум от неба или?

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


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

годреи это. Да они есть в финальной версии XashXT, сюда по наследству попали.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Ku2zoff 10-08-2019 в 12:54:

Цитата:
Дядя Миша писал:
Пришло время избавиться от структурки entvars_t.

А что будет взамен? Чтобы и на клиенте и на сервере была одна и та же структура для синхронизации?


Отправлено a1batross 10-08-2019 в 14:34:

Ku2zoff но на клиенте нет entvars_t. Да и энтварсы не для синхронизации. Для этого entity_state_t, а вот что с ним Дядя Миша решит делать...

Добавлено 10-08-2019 в 17:34:

string_t я надеюсь тоже под нож?

__________________
Xash3D FWGS форк


Отправлено XaeroX 10-08-2019 в 14:39:

Цитата:
a1batross писал:
string_t я надеюсь тоже под нож?

Ага, заменить на std::string!

__________________

xaerox on Vivino


Отправлено thambs 10-08-2019 в 14:46:

XaeroX
А чем он плох? (без троллинга, действительно любопытно).

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


Отправлено a1batross 10-08-2019 в 14:53:

XaeroX как вариант. Хотя что-то мне подсказывает, что Дядя Миша наврядли что-то использует из STL.

Добавлено 10-08-2019 в 17:53:

thambs string_t-то? Ну, в первую очередь, это рудимент от кваки, где виртуальная машина работала со строками довольно бедно и фактически лишь давала идентифактор. Может я тут где-то ошибаюсь.

Valve запихнули проблему ещё дальше, сделав из string_t просто разницу указателей. В итоге литералы у нас идут в MAKE_STRING, а генерируемые строки в ALLOC_STRING.

__________________
Xash3D FWGS форк


Отправлено XaeroX 10-08-2019 в 15:00:

Цитата:
thambs писал:
А чем он плох?

Навскидку: динамическая реаллокация, оверхед по памяти, лёгкость пессимизации при замене string_t, который привычно передаётся по значению, потенциальная непредсказуемость поведения из-за мути в стандарте (SOO, COW).

Добавлено 10-08-2019 в 22:00:

Цитата:
a1batross писал:
Ну, в первую очередь, это рудимент от кваки

Один дурак сказал, и все начали повторять про рудимент...
Цитата:
a1batross писал:
В итоге литералы у нас идут в MAKE_STRING, а генерируемые строки в ALLOC_STRING.

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

__________________

xaerox on Vivino


Отправлено Дядя Миша 10-08-2019 в 16:26:

Цитата:
Ku2zoff писал:
Чтобы и на клиенте и на сервере была одна и та же структура для синхронизации?

Можно сделать чтобы клиент и сервер были в одной дллке, точнее говоря, описание энтить.

Цитата:
a1batross писал:
string_t я надеюсь тоже под нож?

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

Цитата:
a1batross писал:
Valve запихнули проблему ещё дальше, сделав из string_t просто разницу указателей

оно и в кваке так было.

Добавлено 10-08-2019 в 19:26:

Цитата:
a1batross писал:
Для этого entity_state_t, а вот что с ним Дядя Миша решит делать...

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

__________________
My Projects: download page

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

Цитата:

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


Отправлено a1batross 10-08-2019 в 18:54:

XaeroX ну черт его знает. В условиях отсутствия ВМ я не вижу смысла так работать со строками.

Я на самом деле и не против. Просто string_t должен быть явно помечен как платформозависимый и вообще не давать возможности разработчику записывать его в файл(о_О), передавать по сети(что только в воспаленное сознание не придёт), сравнивать его численное значение с другими, помимо равенства наверное, да и вообще не иметь доступа к нему именно как идентификатору.

Именно он был и есть самой большой проблемой при порте на 64-битные указатели.

__________________
Xash3D FWGS форк


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

Цитата:
a1batross писал:
В условиях отсутствия ВМ я не вижу смысла так работать со строками.

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

__________________
My Projects: download page

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

Цитата:

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


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

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

__________________
My Projects: download page

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

Цитата:

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


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

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