У меня есть программа, которую я начал писать, когда я еще в World of Warcraft не играл, а играл в Lineage 2 (году этак в 2006). Эта программа задумывалась как утилита для облегчения игры, в широком смысле. Этакий swiss knife. Например, в Lineage 2 было ограничение на количество одновременно запускаемых клиентов игры - а играли обычно в много окон; моя утилита это ограничение обходила. Я назвал её AxTools - от моего игрового ника “Axioma” и “Tools”

После того, как я начал играть в World of Warcraft, мои навыки в программировании начали потихоньку расти. Гм, странновато прозвучало… Вообще-то эти события не связаны между собой. Всё то же приложение обрастало новыми функциями. Появился сложный кликер, поддерживающий простые макросы. Появился автологин, чтобы не надо было при запуске игры вводить адрес почты и пароль. Была разработана простая система бэкапов (с VSS[1]) пользовательских настроек игры. В какой-то момент я решил углубиться в дебри реверс-инжиниринга, то есть полез в дизассемблированный код игры. Удивительно, что с такими ужасными ошибками, которые я совершал, мой игровой аккаунт не заблокировали… По мере моего погружения в код игры, в AxTools появлялось все больше новых фич, а старые совершенствовались.

В итоге, сейчас это довольно сложная утилита. Например, в ней есть API для плагинов, написанных на C# и Lua (вроде радара, показывающий игроков, НПС[2] и игровые объекты вокруг). Персонаж под управление этой утилиты может делать все, что делает игрок-человек, за исключением движения по сложной местности - механизм анализа карты я так и не реализовал.

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

По ряду причин я не размещал ни код программы, ни дистрибутивы в открытый доступ. Главная причина - “если разработчики игры не будут знать о моей утилите, то меньше шанс, что меня/друзей заблокируют”. Это паранойя только отчасти - известно много примеров, когда издатель игры связывался с разработчиками подобных программ и намекал в том числе на возможность юридических проблем. Хотя, возможно, когда я совсем охладею к игре, я либо попробую программу продать, либо выложу код на github.


  1. 1.Volume Shadow Copy Service — служба операционной системы Windows, позволяющая копировать файлы, с которыми в данный момент времени ведётся работа, и даже с системными и заблокированными файлами.
  2. 2.Неигровой персонаж, т.е. персонаж, управляемый компьютером