По ту сторону изгороди. Повторяющиеся действия. Скрипты, автоматизация, ботоводство. Часть 1.

Читал вчера вечером замечательную статью Jolly, «Про ничтожность слабого». Когда прочитал про ботоводство, понял на какую тему будет моя новая статья.

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




Оправданием (при желании) можно назвать любой анализ своей деятельности и рефлексию. Но у каждой вещи как минимум две медали. У меня был свой мотив, я убивал ради руды и не думал об объединении игроков — но был приятно удивлён, когда игроки начали объединяться. Про шахтёров мне не перед кем оправдываться в принципе. Оправдываются люди начинают, когда чувствуют себя виноватыми и не могут ответить за свои поступки. А я убийство шахтёров не считаю чем-то зазорным, в принципе. Если я когда-нибудь пересмотрю свои взгляды и вступлю в Свидетели Ноукомбатантов — я просто приму свой опыт как ошибочныйи поставлю свечку во имя убиенных нубов.

Когда я писал, что игра может подталкивать игрока к макросам и окнам своим унылым геймплеем — почему-то тоже посчитали, что я оправдываюсь и всё перекладываю на игру и дизайнеров. Но почему в одних играх принимают решение играть одним окном, а в других играх запускают десяток? Ответ простой — на решение игрока однозначно влияет игровой дизайн. К чему я это всё веду. Мне нет смысла рассказывать о том, как я макросил, запускал много окон и О УЖАС! ботоводил, для того чтобы оправдываться. По причине того, что об этой стороне моей игры знает не так много людейте кто знали — давно кормят рыб.

Начнём с Ультимы.

В начале игрок погружается в новый мир и использует встроенный интерфейс игры. Потом узнает, что есть uoassist, который позволяет сделать игру гораздо удобнее. Ассист позволял, например использовать бинт на себя, вместо того чтобы кликать по бинту в бэкпаке, а потом уже по своему персонажу. Или использовать заклинание на последнюю цель.


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


Выводить скиллы в удобной табличке и показывать прирост (игровой интерфейс был в этом смысле не очень удобен)


Те, кто хотя бы раз попробовали ассист — уже не могли от него отказаться. Сейчас всё, что было в ассисте (и гораздо, гораздо больше, взять те же моды для WoW) — уже является игровым стандартом. А тогда нельзя было полноценно играть в игру без этого костыля. Человек без ассиста в PvP не имел вообще никаких шансов. В дефолтном клиенте чтобы использовать скролл, нужно было кликать на него в бэкпаке. Ассист позволял использовать скролл по хоткею.

Впоследствии появился Razor, более продвинутый вариант ассиста:


Я играл в Ультиму на фри-шарде и макросы были разрешены. Макросили все, кто мог. Более того, администрация шардов и не подозревала, что это не правильно.

Начиналось всё с простого uoloop, который раз в секунду нажимал на определённую клавишу:


Первое, что делал ньюб — ставил на макрос который заставлял персонажа бить по кукле, используя uoloop. Повышались статсы и рукопашка, до 33.33 (это предел для кача на кукле). Следует отметить, что на мобах скиллы росли ничуть не быстрей чем на людях.

Потом игрок сталкивался с необходимостью прокачки крафта. Прокачка крафта это десятки тысяч монотонных действий. Мой компьютер не выключался буквально месяцами. Каждую ночь, перед сном я ставил своего чара на макрос. Для крафта uoloop не подходил, т.к необходимо было выбирать вещь, которую нужно было скрафтить. Для этого подходил UOpilot, который в том или ином виде используют в разных играх (Albion Online) до сих пор. Я тогда очень мало понимал в программировании, поэтому даже пять шесть строк простейшего кода вызывали оторопь.



UOPilot WK. Вышел позже простого пилота. Более крутая версия, с переменными:



Чтобы рубить лес мы подводили персонажа к дереву и ставили луп на пару минут. В шахтах то же самое. Мы добывали денег на реги и ставили персонажа на прокачку магии. День за днём. День за днём. День за днём. По ночам в домах большинства игроков были жильцы. Они что-то крафтили, качали магию, прокачивали ближний бой.

Потом я научился двигать персонажа на клетку вперёд и использовать кирку. Макрос простейший. Шаг вперёд, использование кирки 10 раз, шаг вперёд. Цикл. Запускаешь в шахте, следишь в полглаза. В банк, и снова копать.
Чем дальше — тем больше. Мы оптимизировали макросы, учились различать цвет в точках на экране. Персонажи теперь ходили не по линии, а по всей поверхности шахты. Пытались писать систему, защищающие макросы от лагов. Оглядываясь назад — это было такое детство.

Люди устраивали ночные массовые прокачки резиста. Это когда в один дом набивалось по 15-30 человек с кучей регов и использовались массовые проклятия, которые не наносят урона но повышают резист. Иногда случались казусы — кто-нибудь ночью доставал меч, вырезал всех и собирал все реги. В качестве меры безопасности перед пропуском на резист-пати игроков начали убивать, проверять вещи в трупе и оживлять. С колющим-режущим не пускали.


Ассист и пилот были практически у каждого игрока. Но нас во многом не устраивал функционал, насколько я помню ассист не очень быстро работал и в каких-то случаях у игрока могло не получится достать меч, или использовать заклинание. И я открыл для себя UO Yoko Injection.

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


Постепенно, я начал осознавать, какой это великолепный инструмент и для остальных макросов. Так, например, инжекту не обязательно было наличие активного окна. У меня был альт-крафтер (из-за скиллкапа) и альт-воришка, но после возможности копать в несколько окон появились альты-копатели. В начале два. Потом четыре. Макросы становились всё совершеннее и совершеннее. Я уже давно получал удовольствие от программирования.

Программирование под игру гораздо интереснее обычного. Программируя под ммо ты сразу видишь результат. Вот чар двигается, вот он добывает. Вот портится домой и складывает руду в сундучок.
Паралельно Инжекту, а может и раньше появилось EasyUO, который так же работал на пакетном уровне:


Впоследствии, чтобы прокачать Blacksmithy я написал скрипт, который практически не сбивался. Персонажи ходил вдоль камней и добывали руду, в случае смерти им открывал гейт другой персонаж. Руды из камней было меньше, чем в шахте — но меня это вполне устраивало. У меня работало от 10 до 14 окон. Я не занимался RMT, а просто качал кузнечное дело и другие крафты. Впоследствии (а может и раньше), в качестве защиты от макросов администрация сделала так, чтобы периодически появлялись земляные элементали и убивали афк-шахтёров. Мне это не особо мешало.

Инжект попал под запрет, т.к в нём была функция быстрого лута. Решение разработчиков шарда было красивым — в бэкпак убитому помещался невидимый предмет, который функция быстрого лута инжекта поднимала в бэкпак. И это вызывало скрипт бана. У меня лут был отдельной функцией. Был список item_id предметов, которые можно лутить (скроллы, оружие и.т.п).

В конце моей игровой карьеры у моего дома было залочено много слитков разной руды стопками по 65555. Я забил на игру, дом протух. Говорят, за мой дом была бойня. Люди брали перевес, не могли нормально двигаться и драться и их убивали другие. Потом цикл повторялся. Оказал ли я влияние на игровую экономику? Скорей всего да. Хотя и не помню, чтобы цены на руду как-то сильно проседали — спрос был большой.

Конец первой части.

16 комментариев

Coven
Моя грань хорошо / плохо проходит вот тут:

Макросы для упрощения муторных последовательностей кликов в не очень хорошо структурированном интерфейсе, которые пишутся в игре (или за пределами игры, но с разрешения разработчиков, понимающих, что их интерфейс не очень удобен), которые я кликаю сам активно находясь в игре — хорошо.

То, что можно заряжать на час-два-ночь-неделю и уходить в другую комнату / на работу / в отпуск — плохо.

Почему одно хорошо, а другое плохо? Потому что то, что можно заряжать надолго и не играть превращает игру в соревнование не кто лучше играет сидя за компом, а кто лучше заряжает — мне в такое играть не интересно (хотя именно в этом я у очень и очень многих выиграю), я лучше найду игру где соревнуются в другом.
0
XsevenBeta
То, что можно заряжать на час-два-ночь-неделю и уходить в другую комнату / на работу / в отпуск — плохо.
Плохо, или хорошо — своими правилами определяют разработчики. Границы плохо/хорошо вообще не чёткие. Большинство шахтёров копали на простейших макросах, но посмотри, какую проблему в экономике могут создать продвинутые макросы (и люди которые их пишут), когда макро начинают работать 24/7. Если нельзя игровыми методами создать больше одного предмета за раз, а крафтить надо в цикле N — это поспособствует возникновению макросов.

Как только игроки вынуждено начинают использовать макросы для автоматизации простейших действий — это выпускает опасного джина из бутылки. Значит, впоследствии будут пытаться автоматизировать вообще всё. В начале игрок может переламывать себя, потому что outgame макрос это лишние напряги. Запускать что-то, скрипт писать… А потом после простейших макросов может втянуться. Макросы с каждым днём всё усложняющиеся быстро начинают распространяться внутри гильдий. Из гильдий уходят друзьям, друзья делятся с другими друзьями. А когда начинает макросить уже весь сервер — проблему гораздо сложнее решить. Драконовские методы и баны приведут к оттоку игроков. Системы защит обходятся и дороги в разработке. Вот она — цена ошибки игрового дизайнера.
0
basta4ya
я думал примерно так же пока не поиграл в игру со встроенным ботом.
достаточно лишь использовать эту машинку против владельца, пользуясь тем, что ты то живой человек.
например, летишь себе на драконе смотришь внизу кто-то суетится, по манере видишь — бот, спустился, напихал ему полную жопу огурцов, собрал то, что он там нафармил и полетел дальше, через полчасика, когда лут накопится — повторить.
знаешь что в шахте боты копают и их охраняет пара-тройка человек? собрал пачку и 5-6 людей, по быстрому убили охрану, фарманули шхтеров и спокойненько побежали по своим делам дальше.
0
XsevenBeta
Совершенно верно. Ботов, рано или поздно начинаешь принимать как за NPC. По сути NPC и есть — те же скрипты. Хорошо, когда игра позволяет стричь с ботов купоны. Плохо, если ничего с ними не сделаешь без потерь для себя. Проблема ботов — им совсем не обязательно фармить топ-мобов. Можно найти делянку попроще, но на которую не будет никто приходить и убивать. Боты берут количеством и тем, что они работают 24/7.
0
Jolly
Немного двоемыслия в тред, вдруг вы стали скучать по Атрону? =):

1. Я против ботоводов и макросов. Я вообще за pure legacy fair-play
2. Я писал макросы для UOPilot, AutoIT, мышу A4Tech X7, клавы семейства G15, полноценные Delphi-приложения для ботов или расширения функционала.

Как же 2 этих диаметральных мысли уживаются у меня в голове? Легко. Так как причина у них одна — кривой геймплей, созданный плохими разработчиками.

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

Если что-то можно за-абьюзить — это сделают 100%. В Conan Exiles, например, умерев командой можно получить свой труп и расчленить его на мясо. По сути из ничего ты получишь еду. Чтобы это не абьюзили — мясо будет сырым, даст отравление, да и особо неэффективно есть человеческую плоть. Но если был бы микроскопический профит — кто-то бы написал макрос или бы вручную умирал по 100500 раз в день. Все подобное нужно пресекать.

Я понимаю, когда в АА ломают клиент и обмен его с сервером, после чего делают спидхаки и купола. Это хардкорный вариант, с которым бороться на стороне разработчиков сложно.

Но вот с тем, чтобы не делать из игры унылый геймплей — они в состоянии бороться, было бы желание сделать нормальный продукт. Но текущие игры свелись к тому, что ты должен зайти на 1-2 часа в день «на дейлики», а дальше скукота, унылось, саморазвлечение и как следствие — боты, кликеры и тд.

Конечно изменение геймплея в сторону более увлекательного развлечения, вместо унылой тягомотины — большой плюс в «борьбу» с многооконностью и кликерами. Но это не отменяет необходимости контролировать автоматизацию и многооконность.

И делать это не так сложно, на самом деле. От профессионала это мало конечно спасет, но от 99% случаев кликеров и многооконности спасают довольно простые меры:
1. Руткит, который преподносится нам как GameGuard, Frost и тд и тп. Запущенный от имени системы процесс, контролирующий запуск стороннего софта, попыток изменить память запущенного процесса игры, а также запуск второго окна.
2. Оценка повторяемости действий клиента. Как на клиентской стороне (онлайн), так и на серверной (можно не в реал-тайм, а по логам).
3. Проверка запуска игры в виртуальной среде. Обычные VMWare детектятся по тому же имени процессора и тд.

Настроить автокликер на то, чтобы он более тщательно изображал «случайность» (то бишь человечность) действий — задача уже не для новичка.

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

Лично я за то, чтобы автокликеров, вторых окон и любых других подобных вещей не было, но дело не только в игроках.
2
XsevenBeta
Спидхаку уже лет 20. То что вскрыли протокол — никак не должно повлиять на защиту игры от спидхака. Но блин, как только появляется новая игра — первую неделю бегают дебилы на стероидах. Остальные дебилы телепортируются по карте как хотят.
Я легко могу оправдать плохую защиту игры от радаров. Тут действительно сложно, т.к как правило контроль идёт на стороне клиента. Вошёл другой игрок в твой радиус — с сервера уже начинают идти пакеты о движении и внешнем виде. Подозреваю, что если написать прокси через который идут пакеты и держать прокси на другом компьютере — радар вообще не возможно будет обнаружить. Но уж спидхак-то могли бы и пофиксить!!!

Решением проблемы радаров может быть передавать клиенту только того, что находится в пределах его игрового экрана (куда игрок смотрит — то и передаём), учитывая LOS. Но я сомневаюсь в жизнеспособности этой системы на текущем железе и сетях. Мнение дилетанта, но мне кажется нужен совсем другой пинг, чтобы работало корректно.
0
XsevenBeta
Обратите внимание, что грань довольно тонкая. Есть приемлимые макросам (по крайней мере для того шарда):
1. Копать одну клетку, потом самому переставлять чара
2. Копать 10 клеток
И макросами, в которых игрок вообще практически не нужен.
0
Jolly
Если тебе как разработчику нужно сделать добычу ресурсом времязатратным процессом, то совершенно необязательно заставлять игрока 10 раз кликать каждые 5 секунд на сбор ресурса. Сделай сбор по клику за 50 секунд всех 10 ресов. А за эти 50 секунд игрок сможет сходить выспаться.

Никто же в шахматах не заставляет игроков при ходе ферзем вставать на каждую клетку на пути. Это идиотское усложнение, которое замакросят по вине разрабов.

Внеигровые макросы — зло. Это просчёт геймплея
0
eupraxia
Основная причина появления ботов — это не плохие, злые игроки, которые хотят поломать другим игру, а плохой дизайн самой игры.

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

Лично мое мнение — это приносит известную пользу хотя бы в том, что умный разработчик в будущем заделает эти дыры. Этакое соревнование щита и клинка.
0
Jolly
Да, но разработчики и издатели предпочитают поле боя сместить в сторону платежной системы vs шоп в игре. А на борьбу с читерами обращают внимание когда уже игроки не могут дальше. Привет купола в АА
0
Jolly
Кстати, ты же увлекаешься Аллодами, расскажи (желательно отдельной заметкой) про текущую жизнь Аллодов онлайн.
1
XsevenBeta
Ооо! Мне бы тоже было очень интересно. Не поверишь, только сегодня в курилке про эту игру вспоминали :).

Жаль мало в каких играх вводят воздушные корабли. Биться на таких значительно интереснее, чем на морских кораблях.
0
eupraxia
Да, надо как-нибудь написать.
2
Coven
Дадададада, пожалуйста. Как будет время и столько, сколько напишется, разумеется. Про неизвестный мир всегда интересно читать если знающий ветеран рассказывает.
0
XsevenBeta
Основная причина появления ботов — это не плохие, злые игроки, которые хотят поломать другим игру, а плохой дизайн самой игры.
Тут Сид неплохо по этой теме прошёлся.

Знаменитый игровой дизайнер Раф Костер, чье имя и авторитет даже у самого яростного противника автоматизации должны развеять все сомнения, собрал множество аксиом и теорем, назвав их Законы дизайна онлайновых миров. Пожалуйста, прочитайте, запомните и вспоминайте их прежде, чем начнете спорить о чем-либо из области игровой философии.

Вот те из них, которые касаются темы в нашей статье:

Законы Ламберта:
С ростом реализма виртуального мира увеличивается число возможных действий персонажей
Возможности для эксплойтинга и диверсий прямо пропорциональны количеству возможных действий игрока
Заскучавший игрок — потенциальный диверсант
Рано или поздно игроки найдут кратчайший путь к сыру
Закон лазейки Хирупа
Все, что может быть неправильно использовано, будет.
Макросы, боты и автоматизация
Что бы вы ни делали, кто-нибудь обязательно придумает способ автоматизировать игру в вашем мире.
Естественное следствие:
Хотите узнать, какие части игры утомительны и неинтересны — посмотрите, какие из них автоматизируются игроками.
Игровые системы
Что бы вы ни делали, игроки расшифруют все формулы, статистические зависимости и алгоритмы в вашем мире, экспериментируя с ними.
Автоматизируется все, что скучно. Если что-то сильно отдалено и недостижимо для игроков, они это получат более легким путем, используя читы, баги и эксплойты. Кстати, здесь есть прекрасная отсылка и к другому обсуждению касательно PvP/PK активностей:
0
Coven
Дополнение:

Особенно сильно автоматизируется то, что приносит деньги.

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