Diablo III также можно отметить за реальную экономику, с акцентом на региональные Аукционные Дома, где игроки могут продавать редкие предметы за золото, которое исчисляется миллионами и миллиардами (инфляция сумасшедшая). Кроме того в Diablo III используется Real World Auction House, где игроки могут продать золото или предметы за деньги реального мира.
Вчера был выпущен Патч 1.0.8, который должен был улучшить прогресс персонажей. После нескольких недель тестирования в Public Test Realm, где добровольцы обкатывают патч для того, чтобы понять, что он не нанесет никакого вреда игре, патч был успешно опубликован.
Да, патч был полностью протестирован в PTR – но за исключением одной мелкой доработки, добавленной в последнюю минуту. И эта доработка порвала экономику игры на мелкие кусочки.
Финальный билд включал следующие изменения:
Размер стека для продажи золота в аукционном доме увеличен с 1 миллиона до 10 миллионов.
Как правило, в Real Money Auction House игрок может продавать золото «пачками» в 1 миллион. В версии 1.0.8 этот инкремент, соответственно, увеличен до 10 миллионов. Что же произойдет, когда игрок попытается выставить на торги абсурдно большие суммы?
Пользователь Reddit с ником tyropro прекрасно поясняет:
На торги в RMAH можно было выставить золото, которое при продаже в реальных деньгах не превышало бы 250 долларов. В опубликованном видео, например, показывалась продажа 6 миллиардов золота — 600 x 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 золота |
2,147,483,648 (или 231) – максимальное значение, которое ты можешь хранить в int32. Я не программист, но я ходил на уроки в средней школе и знаю о пределах различных типов.
Проще говоря, код для продажи золота в RMAH неправильно обрабатывает числа больше 2,147,483,648 и в результате задваивает золото в карманах продавцов.
4,294,967,296 это 232 степени, предел для целого без знака, интересная реализация со стороны Blizzard.
Итак, нападающий может создать 6-миллиардный аукцион, из которого выставится на продажу только 1.7 миллиарда (и, соответственно, только 1.7 миллиарда спишется со счета «взломщика»), отменить его, и получить себе обратно на счет уже 6 миллиардов. Чистая прибыль – 4.2 миллиарда. Повторить до полного удовлетворения.
Эксплоит был показан на одном из сайтов и быстро разошелся по людям. Повторить его мог каждый, кто знал о баге.
И началось веселье.
Да, тут 420 миллиардов золота!
После того, как обманщики скупили все предметы в Аукционных Домах, они выставили их на продажу в Real Money Auction House. За реальные деньги. И люди покупали их.
И это самый худший сценарий для Diablo III. И все из-за не протестированного маленького изменения в патче. Что компания Blizzard могла сделать с этим? Хорошо было бы откатить все достижения на день до выпуска патча, но это вызвало бы множество негативных откликов. Но оставлять экономику в таком положении невозможно – это обесценило бы предметы, а Diablo III как раз про предметы и есть.
В конце концов, Blizzard не сделала откат, но забанила всех, кто читерил, и вернула деньги всем, кто потратил реальные деньги. Изменение в патче, вызвавшее хаос, было отменено и, соответственно, проблема временно решена.
И пусть это будет уроком – не протестированные изменения в последнюю минуту могут привести к коллапсу всей экономики.
От переводчика: И это уже второй баг в игровой экономике, о котором стало известно менее чем за неделю – в субботу CCP рассказала, как непродуманный функционал привел практически к аналогичной ситуации в EVE Online. Да, экономика в играх виртуальная, но сбои и/или непродуманный функционал позволяют найти такие пути, которые позволяют заработать уже реальные деньги.
ссылка на оригинал статьи http://habrahabr.ru/company/apps4all/blog/179161/
Добавить комментарий