«Ядерный Ганди» из Sid Meier's Civilization оказался мифом

Игорь Ерышев 9 сентября 2020 16:20 39

Цикл глобальных стратегий Civilization Сида Мейера (Sid Meier) и студии Firaxis Games известен по всему свету. Известен не только благодаря своему увлекательному геймплею и обилию отсылок к истории, но и в силу одного своего необычного бага, связанного с Махатмой Ганди (Mahatma Gandhi). Бага, которого, по словам самого Мейера, на самом деле нет и не было. Во всяком случае, в том виде, в котором о нём любят рассказывать фанаты.

https://www.youtube.com/watch?v=lQBV3-kwh5k&ab_channel=sn0wsh00

Много лет геймеры из уст в уста передавали истории о том, как по вине технической неполадки индийский политический деятель из миротворца постоянно превращается в бряцающего ядерным арсеналом тирана. Объяснений феномену придумали массу, однако самый известный вариант звучит довольно просто.

Согласно легенде, если геймер или мировой лидер примет демократию в оригинальной Civilization, его рейтинг агрессии автоматически понизится на два очка. А так как у Ганди он по умолчанию составляет единицу, игра не сможет сделать его ещё большим пацифистом — и вместо отрицательного значения выставит показатель на максимум (255). Неполадка пришлась фанатам по душе, и в дальнейшем (при разработке сиквелов) разработчики якобы намеренно выкручивали «злобу» политика на максимум.

История красивая — но, как утверждает сам Сид Мейер, с реальностью ничего общего не имеет. В своих мемуарах Sid Meier's Memoir!: A Life in Computer Games разработчик пишет, что подобного бага в первой части не существовало, а объяснение действий ИИ целиком неверное. Хотя шутка ему в целом нравится, делиться правдой по поводу странного поведения виртуального Ганди он не собирается. Тайна пусть останется тайной.

https://www.youtube.com/watch?v=QfvLcozLwtE&ab_channel=RNBlade

Другие новости

Комментарии

Не помню о пятой или шестой это было, но у всех лидеров есть критерии которые им нравятся и не нравятся (и это влияет на отношение), есть список публичных, но есть и скрытые по нескольку из которых выбирается перед началом сессии. Вот у Ганди тоже есть особая такая и он может выбрать ядерный вариантов (с большей вероятностью будет создавать и использовать ядерное оружие)
Ух ты, а я как раз сегодня написал что-то вроде «static constexpr ptrdiff_t cakeOffset = — 42;». Это получается я не прав и тортика не существует?
Особой проблемы проверить это нет, видимо просто не нашёлся энтузиаст. Я бы даже начал с исследования сохранений, сделал бы дифф между сохранением с мирным Ганди и с ядерным Ганди. Затем можно исследовать как эти сохранения делаются и таким образом выйти на адреса структур в памяти. Дальше по обращениям к этим структурам найти код, изменяющий агрессию и понять как так получается.
Или взять что-то вроде cheat engine под соответствующую версию Windows (или даже в DOS-е это делать), найти изменение переменной агрессии в памяти, а дальше уже в отладчике смотреть какой код это делает. Лично я не вижу тут особой проблемы, было бы желание.
Согласно легенде, если геймер примет демократию
Стоп, а разве было не сама цивилизация, да и -1, а не два. Как помню суть в том, что Ганди всегда принимал демократию (-1 к агрессивности к его уже +1 по базе и того 0), а когда игра вступает в ядерную эпоху то у всех опускается агрессивность на еще -1, а поскольку -1 не существует в программировании то значение берется максимальное
Торт окажется правдой?
Он всегда был правдой.
(¬‿¬ )
Все комментарии