17 марта я наконец-то полностью закончил имплементацию клиентского предиктинга для оружий. В итоге получилось всё реализовать довольно неинтрузивно, только в сейв-рестор системе пришлось внести некоторые небольшие доработки. Также, нашлось пару мест в движке, в которых не был исправлен SQB, эти моменты я доработал. Наспех протестировал всё с пингом 300 - отлично работает, даже отброс игрока при стрельбе из гаусса нормально предиктится, в отличие от того как это в HLSDK исходно было сделано. Много написано принципиально нового и переосмысленного кода, учтены были все грабли, на которые можно было наступить (что и было сделано в оригинальной имплементации предикта). Некоторые неочевидные по своей природе вещи (как например флажок runfuncs) я прокомментировал в коде, чтобы не оставлять подвешенных в воздухе вопросов, так что это будет хорошим подспорьем для тех кто захочет какое-то принципиально новое оружие добавить в свой форк. С учётом того что я занимался другими проектами и делами, этот PR у меня занял 8+ месяцев, что кажется рекордно долгое в рамках одной задачи время, но по итогу получилось качественно реализовать всё что планировалось.
Добавлено 19-03-2025 в 01:49:
Цитата:
Ghoul [BB] писал: Думаю, что не нужно.
Документация была бы кстати, всё остальное - пустое трата твоего времени и наших ожиданий. Хватит нам 3D, XT, NT, FWGS, P2... ничегго не упустил?
Или ты хочешь превзойти совершенство Дяди Миши в написании таких вещей? Скорее, получится, как с Мастером. И код сведёт тебя с ума раньше, чем ты дойдёшь хотя бы до этапа альфа-тестирования.
Иронично такое читать спустя пять лет, когда уже даже сам Гуль делся бог весть куда, а я всё ещё пишу сюда девлоги
То есть получилось избежать большей части ситуаций, когда за изменением кода в одном месте, по цепочке возникает необходимость делать ответные изменения и в совсем других местах.
Цитата:
Дядя Миша писал: В эвентах?
Ты же учти, что SQB исправлялся для ксаш-мода, который не юзал эвенты.
Да, именно там, в функциях CL_ParseReliableEvent и CL_ParseEvent. Да в принципе очевидно почему оно там исправлено не было, из модов которые сделаны под ксаш, ивенты вообще нигде не использовались, соответственно и на проблему никто не натыкался. Но ничего, теперь проблемы этой в целом нет.
Дядя Миша писал: Исправлять без тестирования на реальных кейсах - ну такое себе.
Так в том то и дело, что это тестить не на чем буквально. Нигде не используются ивенты, кроме теперь уже одного проекта. Что касательно любых других модов - для них ничто не меняется абсолютно, т.к. они не используют флажок с SQB фиксом.
SNMetamorph писал: Нигде не используются ивенты, кроме теперь уже одного проекта
Так ведь эвенты и нужны для предиктинга, который ты делал. Как же не используются-то? Ты кстати можешь для них и простенький скриптовой язык написать, который планировала сделать вальва, но увы - так и не сделала.
Если что обращайся за помошью - подскажу, заодно и в новой области себя попробуешь
Дядя Миша писал: Так ведь эвенты и нужны для предиктинга, который ты делал. Как же не используются-то? Ты кстати можешь для них и простенький скриптовой язык написать, который планировала сделать вальва, но увы - так и не сделала.
Если что обращайся за помошью - подскажу, заодно и в новой области себя попробуешь
Возможно когда-нибудь к этому вернусь, но точно не в ближайшее время
1) В p2mv была возможность листания моделей стрелочками. В pxmv.exe эта фича не работает
2) При создании в блендере мешей с эффектом хрома, в mv текстура мотононная, хотя в игре всё ок
"My CHROME texture looks all one flat color in HLMV, but works in game
This is a Jed's HLMV specific issue with some models that are in a certain position. Currently P2MV also has issues with displaying chrome as well. Use one of the newer Mdl viewers like HLAM"
JPEG
Какой хороший формат то кости перекручивает то uv слетает, то модель зеркалит, то нормали слетают.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
SNMetamorph писал: я наконец-то полностью закончил имплементацию клиентского предиктинга для оружий
Эта имплементация использует какие-то особые фичи ксаш-движка, или нет, и потенциально портабельна на мод для голдсорса? Вырезать пердиктинг легко, это уже сделали все кому не лень. А вот вспачинить так некому и не удалось. Бог с ним с самим предсказанием, анимации работают неправильно. Как я не боролся, так и не смог победить глюки с holster.
Ku2zoff писал: Как я не боролся, так и не смог победить глюки с holster.
Ой, мы с Альбатроссом лет 8 назад обсуждали корень этой проблемы, локализовали, но руки так и не дошли. А теперь уже и не упомнишь.
Что-то с таймингами, причём хитрозакрученное, т.е. с наскоку не одолеешь.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: Я думал Альбатрос уже давно починил предиктинг?
Всё, что со стороны движка - давно работает. Определить легко, достаточно запустить TFC под ксашем. Раньше, когда предиктинг вообще не работал - все пушки ломались. И не только пушки. Тут речь о предиктинге в клиентской длл, он ведь у вальвы такой себе, недоделанный.
Цитата:
Дядя Миша писал: обсуждали корень этой проблемы, локализовали, но руки так и не дошли
Там как-то неправильно отрабатывает SendWeaponAnim. Это вообще чудо чудное, даже без предиктинга может игнорить некоторые анимации в режиме спектатора OBS_IN_EYE. Я это решал пользовательской мессагой вместо движковой.