Jump to content
Korean Random
ribbed

Анонсы релизов World of Tanks

Recommended Posts

Всем привет!

 

В ночь с 13 на 14 июня выйдет микропатч на RU-кластере, который возвращает обновленный футбольный режим.

 

Папки модов будут называться /res_mods/1.0.2.1 и /mods/1.0.2.1

sdIkP8BXEs4.jpg

  • Upvote 3
  • Downvote 1

Share this post


Link to post

Short link
Share on other sites
3 минуты назад, Darth_Abaddon сказал:

оторый возвращает обновленный футбольный режим

А сразу одним патчем слабо сделать? А потом просто активировать режим?

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Еще патч не вышел, а микропатч уже впереди догоняет - круто...

Share this post


Link to post

Short link
Share on other sites

А микрофикс микропатча к будущему патчу когда запланирован?

  • Upvote 3

Share this post


Link to post

Short link
Share on other sites
1 час назад, ShuraBB сказал:

А сразу одним патчем слабо сделать? А потом просто активировать режим?

На самом деле так и произойдет: футбольный контент попадет в игру вместе с 1.0.2, а сам режим активируется 14-го по рубильнику на сервере.

Но мы опасаемся, что футбол поломает моды тем, кто успеет установить их за два дня. Для этого и выпускаем микропатч, принудительно отламывающий моды одновременно с запуском режима.

 

Да, мы понимаем, что это очень больно, но в этой ситуации мы вынуждены перестраховаться.

 

 

  • Upvote 2
  • Downvote 1

Share this post


Link to post

Short link
Share on other sites

А ничего, что, как бы, если контент есть в клиенте игры, к его наличию так или иначе всё равно все подготовятся? Или у вас футбол настолько отличается от стандартного интерфейса боя?

Share this post


Link to post

Short link
Share on other sites

Ну спасибо за обнову, что ли. Ровно в середину сессии. И ладно бы окно внешнего вида, там, несмотря на эпическую тонну необходимой работы по восстановлению всего, что только можно, всё стало ещё лучше и, кхм, краше. И за разнесение логики вьюшки и логики собственно работы с внешним видом огроменное спасибо, так же как и за кнопку "Нанести на весь танк". Я как раз собирался мод делать, который бы её добавил в том или ином виде.

 

Но зачем было чёртов i18n-то ломать, а? Чем кого не устраивал проброс всех переводов через пайтоновскую функцию? КАК мне теперь прикажете влезать в builtin-модуль GUI (в котором код для формирования локализованных текстов уместен, как штык-нож на РПГ), да ещё так, чтобы его обновлённую версию SWF увидели? Надо теперь pyd писать ради замены чёртовой кнопки "В бой!", да?

 

Я очень надеюсь, что это ДИКО логичное изменение будет каким-то образом подредактировано в грядущем микропатче, чтобы я снова мог получить доступ к происходящему в модуле интернационализации из чистого питон-кода. Иначе поддержку модов ButtonReplacer, HangarPainter и i18nDebugger я официально останавливаю до внесения необходимых мне изменений в код клиента игры. Я не собираюсь писать dll-ку ради подкрашивания пары букв - проще всё это бросить и идти моды на Майнкрафт писать.

 

Шибко умным, которые начнут тыкать меня носом в класс _Translations - во-первых, модуль GUI туда не стучится. Есть неопровержимые доказательства сего факта. А во-вторых, даже если бы он туда обращался - мне всё равно нужен файл, которому принадлежит переводимый на данный момент ключ. А _Translations не в курсе, кому он принадлежит. Да, можно было бы определить свой класс и заоверрайдить существующие, и я даже попытался это сделать, но сии попытки обречены на провал из-за первого пункта. GUI делает что-то там внутри себя и ему пофигу на i18n.g_translators, которые оставлены в коде не иначе как приманка для доверчивых Юр, которые думают, что могут за один вечер починить всё, что угодно.

  • Upvote 3

Share this post


Link to post

Short link
Share on other sites
10 hours ago, Polyacov_Yury said:

Но зачем было чёртов i18n-то ломать, а? Чем кого не устраивал проброс всех переводов через пайтоновскую функцию? КАК мне теперь прикажете влезать в builtin-модуль GUI (в котором код для формирования локализованных текстов уместен, как штык-нож на РПГ), да ещё так, чтобы его обновлённую версию SWF увидели? Надо теперь pyd писать ради замены чёртовой кнопки "В бой!", да?

 

Я очень надеюсь, что это ДИКО логичное изменение будет каким-то образом подредактировано в грядущем микропатче, чтобы я снова мог получить доступ к происходящему в модуле интернационализации из чистого питон-кода. Иначе поддержку модов ButtonReplacer, HangarPainter и i18nDebugger я официально останавливаю до внесения необходимых мне изменений в код клиента игры. Я не собираюсь писать dll-ку ради подкрашивания пары букв - проще всё это бросить и идти моды на Майнкрафт писать.

 

Шибко умным, которые начнут тыкать меня носом в класс _Translations - во-первых, модуль GUI туда не стучится. Есть неопровержимые доказательства сего факта. А во-вторых, даже если бы он туда обращался - мне всё равно нужен файл, которому принадлежит переводимый на данный момент ключ. А _Translations не в курсе, кому он принадлежит. Да, можно было бы определить свой класс и заоверрайдить существующие, и я даже попытался это сделать, но сии попытки обречены на провал из-за первого пункта. GUI делает что-то там внутри себя и ему пофигу на i18n.g_translators, которые оставлены в коде не иначе как приманка для доверчивых Юр, которые думают, что могут за один вечер починить всё, что угодно.

Походу я опять что-то пропустил... Но насчет того, что такая прекрасная обнова ****** как вовремя, это ты прям в точку сказал - я вообще через пару дней неизвестно пока насколько могу уйти в оффлайн (уезжаю в другой город), по крайней мере с возможностью работы над модами ожидаются определенные весьма существенные сложности, даже если и удастся запилить там себе интернет.

11 hours ago, Polyacov_Yury said:

Чем кого не устраивал проброс всех переводов через пайтоновскую функцию?

Видимо, тем, что это, во-первых, относительно медленно получается, ибо строк на старте игры нужно локализовать достаточно много, или оно будет тормозить в процессе, во-вторых, немного нелогично, ибо локализация используется в си-части игры, неявно линкуется на питон-модуль из си-модуля, а потом через питон снова на си выруливает, особенно учитывая что есть варианты gettext для си, в-третьих, это пресловутый GIL который вешает все остальные питон-потоки, пока работает локализатор, что не есть круто. На самом деле, изменение вполне логичное, проблема в том, что запилено все как обычно (почему-то я в этом не сомневаюсь даже) через одно известное место.

11 hours ago, Polyacov_Yury said:

Надо теперь pyd писать ради замены чёртовой кнопки "В бой!", да?

Ну а по-другому по сути никак. Не влезая в питон, ты не сделаешь возможность рулить этим из питона без диких костылей и велосипедов, а влазить в питон... читай выше.

11 hours ago, Polyacov_Yury said:

очень надеюсь, что это ДИКО логичное изменение будет каким-то образом подредактировано в грядущем микропатче, чтобы я снова мог получить доступ к происходящему в модуле интернационализации из чистого питон-кода.

На самом деле pyd не такая большая проблема, если разработчики вернут обратно экспорты питоновских функций в exe. В таком раскладе тебе нужно будет просто найти нужную сигнатуру для хука в си, а весь код можно будет просто на Cython написать, по сути тот же питон, только с дополнительными директивами.

Share this post


Link to post

Short link
Share on other sites
57 minutes ago, Pavel3333 said:

Влад, ремарочка

Я в курсе, и там ошибки нет. Написано именно то, что подразумевалось. Написать на Python с дополнительными декларациями от Cython (собственно, я упростил до "написать на Cython"), чтобы код в функциях можно было спокойно вывести из-под GIL. Потом собрать с помощью Cython в сишный модуль и закомпилить с питоновскими хедерами.

Проблема тут именно в питоновских хедерах, именно с ними связано 99% геморроя во всем этом деле.

Edited by GPCracker

Share this post


Link to post

Short link
Share on other sites
1 час назад, GPCracker сказал:

Видимо, тем, что это, во-первых, относительно медленно получается, ибо строк на старте игры нужно локализовать достаточно много, или оно будет тормозить в процессе

Столько лет не тормозило, а вдруг начало, ага. Процентов 95 переводов хранится в памяти как ключи и уходят (уходило ;( ) в питон-переводчик только перед отрисовкой нужной вьюшки. Лаги в данном случае вполне себе negligibильные. Да и потом, примерно процентов 80 всё равно через i18n.makeString() проводятся, потому что сами тексты так-то тоже в питоне формируются вместе с макроподстановками типа %(attacker)s. Без захода в бой у меня визуально только кнопка "В бой!" и отвалилась, потому что там кто-то очень умный код писал - сначала генерируем строку через i18n.makeString('#menu:headerButtons/battle') в addListeners() у LobbyHeader, а при любом обновлении (которые происходят постоянно) отправляем во флеш просто тупо ключ, который уходит на локализацию мимо питона. При этом все остальные ангарные тексты всё так же через i18n.makeString() пробрасываются.

2 часа назад, GPCracker сказал:

во-вторых, немного нелогично, ибо локализация используется в си-части игры, неявно линкуется на питон-модуль из си-модуля, а потом через питон снова на си выруливает, особенно учитывая что есть варианты gettext для си

Как я уже сказал выше, основная часть текстов в питоне генерируется, а не в си, и через питон же локализуется. Получается как с Ангарным Краскопультом - постоянная беготня за кнопками, которые HTML не воспринимают, только тут будет беготня за методами типа as_setFightButtonLabelS() в Реплейсоре для тех текстов, которые через питон не пробрасываются, хотя должны бы. А я думал, что от дерьма вроде того, которое творилось с точечными фиксами текстов в Реплейсоре два с половиной года назад, я успешно сбежал в модуль i18n...

2 часа назад, GPCracker сказал:

в-третьих, это пресловутый GIL который вешает все остальные питон-потоки, пока работает локализатор, что не есть круто.

И насколько он их вешает? Пара обращений в словари и, в особо запущенных случаях, одна операция %=? Что-то не тянет на вселенский генератор лагов.

 

Вот и получаем, что изменение сие избыточно и только головной боли подкидывает.

2 часа назад, GPCracker сказал:

На самом деле, изменение вполне логичное, проблема в том, что запилено все как обычно (почему-то я в этом не сомневаюсь даже) через одно известное место.

Если пилили бы нормально - либо убрали бы нафик всю обвязку для gettext-файлов из модуля, чтобы показать, что g_translators больше не играет никакой роли вообще, либо сделали бы, чтобы оно таки обращалось к g_translators в рантайме, и тогда я бы мог в лежащие там штуки встроиться и позаменять то, что мне надо и заставить всё работать как часики. А так получаем, что код есть, но нафик не нужен никому.

 

И нет, мне проще шлёпнуть по первому своему успешному проекту печатью discontinued, чем писать пиды. Уж простите, но я сюда пришёл на питоне писать моды, а не на сях писать свой питон.

 

 

Касаемо микропатча. Налицо (возможно, более лучше реализованный) Хеллоуин. Те же яйца, вид сбоку. Кто вам мешал все эти изменения вывалить на головы мододелам если не на общем тесте - так хотя бы в релизном клиенте? Дать пару дней на адаптацию, а потом режим с серверного рубильника врубить? Патч и так огромный в плане изменений в коде - так мы микропатчем на гора вываливаем ещё столько же. -_- Боитесь, что кто-то что-то сольёт? Да, мы мододелы, и благодаря КамоСелектору инфа про стиль от Ростелекома утекла в массы за пару дней до его запуска - но мы не эпические божества, чтобы активировать локально новый чёртов серверный режим боёв!

Share this post


Link to post

Short link
Share on other sites
2 hours ago, Polyacov_Yury said:

потому что там кто-то очень умный код писал

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

2 hours ago, Polyacov_Yury said:

основная часть текстов в питоне генерируется, а не в си, и через питон же локализуется

Ты не забывай, что в питоне генерируются только те тексты, которые через питон форматируются. Для всего остального есть константы и локализация на уровне DAAPI, и не всегда эти константы прописаны в питоне (могут быть исключительно флешовые).

2 hours ago, Polyacov_Yury said:

И насколько он их вешает?

На самом деле не стоит забывать про то, что локализованные строки это в первую очередь файлы, и, соответственно, операции ввода-вывода, которые имеют способность подвешивать поток. Так что вывод модуля gettext в си вполне оправдан. Что касается прослойки i18n, то в свете локализации на уровне DAAPI она превращается в ненужную (с точки зрения разработчиков игры) короткую петлю в питон и обратно, которая только жрет лишние ресурсы, создает лишний код, так еще и GIL просит.

3 hours ago, Polyacov_Yury said:

А так получаем, что код есть, но нафик не нужен никому.

Я уже написал чуть выше про легаси-код.

3 hours ago, Polyacov_Yury said:

Те же яйца, вид сбоку. Кто вам мешал все эти изменения вывалить на головы мододелам если не на общем тесте - так хотя бы в релизном клиенте? Дать пару дней на адаптацию, а потом режим с серверного рубильника врубить? Патч и так огромный в плане изменений в коде - так мы микропатчем на гора вываливаем ещё столько же.

А вот такая фигня реально бесит. У них там творится какой-то ад в плане разработки. И, полагаю, так сделали потому, что из-за большого количества факапов тамошние бакланы не успевали настучать/отдебажить свой мега-микро-патч своим кривым клювом к тесту или к релизу, поэтому его одобрили на мерж только в самый последний момент, когда релизная ветка уже висела в зафиксированном состоянии (когда началось предрелизное тестирование, и из изменений допускаются только исправления критических багов).

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
20 минут назад, GPCracker сказал:

На самом деле не стоит забывать про то, что локализованные строки это в первую очередь файлы, и, соответственно, операции ввода-вывода, которые имеют способность подвешивать поток.

Курите код, сэр. Всё, что происходит в модуле gettext, кешируется в память при первом обращении. Поэтому IO там задействована только по одному разу для каждого файла. Потому я и написал - два обращения к словарю за одну операцию получения перевода - одна получает кеш файла, вторая из этого кеша значение читает.

24 минуты назад, GPCracker сказал:

Что касается прослойки i18n, то в свете локализации на уровне DAAPI она превращается в ненужную (с точки зрения разработчиков игры) короткую петлю в питон и обратно, которая только жрет лишние ресурсы, создает лишний код, так еще и GIL просит.

И всё равно при этом используется, по данным i18nDebugger.

22 минуты назад, GPCracker сказал:

Ты не забывай, что в питоне генерируются только те тексты, которые через питон форматируются. Для всего остального есть константы и локализация на уровне DAAPI, и не всегда эти константы прописаны в питоне (могут быть исключительно флешовые).

Опять же, могу только отправить курить код. Пакет gui.Scaleform.locale. Из того, что я видел исключительно флешового, а я рылся по коду основательно - это кнопка "Автопоиск" в окошке очереди на вход в игру. Даже пресловутая кнопка "В бой!" из питона приходит.

25 минут назад, GPCracker сказал:

Я уже написал чуть выше про легаси-код.

Легаси-код оставляют в проекте, если он используется чем-то. Лично я обращений к нему не отловил, хотя усиленно пытался.

26 минут назад, GPCracker сказал:

У них там творится какой-то ад в плане разработки.

Ну как обычно.

Share this post


Link to post

Short link
Share on other sites
1 hour ago, Polyacov_Yury said:

И всё равно при этом используется, по данным i18nDebugger.

Скорее всего, опять имеет место легаси-код. И да, вспомни как было с обновлением боевого интерфейса на ActionScript 3... сколько там легаси висело в клиенте?

1 hour ago, Polyacov_Yury said:

Опять же, могу только отправить курить код. Пакет gui.Scaleform.locale. Из того, что я видел исключительно флешового, а я рылся по коду основательно - это кнопка "Автопоиск" в окошке очереди на вход в игру. Даже пресловутая кнопка "В бой!" из питона приходит.

А как насчет этого, этого и этого? А теперь заглядываем сюда... А потом сюда. И в итоге попадаем... в никуда. Мне не удалось найти в питоне установку хэндлов для этих команд ExternalInterface. Полагаю, они отлавливаются и обрабатываются на уровне си.

З.Ы. Возможно, я скинул тебе что-то полезное :)

Share this post


Link to post

Short link
Share on other sites

Всем привет.

 

В ночь с 19 на 20 июня выходит микропатч. Фиксим баги, папка не требуется.:izmena:

 

 

 

  • Upvote 7

Share this post


Link to post

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...