HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Эвент против мессаги.
Страницы (2): [1] 2 »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
Ghoul [BB]
МРАЗЬ ОПАСНАЯ

Дата регистрации: Jan 2006
Проживает: ...и прожигает...
Сообщений: 2567

Рейтинг



Эвент против мессаги.

Пришло время разрешить наш давний спор с ~Х~ относительно того, что экономичнее для траффика и более стабильно в работе: эвент или мессадж.
Моя история: много зим тому, на этапе программирования HLWE, я получил консультацию по асечке от того, чьё имя на данном форуме не надлежит произносить в слух, и память о ком подлежит забвению....

Так вот, эвенты были сделаны Вальве впопыхах,механизм их не отлажен, работают не стабильно, периодически пакеты данных не доходят, а координаты передаются не точно.
Ну и, конечно, они громоздкие. Если нужно передать, скажем, индекс энтити и её координату, то нам требуется 7 байт, а эвент пожирает 255.

Но товарищ ~Х~ всячески за эвенты. И он напрочь отметает все вышеприведенные аргументы. И поспорить сложно - все-таки он хороший погромист и написал очень стабильную платформу, а так же над траффиком трясется, как скупой над медным грошиком.

Поэтому и обращаюсь я к вам, к тем, кто скрывается за красивыми аватарками, с такими словами: не надо мне ни денег, ни еды, ни работы, ни подработки, а помогите лишь разрешить этот давний спор!!!

__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.

Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo

Сообщить модератору | | IP: Записан
Сообщение: 150897

Старое сообщение 11-10-2015 06:36
- За что?
PLut
Creator

Дата регистрации: Jun 2009
Проживает: Санкт-Петербург
Сообщений: 1220
Возраст: 29

Рейтинг



Ghoul [BB] В последнее время предпочитаю эвенты, не вдавался в подробности, как и что работает, просто пользуюсь и доволен.

__________________
Base Defense on Steam, ModDB

Сообщить модератору | | IP: Записан
Сообщение: 150898

Старое сообщение 11-10-2015 07:29
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34527
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Вопрос можно задать иначе: что лучше, молоток или отвёртка?

Прежде, чем задаваться такими вопросами, нужно хорошо понять, что такое эвенты и зачем Вальва их добавила в движок? (Впопыхах или нет - я не знаю, но работают они отлично и задачу свою решают на все сто - в частности, с помощью эвентов я снизил трафик хедкрап френзе в 2-3 раза). Выбор между эвентом и мессагой всегда очевиден, точно так же как между молотком и отвёрткой: мало кому придёт в голову забивать в доску шуруп, равно как и стучать отвёрткой по гвоздю. Другой вопрос, что если молодые и неопытные погромизты рассматривают эвенты как часть системы клиентских пушек (что, кстати говоря, недалеко от истины) и юзают их исключительно там, а всякие train pitch adjust считают мелким недоразумением, то опытные - начинают эти эвенты тащить и куда надо, и куда не надо, что приводит к разрухе в головах и путанице в коде.

Цитата:
Ghoul [BB] писал:
Если нужно передать, скажем, индекс энтити и её координату, то нам требуется 7 байт, а эвент пожирает 255.

Я долго думал, считал так и эдак, но так и не смог понять, откуда взяты числа 7 и 255? Поясни, пожалуйста, как считал ты.
Цитата:
Ghoul [BB] писал:
периодически пакеты данных не доходят, а координаты передаются не точно.

Чтобы евент стопроцентно доходил, надо посылать его с флагом FEV_RELIABLE. Ты же не удивляешься, что мессаги MSG_BROADCAST или MSG_PVS могут не дойти? Так и тут.
Координаты всегда передаются неточно, т.к. посылаются в размере 16 бит. А размер флоата, как известно, чуть побольше.

Сообщить модератору | | IP: Записан
Сообщение: 150899

Старое сообщение 11-10-2015 08:13
-
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



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

Не совсем очевиден. Мало примеров использования. Вот с помощью мессаг делают всё, что не лень. А с помощью эвентов только пушки, да гибсы с дверьми в DMC.

Сообщить модератору | | IP: Записан
Сообщение: 150900

Старое сообщение 11-10-2015 08:37
- За что?
Ghoul [BB]
МРАЗЬ ОПАСНАЯ

Дата регистрации: Jan 2006
Проживает: ...и прожигает...
Сообщений: 2567

Рейтинг



Цитата:
XaeroX писал:
Я долго думал, считал так и эдак, но так и не смог понять, откуда взяты числа 7 и 255? Поясни, пожалуйста, как считал ты.



Ну вот смотри, браток:

насчет мессаги скажу точно, откуда размер:

gmsgTrail = REG_USER_MSG("Trail", 9);

void FX_Trail( Vector origin, int EntIndex, int Type )
{
MESSAGE_BEGIN( MSG_ALL, gmsgTrail );
WRITE_COORD( origin.x );
WRITE_COORD( origin.y );
WRITE_COORD( origin.z );
WRITE_SHORT( EntIndex );
WRITE_BYTE( Type );
MESSAGE_END();
}
Сорри, ошибся, не 7 а 9. Но разница не велика.

Про 255 доказать не могу, но те же несколько лет назад где-то читал.
Но даже приблизительно можно прикинуть размер, исходя из того, что мы знаем структуру эвента и нулевые параметры все равно передаются.

PLAYBACK_EVENT_FULL(flags(1byte), entindex(2bytes), event name(2bytes), 0(1byte), origin(6bytes), angles(6bytes), 0.0(2bytes), 0.0(2bytes), 0(1byte), 0(1byte), 0(1byte), 0(1byte));

Хм... 26 байт...
Возможно, еще где-то что-то передается в эвенте? Точно помню цифру в 255 байт на эвент....

__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.

Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo

Сообщить модератору | | IP: Записан
Сообщение: 150901

Старое сообщение 11-10-2015 08:44
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34527
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
Ghoul [BB] писал:
нулевые параметры все равно передаются

А эту глупость, браток, ты тоже не помнишь, где читал?

Добавлено 11-10-2015 в 15:10:

Цитата:
Ku2zoff писал:
Не совсем очевиден. Мало примеров использования.

Если знаешь теорию - примеры использования не так уж важны. Сам сколько угодно примеров напишешь.

Добавлено 11-10-2015 в 15:10:

Цитата:
Ghoul [BB] писал:
Точно помню цифру в 255 байт на эвент....

Четверть килобайта. Ну сам подумай - адекватно ли?

Сообщить модератору | | IP: Записан
Сообщение: 150903

Старое сообщение 11-10-2015 09:10
-
Ghoul [BB]
МРАЗЬ ОПАСНАЯ

Дата регистрации: Jan 2006
Проживает: ...и прожигает...
Сообщений: 2567

Рейтинг



Цитата:
XaeroX писал:
А эту глупость, браток, ты тоже не помнишь, где читал?


Я читал, что мессаги передаются как массив данных. Не?

Добавлено 11-10-2015 в 16:36:

Цитата:
XaeroX писал:
Четверть килобайта. Ну сам подумай - адекватно ли?


Не адекватно.
а мои подсчеты ближе к реальным размерам?

Добавлено 11-10-2015 в 16:49:

Я ещё слишком юн, и мне предстоит многому научиться, поэтому не суди слишком строго, браток, а лучше расскажи об эвентах всю правду, как на духу.
это позволит развеять мифы вокруг них и, думаю, будет полезно не только мне.

__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.

Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo

Сообщить модератору | | IP: Записан
Сообщение: 150910

Старое сообщение 11-10-2015 13:49
- За что?
Government-Man
Призрак

Дата регистрации: Apr 2006
Проживает: N/A
Сообщений: 3507

Рейтинг



Награды
 
[1 награда]


XaeroX
Ты б лучше про эвенты да про мессаги рассказал подробнее.
А как молоток и отвертку использовать мы и сами знаем - мы ж программисты в конце концов.

Сообщить модератору | | IP: Записан
Сообщение: 150914

Старое сообщение 11-10-2015 15:00
- За что?
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4423
Возраст: 34

Рейтинг



Цитата:
XaeroX писал:
мало кому придёт в голову забивать в доску шуруп

Кроме тех рабочих которых я видел в начальной школе в конце 90х. Они объяснили, что шуруп-универсальная вещь, хочешь забивай, хочешь завинчивай.

Сообщить модератору | | IP: Записан
Сообщение: 150916

Старое сообщение 11-10-2015 15:07
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34527
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
Government-Man писал:
Ты б лучше про эвенты да про мессаги рассказал подробнее.

На самом деле я бы очень хотел подробно рассказать.
Но сейчас мне не хочется.
В принципе, в сорцах ксаша всё довольно прозрачно.
Может, однажды у меня появится время и я напишу статейку на эту тему.

Сообщить модератору | | IP: Записан
Сообщение: 150917

Старое сообщение 11-10-2015 15:16
-
Ghoul [BB]
МРАЗЬ ОПАСНАЯ

Дата регистрации: Jan 2006
Проживает: ...и прожигает...
Сообщений: 2567

Рейтинг



Вот видишь, браток, нам нужно сейчас. А завтра уже будет поздно.
Несвоевременность - худшая драма....

__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.

Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo

Сообщить модератору | | IP: Записан
Сообщение: 150953

Старое сообщение 13-10-2015 09:39
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34527
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Ghoul [BB]
Вам 15 лет было по-барабану, как работают эвенты, вы спокойно обходились без них - а тут вдруг срочно понадобилось?

Сообщить модератору | | IP: Записан
Сообщение: 150955

Старое сообщение 13-10-2015 09:48
-
~ X ~
offline

Дата регистрации: Oct 2005
Проживает: Архангельск
Сообщений: 3619

Рейтинг



Награды
 
[1 награда]


Цитата:
XaeroX писал:
Вам 15 лет было по-барабану, как работают эвенты, вы спокойно обходились без них - а тут вдруг срочно понадобилось?



Для меня основное преимущество эвентов - FEV_UPDATE (когда при накоплении одинаковых сообщений в очереди отсылается только самое новое). Для вальвы - перспектива (не сбывшаяся) написания скриптов.

А ещё их может быть чуть ли не 1024 штуки (забыл уже точное число), а мессаг - только 127 или 191 (в 1111 число увеличили... чуть-чуть).

Чем плохи эвенты - фиксированным набором параметров. Но тут иная парадигма - эвент - это "событие", тут не предусмотрена кастомизация. А вот мессагой с сервера всегда было принято передавать цвет, кадр, размер, время, спрайты и прочие атрибуты эффектов. Мне, как человеку, который стремится сделать всё настраиваемым, это ни разу не нравится. Но так оно всегда: выбираешь между тёплым и мягким.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]

Сообщить модератору | | IP: Записан
Сообщение: 150990

Старое сообщение 14-10-2015 08:27
- За что?
Ghoul [BB]
МРАЗЬ ОПАСНАЯ

Дата регистрации: Jan 2006
Проживает: ...и прожигает...
Сообщений: 2567

Рейтинг



Цитата:
~ X ~ писал:
Мне, как человеку, который стремится сделать всё настраиваемым, это ни разу не нравится



А кто настраивать то будет, браток? Я наоборот считаю, что пользователь никуда не полезет и ему абсолютно плевать, как работает. а настраивать будут только те, кто пишет модификации. Я пока таких только двоих могу назвать.
а куча лишних параметров тоько с толку сбивает. Знаю и сталкиваюсь постоянно с этим в твоем коде. Все должно быть жёстко.

__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.

Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo

Сообщить модератору | | IP: Записан
Сообщение: 150999

Старое сообщение 14-10-2015 09:46
- За что?
~ X ~
offline

Дата регистрации: Oct 2005
Проживает: Архангельск
Сообщений: 3619

Рейтинг



Награды
 
[1 награда]


Цитата:
Ghoul [BB] писал:
Все должно быть жёстко.

Действительно - миллионы мухтысячи яблочников чувствуют жёсткость у себя в ректуме - и живут же. Нет, мне так не пойдёт. Я хочу чтоб всё было настраиваемо админом сервера - даже цвет луча гаусса.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]

Сообщить модератору | | IP: Записан
Сообщение: 151016

Старое сообщение 14-10-2015 15:03
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 13:53. Новая тема    Ответить
Страницы (2): [1] 2 »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Эвент против мессаги.
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

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