Как Ганди стал любителем ядерного оружия
Махатма Ганди ― всемирно известный борец за независимость Индии ― проповедовал философию ненасилия и считал, что изменений к лучшему можно достичь лишь мирным путём. Но кое-где он предстал в совершенно другом свете: в игре Sid Meier’s Civilization Ганди вёл кровопролитные войны с применением ядерного оружия. Как же так вышло?
Сначала разберёмся в том, как устроена сама «Цивилизация». В игре каждое государство возглавляет один и тот же лидер, который управляет страной на протяжении всего исторического процесса, от древности до современности. Эта условность помогает существенно упростить геймплей и не даёт игроку запутаться в особенностях каждого правителя. Кроме того, у каждого лидера в игре 1991 года был параметр, который отвечал за агрессию и принимал значение от 1 до 10, где один — низший уровень агрессивности, а десять — высший. Так вот, персонаж Махатмы Ганди имел наименьший параметр агрессии, равный единице, из-за чего он вел только мирную деятельность и защищался. Когда ход игры доходил до смены государственного строя, Ганди принимал демократию как преимущественный строй для мирных цивилизаций. В игре установление демократии уменьшает агрессивность лидера на два пункта, но из-за того, что данные находились в однобайтовой беззнаковой целочисленной переменной, которая может принимать значение от 0 до 255, происходило целочисленное переполнение и уровень агрессии индийского лидера становился равен 255. Вследствие этого Махатма Ганди менял роль миротворца на роль ядерного агрессора.
Таким образом, «Ядерный Ганди» ― персонаж интернет-мемов ― появился благодаря ошибке разработчиков игры Sid Meier’s Civilization. Именно из-за бага персонаж-пацифист Махатма Ганди в определенное время становился агрессивным и активно использовал ядерное оружие. «Ядерный Ганди» стал одной из самых известных ошибок в игровой индустрии. Этот парадокс рассматривают как пример целочисленного переполнения на курсах информатики, в том числе и в Гарвардском университете.