Pull to refresh

Comments 12

PinnedPinned comments

С третьей стороны... текст статьи - глазовыдирающий нейрослоп.

Вот тут публикацию пересказали вот так:

Скрытый текст

Это подробный обзор статьи о BabelChat — переводчике чата для World of Warcraft. Автор описывает проблему языкового барьера в кросс‑серверных группах и как из идеи создать чат‑переводчик вырастает двупроцессная архитектура: аддон WoW на Lua, читающий чаты внутри игры, и внешний компаньон, который через чтение памяти процесса добывает текст и выполняет разбор перевода и оверлей. В тексте подробно сравниваются существующие решения (WoW Translator от Pirson, Prat и WoWChatLog.txt) и объясняется, почему они не удовлетворяли требованиям для оперативного перевода тактики в боях. Далее описывается поток обмена между двумя процессами: как чат попадает в кольцевой буфер аддона, как компаньон сканирует память регионами, ищет маркеры и превращает их в перевод, возвращая результат в чат игры. Центральная идея — держать якорь и константу‑указатель рядом с живым буфером: фиксированное число в сохранённой таблице (якорь) и адрес следующей строки; эта конструкция обеспечивает надёжность поиска буфера после перестроений таблицы. В статье подробно разбираются эксперименты: от чтения буфера через разные подходы до сравнения старого и нового метода через якорь; описываются проблемы zombie‑буферов, когда мёртвая копия остаётся читаемой и как вводится механизм пульса и проверки памяти. Приводятся примеры кода в виде фрагментов для иллюстрации IsUsable и защитных обёрток вокруг конкатенации строк. В итоге приведены цифры по загрузке процессора, объёму памяти, числу проходов по памяти и задержкам перевода; обсуждаются ограничения: отсутствие гарантий совместимости с обновлениями клиента Blizzard, невозможность снять секретные значения эпохального ключа, вопросы безопасности и зависимости от версий. В заключение — обзор проекта BabelChat, его связь с TAUSIK и SENAR, ссылки на репозитории и итоговые уроки исследования.

С одной стороны - копаться в чужой памяти всегда весело. Вроде в Lua добавили тип buffer, который по сути представляет собой байтовый массив. Он в WoW-плагинах доступен? Если да, кольцевой буфер на его основе мог бы быть куда проще...

С другой стороны - а как WoW относится к тому, что какой-то посторонний процесс читает его память? Под очередную волну банов не боитесь попасть?

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

а как WoW относится к тому, что какой-то посторонний процесс читает его память?

игра этого не знает. вида не докладывает.

Вот на реддите то же самое спрашивали - я добавил в конец статьи разбор специально. В целом я хожу по грани ToS - ничего плохого не делаю. С аддоном живу уже год, 700+ скачек - жалоб не было

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

А разве не требуется для этого цепляться к процессу с правами отладки?
А это уже вполне известная и длительная "борьба брони и снаряда".

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

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

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

С третьей стороны... текст статьи - глазовыдирающий нейрослоп.

Вот тут публикацию пересказали вот так:

Скрытый текст

Это подробный обзор статьи о BabelChat — переводчике чата для World of Warcraft. Автор описывает проблему языкового барьера в кросс‑серверных группах и как из идеи создать чат‑переводчик вырастает двупроцессная архитектура: аддон WoW на Lua, читающий чаты внутри игры, и внешний компаньон, который через чтение памяти процесса добывает текст и выполняет разбор перевода и оверлей. В тексте подробно сравниваются существующие решения (WoW Translator от Pirson, Prat и WoWChatLog.txt) и объясняется, почему они не удовлетворяли требованиям для оперативного перевода тактики в боях. Далее описывается поток обмена между двумя процессами: как чат попадает в кольцевой буфер аддона, как компаньон сканирует память регионами, ищет маркеры и превращает их в перевод, возвращая результат в чат игры. Центральная идея — держать якорь и константу‑указатель рядом с живым буфером: фиксированное число в сохранённой таблице (якорь) и адрес следующей строки; эта конструкция обеспечивает надёжность поиска буфера после перестроений таблицы. В статье подробно разбираются эксперименты: от чтения буфера через разные подходы до сравнения старого и нового метода через якорь; описываются проблемы zombie‑буферов, когда мёртвая копия остаётся читаемой и как вводится механизм пульса и проверки памяти. Приводятся примеры кода в виде фрагментов для иллюстрации IsUsable и защитных обёрток вокруг конкатенации строк. В итоге приведены цифры по загрузке процессора, объёму памяти, числу проходов по памяти и задержкам перевода; обсуждаются ограничения: отсутствие гарантий совместимости с обновлениями клиента Blizzard, невозможность снять секретные значения эпохального ключа, вопросы безопасности и зависимости от версий. В заключение — обзор проекта BabelChat, его связь с TAUSIK и SENAR, ссылки на репозитории и итоговые уроки исследования.

Слушайте, ну какой вообще «нейрослоп», о чем речь? Ощущение, что люди разучились читать тексты длиннее пары абзацев и вешают этот модный ярлык на любой плотный, хорошо написанный материал. Статья — чистейший инженерный кайф!

Огромное спасибо автору за честность, за то, что не побоялся показать все свои тупики, костыли и реальный процесс. Это безумно вдохновляет и заставляет наводить порядок в собственных проектах. Пишите еще пожалуйста

Так в том-то и дело, что не плотный ни разу. Статью можно укоротить до 3-4 абзацев без потери смысла.
А тема-то интересная, не спорю. Не режь стиль глаза до такой степени - поставил бы плюс, не задумываясь.

читать память игры ради переводчика, это намёк, что внутри игры чат не переводится под зашедшего в игру игрока чтоли?)

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

я заметил в этой игре за столько лет игроки попросили столько от неё, что проще было оставить классику действительно и не трогать игру - концепт вообще... я бы еще полёты у игроков(маунты летающие, бегающих бы оставил) убрал и вернул adventure moments classic client с хардкором по выбору... ) и вообще бы вернул скорость классики, чтобы развитие годами происходило, но при этом в игре можно было делать что-то, а контент клепался в старом интервале 5 летнем, зато качественном с катками из игры и граффикой... )

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

ну, после введения кроссреалмов тут моя личная потребность была исключительно в том чтобы понимать иностранцев :) Если с английским проблем нет - то испанцы, французы, немцы - в LFR в частности - просто боль :) Они все весело трещат между собой - а ты ничего не понимаешь :) Теперь боль снята - в компаньон-апп есть и обратный переводчик - только лишь надо копировать-вставить

Sign up to leave a comment.

Articles