June 11

Как один навык сломал экономику всего сервера: история MapleStory

Разработка игр – дело тонкое. Разработка игр с развитой экономической системой – ещё тоньше. А если это ещё и онлайн-игра, то вообще тушите свет. Количество вещей, которые нужно продумать, не упустив ни единого нюанса, стремится к бесконечности, а последствия любой ошибки могут привести к катастрофе. Одно дело сломать однопользовательскую игру и получить с помощью экслойта всё, что захочешь (привет играм от Беседки) – последствия тут не такие фатальные, а вот в онлайне…


MapleStory — это южнокорейская гриндилка *зачёркнуто* MMO, разработанная компанией Wizet и изданная Nexon. В Корее игра вышла в 2003 году, а европейский сервер открылся значительно позже, в апреле 2007-го. Если вы никогда не видели игру, представьте себе старый добрый платформер в духе Super Mario Bros, только с ролевыми элементами, тысячами игроков на одном сервере, лутом, гильдиями и огромным количеством аниме-персонажей. Игра выглядит мило и невинно: пиксельные грибочки, разноцветные слаймы, симпатичные задания.


Но не дайте внешности себя обмануть. Под капотом у неё полноценная виртуальная экономика с внутриигровой валютой (мезо), огромным рынком и всеми сопутствующими проблемами: инфляцией, ботами и людьми, которые ищут лазейки.


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


В MapleStory есть классы Chief Bandit и Shadower — условно говоря, воры. У обоих классов есть умение под названием Meso Guard. Механика простая: когда умение активно, персонаж при получении урона теряет не здоровье, а мезо: получается что-то вроде денежного щита. В теории — отличная идея. На практике же кто-то быстро понял, как эту механику можно вывернуть наизнанку.
Максимальное отрицательное и максимальное положительное значение урона в MarpleStory определялось её 32-битной архитектурой и составляло от -2 147 483 648 до 2 147 483 647. Хакеры научились подделывать сетевые пакеты — данные, которые клиент игры отправляет серверу. В частности, они сообщали серверу, что персонаж получил урон в –2 147 483 648 единиц, то есть максимально возможный отрицательный урон.


Дальше срабатывал Meso Guard. Персонаж получил урон, значит нужно списать с его счёта мезо. Но урон был отрицательный, и логика умения послушно начисляла персонажу два с лишним миллиарда мезо за один удар. Это был не просто эксплойт, а натуральный печатный станок, работающий без остановки.
Узнав о лазейке, хакеры действовали методично. Они создавали сотни дополнительных аккаунтов-«мулов» для хранения денег. Персонаж-вор генерировал по два миллиарда мезо снова и снова, затем переводил деньги мулу, освобождал место в кошельке и повторял процесс.


Параллельно эти деньги выбрасывались в экономику: хакеры массово скупали товары с прилавков обычных игроков, расплачиваясь огромными суммами и распыляя «заражённые» мезо по всему серверу. Началась инфляция. Цены скакнули вверх. В экономику влилось такое количество денег, что покупать или продавать что-то потеряло смысл – предметы были куда ценнее валюты.
Неизвестно, сколько именно мезо было создано из воздуха, но, судя по масштабу последствий, нулей у этой суммы было очень много. 1 февраля 2011 года Nexon Europe наконец признала происходящее публично, но принятые компанией решения лишь усугубили ситуацию.


Nexon начала банить аккаунты, у которых было подозрительно много мезо. Логика понятна, но автоматическая система зацепила огромное количество честных игроков, которые просто торговали и накопили приличные суммы законным путём. При этом многие из реальных хакеров, разбросавших деньги по сотням мул-аккаунтов, в бан не попали — у каждого отдельного аккаунта было недостаточно средств, чтобы сработал триггер. Честные игроки негодовали, хакеры злорадствовали.


Самым очевидным решением в такой ситуации обычно бывает откат к состоянию до обнаружения эксплойта. Но Nexon EU объяснила: они обнаружили проблему слишком поздно. К тому моменту, когда администраторы среагировали, эксплойт уже работал достаточно долго, и откат означал бы потерю прогресса для тысяч игроков, и компания решила не делать этого. Проблема в том, что отсутствие отката означало то, что грязные деньги остаются в системе.


Примерно через неделю, когда стало ясно, что ущерб необратим, Nexon приняла радикальное решение. Компания объявила о принудительном списании мезо у всех игроков, которые заходили в игру в период с 5 января по 9 февраля 2011 года. Вообще у всех.


Законопослушные игроки открывали игру и обнаруживали, что лишились до 90% своих сбережений. Тех самых, которые они зарабатывали часами утомительного корейского гринда, честной торговли и прохождения подземелий. Хакеры, конечно, тоже потеряли процент, но у них были спрятаны триллионы на мулах. Потеря даже 90% денег всё равно оставляла их в большом плюсе. Честные же игроки в большинстве своём просто остались ни с чем.


Форумы взорвались от возмущения. Это было примерно, как если бы правительство после ограбления банка решило взыскать убытки с его вкладчиков. Nexon в конечном счёте залатала дыру: сервер получил патч, закрывший возможность подделки пакетов с уроном. Часть аккаунтов была забанена; часть забаненных после расследования разбанили.
Хуже всего для компании оказался репутационный ущерб. Многие игроки, потерявшие накопления без объяснений, просто ушли. В игровом сообществе этот эпизод надолго остался примером того, как не нужно реагировать на экономические кризисы в MMO.

Подпишись на CatGeek!