HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Кто-нибудь имел дело с Instanced Baselines?
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
 XaeroX
Crystice Softworks

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

Рейтинг



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


Кто-нибудь имел дело с Instanced Baselines?

client.cpp, строка 1687

Довольно оригинальный способ оптимизации сетевого трафика для часто создающихся серверных объектов (ракет, гранат, веапонбоксов и т.п.)
Сами по себе инстансед-вазелины сжирают дополнительные 6 бит трафика (по крайней мере, в халфе), но позволяют сэкономить гораздо больше.
Удивительно то, что в самой халфе они почему-то не применяются, хотя код для них полностью написан.

Может, кто пробовал их использовать? Или хотя бы видел мод, где они заюзаны?
В волатиле, понятное дело, они будут использоваться, но хотелось бы всё-таки взглянуть на реальный пример из голдсорса.

__________________

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

Старое сообщение 08-10-2014 21:10
-
~ X ~
offline

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

Рейтинг



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


Да.

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

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

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

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

Рейтинг



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


Круто! Это всё, что я хотел услышать!

__________________

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

Старое сообщение 09-10-2014 09:48
-
 XaeroX
Crystice Softworks

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

Рейтинг



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


Похоже, товарищ ~ X ~, уподобившись пятачковоносым любителям сала, бессовестно соврал. В сорцах XDM функция CreateInstancedBaselines столь же пустая, сколько и в обычном хлсдк.
Ну что, никто не создавал инстансед-вазелины, что ли?

__________________

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

Старое сообщение 12-10-2014 21:21
-
~ X ~
offline

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

Рейтинг



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


XaeroX your sources are old.

C++ Source Code:
1
// XDM3037: since valve claims this will help reducing traffic...
2
const char *g_InstancedBaselineEntities[] =
3
{
4
  "a_grenade",
5
  "bolt",
6
  //	"env_projectile",
7
  "flame_cloud",
8
  "grenade",
9
  "hornet",
10
  "l_grenade",
11
  "strtarget",
12
  "plasmaball",
13
  "rpg_rocket",
14
  SATCHEL_CLASSNAME,
15
  "monster_snark",
16
  "teleporter",
17
  TRIPMINE_CLASSNAME,
18
  NULL// !!! terminator
19
};
20
 
21
/*
22
================================
23
CreateInstancedBaselines
24
 
25
Create pseudo-baselines for items that aren't placed in the map at spawn time, but which are likely
26
to be created during play ( e.g., grenades, ammo packs, projectiles, corpses, etc. )
27
================================
28
*/
29
void CreateInstancedBaselines ( void )
30
{
31
  entity_state_t ibaseline;
32
  int iret, i=0;
33
  // Create any additional baselines here for things like grendates, etc.
34
  while (g_InstancedBaselineEntities[i] != NULL)
35
  {
36
    CBaseEntity *pEntity = CBaseEntity::Create(MAKE_STRING(g_InstancedBaselineEntities[i]), g_vecZero, g_vecZero, g_vecZero, NULL, 0);
37
    if (pEntity)
38
    {
39
      memset(&ibaseline, 0, sizeof(ibaseline));
40
      CreateBaseline(0, 0, &ibaseline, pEntity->edict(), 0, g_vecZero, g_vecZero);
41
      iret = ENGINE_INSTANCE_BASELINE(pEntity->pev->classname, &ibaseline);
42
#ifdef _DEBUG
43
      SERVER_PRINT(UTIL_VarArgs("CreateInstancedBaselines(%s): %d\n", g_InstancedBaselineEntities[i], iret));
44
#endif
45
      REMOVE_ENTITY(pEntity->edict());
46
    }
47
    ++i;
48
  }
49
}


Это ещё 3037. В 3038 мб ещё что-то поменялось.

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

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

Старое сообщение 13-10-2014 07:27
- За что?
 XaeroX
Crystice Softworks

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

Рейтинг



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


~ X ~
Спасибо.
А где версию в сорцах посмотреть можно?
И ещё: ты замеры с включением-выключением sv_instancedbaselines проводил, выигрыш реально был?

__________________

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

Старое сообщение 13-10-2014 07:57
-
~ X ~
offline

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

Рейтинг



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


XaeroX честно говоря, ВАААЩЩЩЕ не помню, что и как оно дало. Делалось сначала из соображений "ни у кого нету, а у меня будет!" (не путать "вот ещё фича, которая угробит Ксаш при старте").

Последние сорцы могу дать, но позже. В обмен на сорцы волатилы

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

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

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

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

Рейтинг



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


~ X ~
Так может, это только увеличило трафик? Я, например, точно говорю, что каждый инстансед-вазелин это дополнительные 6 бит каждый снапшот плюс на сколько-то увеличивается сигнон-датаграмма.

Цитата:
~ X ~ писал:
ни у кого нету, а у меня будет!

Вот и вальва так рассуждала, наверное. Но потом почему-то не заюзала. Может, тесты провела?

__________________

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

Старое сообщение 14-10-2014 15:20
-
a-kush-er
</kush>

Дата регистрации: Sep 2011
Проживает: (void)
Сообщений: 257

Рейтинг



//post200

Цитата:
XaeroX писал:
Может, тесты провела?

или наоборот

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

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



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


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

Временная зона GMT. Текущее время 14:38. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Кто-нибудь имел дело с Instanced Baselines?
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

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

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

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

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