Почему предел оказался таким точным
В World of Warcraft золото, серебро и медь были не тремя независимыми валютами, а разными разрядами одной суммы: 100 медных монет составляли серебряную, а 100 серебряных — золотую. Поэтому игру было удобно хранить общий баланс как одно целое число медных монет.
Но число в таком хранилище не могло расти бесконечно. Для него использовали 32-битное знаковое целое — формат, который занимает 32 двоичных разряда и отводит часть возможных значений под отрицательные числа. Максимальный положительный баланс в этом формате — 2 147 483 647 медных монет.
Как из технического потолка вышла сумма в золоте
Чтобы перевести этот предел в привычные игроку единицы, его нужно разделить сначала на 100, а затем ещё на 100. Получаются 214 748 золотых, 36 серебряных и 47 медных монет. Последние 47 медных — не особый бонус или игровой тариф: это остаток после деления максимального числа на количество монет в одном золотом.
Иными словами, ограничение возникло не из-за того, что разработчики решили остановить богатство персонажей именно на такой круглой сумме. Оно следовало из того, как баланс представлялся внутри программы.
Что происходит у самого края
Такой лимит напоминает, что игровая экономика зависит не только от цен на предметы и способов заработать деньги, но и от формата данных, выбранного для их хранения. Пока кошелёк далеко от потолка, этот выбор незаметен. Но на предельной сумме уже важна каждая медная монета: дальше число просто не помещается в отведённый диапазон.






