Fallout 4 выдала игроку 4 миллиарда стимуляторов, но все они оказались ненастоящими

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

Именно это случилось с одним из игроков Fallout 4. Заглянув в инвентарь, он обнаружил там 4 294 967 295 стимуляторов, хотя модов не ставил и такого количества никогда не собирал.

Странное число объясняется просто, ведь это 2³² – 1, максимальное значение беззнаковой 32-битной переменной. Счётчик предметов не умеет хранить отрицательные значения. Если код из-за ошибки вычитает единицу из нуля, переменная "проворачивается" к своему максимуму. В комментариях привели наглядное сравнение:

Представьте старый механический одометр с барабанами. Если на отметке 000000 заставить его крутиться назад, он мгновенно покажет 999999.

Оставался вопрос, как вообще можно потратить стимулятор, которого нет. Ответ нашёлся почти наугад: у героя была силовая броня с модификацией, которая автоматически вкалывает стимулятор при низком здоровье. Судя по всему, последний шприц в один и тот же кадр использовали и броня, и сам игрок, а проверку на ноль код не выполнил. Вишенкой на торте стало разочарование: инвентарь на деле оказался пуст, так что баг был чисто визуальным, и продать миллиарды стимуляторов за крышки не получилось.

Подобные ошибки для серии почти родные. Спидраннеры Fallout 4 давно используют похожий трюк с переполнением, только намеренно:

  • надевают стопку одинаковых предметов брони с бонусом к переносимому весу

  • переименовывают их на верстаке, чтобы стопка распалась

  • снимают предметы по одному, и бонус вычитается несколько раз, уводя значение в минус

Кто-то по случаю вспомнил легенду о "ядерном Ганди" из Civilization, который будто бы из-за такого же переполнения превращался из пацифиста в поджигателя войны. Красивая история, но Сид Мейер и Брайан Рейнольдс её давным-давно опровергли: в оригинальной игре подобного бага не было.

Броня спасала героя автоматически, а убить попыталась его же собственная бухгалтерия.

Больше статей на Shazoo
Тэги:

Об авторе

Редактор
Говорят, что здесь нужно написать что-то про себя. Окей. Родился, вырос, любил, страдал – тут все по классике. Живу с котом, пишу про игры с 2014-го года, а на Shazoo – с 2021-го. Люблю стратегии и RPG, обожаю Morrowind и Skyrim, до сих пор поигрываю с товарищами в пятую Циву и третьих Crusader Kings. Горжусь тем, что во всех своих обзорах на стратегии (хоть и редких) писал про достоинства и недостатки, которые зацепили меня лично, а не превращал текст в пересказ пресс-релиза.