Но из всех контекстных шуток и внутренних мемов, которые за долгие годы породила Civilization, самым смешным мне всегда казалось выражение «Ядерный Ганди». Чтобы объяснить эту шутку, нужно сначала рассказать одну историю.
В качестве предводителя цивилизаций мы обычно выбирали самого знаменитого исторического персонажа, представляющего соответствующую культуру: лидером американцев был Линкольн, у англичан была Елизавета I, и т. д. Это способствовало узнаваемости, но вызывало некоторые проблемы. Вот пример: Махатма Ганди – определенно самая узнаваемая историческая личность Индии, но его трудно назвать завоевателем. И все же я решил, что в этом нет ничего страшного, ведь игру можно выиграть и мирным путем, и Ганди мог стать для оппонентов страшной угрозой за счет высочайшего уровня научного развития своей нации, избегая при этом открытых военных столкновений. Сбалансированный искусственный интеллект может принимать любые обличия.
И вот тут начинается самое интересное (и все это, что самое любопытное, было подробно зафиксировано и доступно онлайн). Все лидеры наций получили рейтинг от 1 до 12 по целому ряду параметров, и по шкале военной агрессии Ганди, как и можно было ожидать, получил единицу. Но другой фрагмент кода автоматически понижал уровень агрессии у любой нации, которая достигла демократического правления, то есть теоретически у Ганди агрессия должна была упасть до минус единицы. Однако отрицательные значения показателей в таких расчетах были запрещены, поэтому произошло так называемое целочисленное переполнение, и счетчик выдал максимальный результат минус единица – 255. Так что, как только в Индии воцарялась демократия, Ганди моментально превращался в безумного милитариста и начинал кидать на всех соперников атомные бомбы. Считается, что мы довольно быстро сделали патч, в котором эта ошибка исправлена. Но игрокам так понравилось эта анекдотическая трансформация, что история превратилась в мем и с тех пор всплывает время от времени в сообществе любителей Civilization. В интернете очень популярны были изображения Ганди с подписями «Сначала они тебя не замечают, потом смеются над тобой, затем борются с тобой. А потом ты устраиваешь ядерный холокост и сметаешь их с лица Земли» или «Ядерные бомбы заставят весь мир преклонить передо мной колени». Другие мемы обходились без слов, например обработанное в Photoshop изображение Ганди верхом на падающей на землю бомбе в финальном кадре «Доктора Стрейнджлав».
Но мне история про ядерного Ганди кажется смешной не из-за многочисленных аллюзий и отсылок. Мне смешно оттого, что все это неправда. Никакого переполнения не было.
Правда то, что Ганди в определенный момент игры начинал использовать атомные бомбы, если его страна вступала в войну, как и любая другая цивилизация в игре, – это многим показалось странным. В реальности Авраам Линкольн тоже вряд ли бы стал бомбить соперников атомным оружием, но идея была в том, что у всех есть предел терпению. Еще Ганди действительно угрожал соперникам, потому что одной из его отличительных особенностей было стремление избежать войны, а взаимное сдерживание – довольно эффективный способ этого достичь. Все лидеры в игре использовали один и тот же шаблон для дипломатических переговоров, и реплика Ганди «Наши слова подкреплены ядерным оружием!» ничем не отличалась от аналогичных высказываний Наполеона или кого-либо еще, но, учитывая природу индийского лидера, фраза могла показаться несколько нелогичной. Помимо прочего, индусы, как нация, активно развивающая науку, зачастую получали ядерное оружие раньше всех в игре, а значит, угрозы Ганди о ядерной войне могли прийти тогда, когда его оппоненты только работали над изобретением пороха. Проще говоря, этот скромный аскет мог при определенных обстоятельствах показаться чрезмерно агрессивным, но дальше слов дело не заходило.
Но никакого переполнения и рейтинга военной агрессии 255 в игре никогда не было. Такого рода ошибки могут возникнуть из-за так называемых беззнаковых символов, которые по умолчанию не используются в языке C и которые я не использовал для создания кода для лидеров. Брайн Рейнолдс написал Civilization II на C++ и тоже обошелся без таких символов. Мы никогда не получали никаких претензий из-за бага с Ганди ни после релиза, ни после патчей. Уровень военной агрессии у индийского лидера оставался на единице на всем протяжении игры.