HLFX.Ru Forum
Показать все 9 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Кто-нибудь имел дело с Instanced Baselines? (https://hlfx.ru/forum/showthread.php?threadid=4486)


Отправлено XaeroX 08-10-2014 в 21:10:

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

client.cpp, строка 1687

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

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

__________________

xaerox on Vivino


Отправлено ~ X ~ 09-10-2014 в 09:47:

Да.

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


Отправлено XaeroX 09-10-2014 в 09:48:

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

__________________

xaerox on Vivino


Отправлено XaeroX 12-10-2014 в 21:21:

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

__________________

xaerox on Vivino


Отправлено ~ X ~ 13-10-2014 в 07:27:

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]: [email protected]


Отправлено XaeroX 13-10-2014 в 07:57:

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

__________________

xaerox on Vivino


Отправлено ~ X ~ 14-10-2014 в 14:15:

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

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

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


Отправлено XaeroX 14-10-2014 в 15:20:

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

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

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

__________________

xaerox on Vivino


Отправлено a-kush-er 14-10-2014 в 16:00:

//post200

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

или наоборот


Временная зона GMT. Текущее время 09:55.
Показать все 9 сообщений этой темы на одной странице

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