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 писал: Нигде не используются ивенты, кроме теперь уже одного проекта
Так ведь эвенты и нужны для предиктинга, который ты делал. Как же не используются-то? Ты кстати можешь для них и простенький скриптовой язык написать, который планировала сделать вальва, но увы - так и не сделала.
Если что обращайся за помошью - подскажу, заодно и в новой области себя попробуешь
Дядя Миша писал: Так ведь эвенты и нужны для предиктинга, который ты делал. Как же не используются-то? Ты кстати можешь для них и простенький скриптовой язык написать, который планировала сделать вальва, но увы - так и не сделала.
Если что обращайся за помошью - подскажу, заодно и в новой области себя попробуешь
Возможно когда-нибудь к этому вернусь, но точно не в ближайшее время