Минувший год
Год был длинным и далеко не богатым на релизы. Причины тому можно описывать долго, но все они банальны — в битве «покушать vs дота» всегда победит «покушать». Если кто-то не согласен, то присылайте свои покушать на известные реквизиты сразу после катки. И практически до самой зимы дотка оставалась где-то на третьем плане.
маммемхак.
Мемхак (memory hack, взлом памяти) рушит эту стену и открывает полный доступ ко всему инструменту. Единственный минус технологии — воспользоваться этой брешью можно в любых целях, от расширения игры и её возможностей (как сделали мы) до тотального порабощения компьютера игрока за счет встроенного вируса, который будет запущен с теми же правами, что и варкрафт (у большинства юзеров — админскими). О том, что не стоит качать карты с «левых» источников, где их мог отредактировать кто угодно, уже говорилось.
Например, мы знаем, как найти адрес какой-либо абилки. Внутри неё есть пара интересных вещей, которые меняются сходу — например, кулдаун, дальность каста, урон и т.д. Но понять, как сделать абилку каналом (чтобы герой должен был стоять и кастовать её, как ульт пугны) — >сложна<. Сложна и найти, как изменить тип стандартного выбора цели, чтобы разрешить кидать на землю, а не только на юнитов. Сложно перепрофилировать скилл, чтобы он активировался, не сбивая текущий приказ. Сложно вообще найти что-либо, даже если понимаешь что искать.
Всё, что не касается напрямую данных из таблиц, меняется с большим скрипом. Параметры юнита лежат в явном виде, меняй — не хочу. Но найти функцию, которая распределяет регенерацию, и отключить её для конкретного юнита — крайне нетривиальная задача, на которую можно убить день, притом безрезультатно. В моем случае проблема проста — я не занимаюсь реверсом, я не программирую на ASM или C, чтобы читать код как гайд по дровке. Поэтому, к примеру, Фуккей с икапом достаточно неплохо прогрессирует: с его-то опытом лоботомии над варкрафтом минувшие полгода — это даже долго.
Раскопками артефактов занимается Караулов, за что ему отдельный респект, но он тоже скован узами реальной жизни и не хочет убивать всё свободное время на это дело.
Когда винда ловит запрос к нулевым секторам
Плюс достаточный объем времени ушел на изучение, собственно, техники, как подглядывать за варкрафтом, как искать и находить данные. Даже таблички с данными могли использоваться не самым тривиальным образом, о чем красноречиво говорит папка с ошибками, набитая на почти 800 Мб.
В первых релизах подобная проблема была частенько — предполагалось, что наши функции работают как надо. Варкрафт на это ответит «лол» и показал, что так просто его не возьмешь. В Beta код был полностью переписан на безопасные аналоги, поэтому падал реже, но жестче. Нашлось место и для багов, связанных с портируемой библиотекой, в которой лежат различные визуальные вкусности (вроде отображения регена и прочих мелочей). Наконец, в F были исправлены последние известные проблемы, но и здесь эпопея не закончилась.
Сейчас в приоритете — оптимизация, ибо из-за кучи новых технологий бедный одноядерный варкрафт начал сильно требовать CPU. Над тем и работаем. Плюс неизвестные вылеты, о которых докладывают иностранные друзья. Опровергнуть или подтвердить их слова никто не может, так и гадаем, действительно ли существует еще проблема, или же что-то на стороне клиента отваливается.
С большой силой пришла и большая ответственность в виде вылетов. Боремся, будем бороться, однажды поборем, тем более, что благоприятные условия для этого есть.
Следующая стабильная™ версия выйдет уже в новом году. Каким именно будет номер года, пока уточняется. С наступающим.
А где карта?
В начале мы закончили фиксы для 85, подтянули, насколько было возможно, патчами. А в конце марта, когда уже планировалось создание супер-костылей для реализации супер-фич нового 86 патча, появилсяЧто это такое?
Программа типа варкрафта — это просто поток байтов. Что видит, то и поет. Вся суть прикладного языка jass, на котором работают карты типа доты, в написании какой-то инструкции действий, т.е. текста песни. Чтобы не пугать новичков, да и не увеличивать время разработки, близзарды оставили лишь базовый набор нот. Грубо говоря, от органа оставили пианино, а остальное скрылось за стенкой «виртуальной машины».Мемхак (memory hack, взлом памяти) рушит эту стену и открывает полный доступ ко всему инструменту. Единственный минус технологии — воспользоваться этой брешью можно в любых целях, от расширения игры и её возможностей (как сделали мы) до тотального порабощения компьютера игрока за счет встроенного вируса, который будет запущен с теми же правами, что и варкрафт (у большинства юзеров — админскими). О том, что не стоит качать карты с «левых» источников, где их мог отредактировать кто угодно, уже говорилось.
Что это дает?
Это дает возможность реализовать всё, что сделали в д2, и даже больше. Грубо говоря, своя игра внутри игры, со своими правилами. Проблема лишь в том, что даже простейшие вещи найти не так просто. Варкрафт — это закрытая программа, которая еще и в ЕУЛА запрещает пытаться взломать себя. Но нам примерно так же не всё равно, как и обычным юзерам с пиратскими дисками.Например, мы знаем, как найти адрес какой-либо абилки. Внутри неё есть пара интересных вещей, которые меняются сходу — например, кулдаун, дальность каста, урон и т.д. Но понять, как сделать абилку каналом (чтобы герой должен был стоять и кастовать её, как ульт пугны) — >сложна<. Сложна и найти, как изменить тип стандартного выбора цели, чтобы разрешить кидать на землю, а не только на юнитов. Сложно перепрофилировать скилл, чтобы он активировался, не сбивая текущий приказ. Сложно вообще найти что-либо, даже если понимаешь что искать.
Всё, что не касается напрямую данных из таблиц, меняется с большим скрипом. Параметры юнита лежат в явном виде, меняй — не хочу. Но найти функцию, которая распределяет регенерацию, и отключить её для конкретного юнита — крайне нетривиальная задача, на которую можно убить день, притом безрезультатно. В моем случае проблема проста — я не занимаюсь реверсом, я не программирую на ASM или C, чтобы читать код как гайд по дровке. Поэтому, к примеру, Фуккей с икапом достаточно неплохо прогрессирует: с его-то опытом лоботомии над варкрафтом минувшие полгода — это даже долго.
Раскопками артефактов занимается Караулов, за что ему отдельный респект, но он тоже скован узами реальной жизни и не хочет убивать всё свободное время на это дело.
А где же карта?
Можно легко понять, что предоставленный игрой инструментарий более-менее надежно защищен от стрельбы себе по ногам. В 99% игра не упадет, даже если втирать ей дичь высшей категории. А вот при записи в память никакой защиты нет — винда стреляет на поражение сразу же, как только игра засунет свой нос куда не следует.Когда винда ловит запрос к нулевым секторам
Плюс достаточный объем времени ушел на изучение, собственно, техники, как подглядывать за варкрафтом, как искать и находить данные. Даже таблички с данными могли использоваться не самым тривиальным образом, о чем красноречиво говорит папка с ошибками, набитая на почти 800 Мб.
В первых релизах подобная проблема была частенько — предполагалось, что наши функции работают как надо. Варкрафт на это ответит «лол» и показал, что так просто его не возьмешь. В Beta код был полностью переписан на безопасные аналоги, поэтому падал реже, но жестче. Нашлось место и для багов, связанных с портируемой библиотекой, в которой лежат различные визуальные вкусности (вроде отображения регена и прочих мелочей). Наконец, в F были исправлены последние известные проблемы, но и здесь эпопея не закончилась.
Сейчас в приоритете — оптимизация, ибо из-за кучи новых технологий бедный одноядерный варкрафт начал сильно требовать CPU. Над тем и работаем. Плюс неизвестные вылеты, о которых докладывают иностранные друзья. Опровергнуть или подтвердить их слова никто не может, так и гадаем, действительно ли существует еще проблема, или же что-то на стороне клиента отваливается.
Итоги года
Дота на варкрафте значительно шагнула вперед в возможностях. Мы больше не боимся, что в д2 появится что-то сногсшибательное и невозможное. Даже 7-й патч, перевернувший доту в подобие ЛОЛа, не будет проблемой — дайте только пофиксить то, что у нас есть сейчас.С большой силой пришла и большая ответственность в виде вылетов. Боремся, будем бороться, однажды поборем, тем более, что благоприятные условия для этого есть.
Следующая стабильная™ версия выйдет уже в новом году. Каким именно будет номер года, пока уточняется. С наступающим.
3 комментария
«Это дает возможность реализовать всё, что сделали в д2, и даже больше» — А это радует)