Экономика Diablo Iii Была Разрушена Целочисленным Переполнением

Diablo III от Blizzard, популярная онлайновая ролевая игра в жанре Action/RPG, выпущенная почти год назад, имела немало технических проблем.

Начиная с ошибки 37 и заканчивая лагами, которые приводят к сотням потерянных часов, Blizzard провела последний год, настраивая серверную часть, чтобы лучше справляться с миллионами активных игроков.

Diablo III также можно отметить своей реальной экономикой с упором на региональные аукционные дома, где игроки могут продавать редкие предметы за золото, исчисляемое миллионами и миллиардами (инфляция сумасшедшая).

Кроме того, в Diablo III есть реальный аукционный дом, где игроки могут продавать золото или предметы за реальные деньги.

Вчера вышел патч 1.0.8, который должен был улучшить развитие персонажа.

После нескольких недель тестирования в Public Test Realm, где добровольцы проверяют патч, чтобы убедиться, что он не причиняет никакого вреда игре, патч был успешно опубликован.

Да, патч был полностью протестирован на PTR, но за исключением одной незначительной настройки, добавленной в последнюю минуту.

И эта доработка разорвала экономику игры на мелкие кусочки.



Экономика Diablo III была разрушена целочисленным переполнением

В финальную сборку были внесены следующие изменения:

Размер стека для продажи золота в аукционном доме увеличен с 1 миллиона до 10 миллионов.

Обычно на аукционе Real Money Auction House игрок может продавать золото «пачками» по 1 миллион, максимум 600 порций.

В версии 1.0.8 этот прирост соответственно увеличен до 10 миллионов.

Что происходит, когда игрок пытается предложить абсурдно большую сумму? (абсурд, поскольку получить даже 100 миллионов золота для одного игрока уже давно считается практически невыполнимой задачей — Blizzard умеет недооценивать игроков) Пользователь Reddit tyropro великолепен объясняет : На RMAH можно было продать золото, цена которого, если бы была продана за реальные деньги, не превысила бы 250 долларов.

Опубликованное видео, например, показало продажу 6 миллиардов золота — 600 х 10 000 000 по цене 0,39 доллара за стопку, на общую сумму 234 доллара.

Когда игрок размещал такой аукцион, на продажу попадало только около 1,7 миллиарда, а остальное «исчезало» до тех пор, пока золото не вернулось в сундук и не приумножилось там.

Вот точные цифры из видео:

Аукцион RMAH создается: 6 000 000 000 золота
Аукцион отображается как: 1 705 032 704 золота
Пропавшее! 4 294 967 296 золота
Отсутствует, если разделить на 2: 2 147 483 648 золота
4 294 967 296 — это 2 32 градусов, ограничение на целое число без знака, интересная реализация со стороны Blizzard. Проще говоря, код продажи золота в RMAH не может работать с числами большими, чем int32, и в результате переполнения удваивает количество золота в карманах продавцов.

Так, злоумышленник может создать аукцион на 6 млрд, из которых на продажу будет выставлено только 1,7 млрд (и, соответственно, со счета «взломщика» будет списано только 1,7 млрд), отменить его и получить 6 млрд обратно в его аккаунт. Чистая прибыль – 4,2 миллиарда.

Повторяйте до полного удовлетворения.

Эксплойт был показан на одном из сайтов и быстро распространился среди людей.

Любой, кто знал об ошибке, мог ее повторить.

И началось веселье.



Экономика Diablo III была разрушена целочисленным переполнением

Да, это 420 миллиарды золото! После того как мошенники выкупили все предметы в аукционных домах, они выставили их на продажу в Аукционном доме за реальные деньги.

За реальные деньги.

И люди их покупали.

И это худший вариант развития событий для Diablo III. И все из-за непроверенного небольшого изменения в патче.

Что Blizzard может с этим поделать? Было бы неплохо откатить все достижения за день до выхода патча, но это вызвало бы массу негативных отзывов.

Но оставлять экономику в такой ситуации нельзя — это обесценило бы предметы, а в Diablo III речь идет именно о предметах.

В конце концов, Blizzard не сделала откат, но забанила всех, кто жульничал, и вернула деньги всем, кто потратил реальные деньги.

Изменение патча, вызвавшее хаос, было отменено, и проблема временно решена.

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

От переводчика : И это второй баг в игровой экономике, о котором стало известно менее чем за неделю — в субботу CCP рассказала, как это сделать непродуманный функционал привел к почти аналогичной ситуации в EVE Online .

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

Интересные возможности нового цифрового мира.

Теги: #int overflow #diablo 3 #деньги #информационная безопасность #Разработка игр

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.