Jump to content
Korean Random

[WG] WoT PDC (Persistent Data Cache)


Recommended Posts

Всем привет

 

Что случилось

 

Для ускорения загрузки клиента в WoT 1.27.1 была реализована новая подсистема Persistent Data Cache, которая кэширует результат обработки XML файлов. В результате время загрузки клиента уменьшается вплоть до двух раз на ряде конфигураций ПК.

 

Как это влияет на модификации

 

  • Если модификация каким-либо образом меняет кэшируемые данные, то при наличии уже созданного кэша результат может быть не применен;
  • После удаления модификации закэшированные данные могут негативно влиять на работу клиента.

 

Как это работает

 

Исходный код: https://github.com/izeberg/wot-src/tree/CT/sources/res/scripts/common/persistent_data_cache_common

 

При первом запуске клиента после обновления игры или смены языка будет создан кэш, который включает в себя следующие компоненты:

  • decal_map_config
  • path_builder
  • vehicles_list
  • vehicles_cache
  • tankmen_skills
  • tankmen_nations
  • arena_type
  • personal_missions_season
  • personal_missions_tile
  • personal_missions_campaigns
  • personal_missions_operations
  • personal_missions
  • customization_quests
  • static_quests
  • gui_items_params
  • area_destructibles
  • в дальнейшем список может быть расширен

 

Кэш будет сохранен по пути <каталог клиента>/data.wgpdc. Для сброса кэша достаточно удалить этот файл.

 

Что делать разработчикам модификаций

 

Задача модификаций -- не изменять кэшируемые данные до того как кэш будет успешно записан на диск.

 

Наиболее простой способ этого достичь -- не трогать кэшируемые данные до наступления состояния GameplayStateID.LOGIN

 

Более сложный (и нерекомендуемый) путь -- дождаться пока DefaultPDCManager  закончит сериализацию данных. Пример реализации подхода: https://gitlab.com/wot-public-mods/branded-tanks/-/commit/c9d7509f31c5db3e977130cd08ba5c32ed999559

 

Что делать разработчикам сборок модификаций

 

Сборки модификаций (модпаки) могут очищать кэш в процессе установки и удаления. Для этого можно использовать библиотеку OpenWG.Utils (пример очистки кэша: https://gitlab.com/openwg/openwg.utils/-/commit/b4d220be9daccbe60d299dc9a914604bbcd9fd43 ) или же любым иным методом удалить файл кэша при его наличии.

Edited by Mixaill
  • Upvote 6
Link to comment
Short link
Share on other sites

  • The topic was pinned

Это в новом патче будет?

 

09.01.2025 в 05:04, Mixaill сказал:

Задача модификаций -- не изменять кэшируемые данные до того как кэш будет успешно записан на диск.

 

Что имеется ввиду под словом "не изменять"? Перезапись значений переменных и констант игрового окружения? Или вообще не обращаться к этим данным до наступления события GameplayStateID.LOGIN?

Edited by StranikS_Scan
Link to comment
Short link
Share on other sites

@StranikS_Scan если ты изменяешь кэши игры (к примеру - добавление стилей в Branded Tanks в vehicles.g_cache), не трогать их пока игра сама не создаст и сохранит его в кэшфайл. Иначе будут проблемы и вместо того чтобы использовать кэшированные данные и грузится за 10 секунд, игрок будет постоянно ждать полной прогрузки всех xml файлов.

  • Upvote 1
Link to comment
Short link
Share on other sites

5 часов назад, StranikS_Scan сказал:

Или вообще не обращаться к этим данным до наступления события GameplayStateID.LOGIN?

Желательно да, иначе есть вероятность, что

  • при наличии уже готового кэша твои данные не будут учитываться (их перетрет кэш)
  • при отсутствии кэша твои данные попадут в кэш и после сноса мода все еще будут использоваться твои данные
5 часов назад, StranikS_Scan сказал:

Это в новом патче будет?

В 1.27.1 (со следующей недели релиз)

Edited by Mixaill
Link to comment
Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...