Сегодня копался в коде смены оружий (возвращал анимацию holster для тутора с зажигалкой). На сервере никаких проблем со сменой нет. А вот клиентские пушки дают неприятный глюк: текущее оружие убирается (проигрывается holster), и, перед тем как достанется новое (проиграется deploy), модель нового оружия появляется на экране на долю секунды, моргает, а потом нормально достаётся. Уж сколько я копал hl_weapons.cpp, вменяемого решения не нашёл.
Глянул XDM, ведь у тов. ~X~ эти анимации норм играются. Вроде всё сравнил и проверил - ни в какую не хочет работать нормально. Намучавшись, решил обойтись временным решением, как в туторе Дяди Миши.
Ну вот, собственно, решил вырезать клиентские пушки к чёрту из своего мода, и потом (если желание не пропадёт) написать с нуля свою систему, чтобы не разгребать говнокод Valve. В связи с этим интересуюсь следующим:
1. Насколько сильно вырастет сетевой трафик без клиентских пушек? Или наоборот уменьшится?
2. Будут ли оружия лагать сильнее при пинге в районе 50-100 мс?
3. Что ещё это за собой повлечёт?
4. Стоит ли вообще пытаться переписать эту систему?
Самому интересно было бы услышать соображения на этот счёт более продвинутых погромистов.
От себя скажу, что в ХЛВЕ не было ни одной клиентской пушки и они работали. Это даже позволило выйти за лимит в 32 оружия.
__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.
Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo
Для начала нужно ответить на вопрос, зачем вообще нужны клиентские пушки?
Что они дают? И какие проблемы привносят?
Если интересно, могу попробовать ответить на эти вопросы, но попозже. Тем более мне вскоре предстоит самому предиктинг оружия реализовать в волатиле.
XaeroX писал: зачем вообще нужны клиентские пушки?
Что они дают? И какие проблемы привносят?
Я думаю вот что:
Нужны для уменьшения лагов при игре на медленном соединении. Не уверен, но по задумке Valve эта система работает быстрее, чем старая, когда все пушки серверные. Клиентские пушки тчинкают прямо на клиенте у локального игрока, поэтому нет лагов с анимациями, звуками и проч.
Проблем с ними море. По крайней мере в том виде, в котором они реализованы на данный момент. Клиентская часть, ИМХО, написана ну прям уж совсем на скорую руку. Отсюда рассинхрон временами, а из-за него все прочие проблемы.
XaeroX писал: Для начала нужно ответить на вопрос, зачем вообще нужны клиентские пушки?
Что они дают? И какие проблемы привносят?
Если интересно, могу попробовать ответить на эти вопросы, но попозже.
Кстати, да.
Будем ждать подробностей.
__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.
Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo
Представьте себе такую последовательность передачи сигнала:
(мозг) - (рука) - (мыккой тык!) - (директынпут) - (цл длл) - (сетевой стек) - и н те р н р не р не е е е н ре н е т (это была шутка про TCP/UDP, кстати) - (сервер длл) - и нт ер н ет - (сетевой стек) - (цл длл) - (код онемаций) - (видюха) - (монитор) - (глаза) - (мозг).
Видите, сколько всего мешает жить? Я бы скаал, это не много.
Это - ДОХРЕНА!
И если у тебя есть хоть какая-то возможность убить это время - ты ОБЯЗАН это сделать.
Но вот КАК это сделать - вопрос спорный. Предсказание хитбоксов - да, это неплохо. Хотя иногда вызывает тонны матов у контер-срайкеров даже при игре по локалке (ХЛ2). Предсказание анимаций вьюмоделей - ? Ну ок, может, оно кому-то сильно надо.
Я в своё время (читай: 2002 год) хотел запилить клиентские трейслайны и на сервер отсылать только "ранен-убит". Только кто, нахрен, поверит в нынешние времена клиенту? С его хаками, снифферами и лагами? Даже если отставить вопросы достоверности - играешь ты, играешь, а потом - БАХ!!! - тебя подстрелили 10 шагов назад!
В общем, синхронизация данных без задержек - большая научная рпоблема, которую хрен кто решит.