Баги — это страшно
| « | J̸͚̺̍ŭ̵͊͜s̴̳̒t̵̺͔͂͗ ̷̹̔͗͜M̴̗̳̀ö̸̫͖́n̴̘̿̊ĩ̶̱ḳ̴͜͝a̷̻͘ | » |
| — ??? | ||
(link)
FlinnFlyTaggart просвещает на данную тему.Так вы говорите, что баги — это смешно? Ну, не в этот раз!
Если ваш бедный компьютер подхватит какую-нибудь паранормальщину, то он обязательно будет глючить. Причём очень крипово. Ваш бедный курсор бегает туда-сюда, на экране появляются странные артефакты, и вы слышите раздражающие звуки шума. И тут выскакивает окно Блокнота с надписью «Я УБЬЮ ТЕБЯ, USERNAME!», после чего проигрывается скример. Жуть полнейшая, бр-р!
Данное явление, получившее название «Глитч-хоррор» (англ. Glitch-Horror), коренится в неискоренимой (вплоть до маразма) тяге человеческого разума пытаться объяснить с помощью сверхъестественных причин то, что не получается объяснить естественными. А поскольку информационные технологии — штука сложная на редкость (тем более с их нынешними темпами развития), то не удивительно, что у непрофессионала возможность объяснить очередное «восстание машин» рационально заканчивается не быстро, а очень быстро. Недаром ещё десяток-другой лет назад синонимом работы программиста было «танцы с бубном».
Популярности явления мы обязаны всяким крипипастам жанра Смертельные файлы, а также фильмам вроде «Звонок» и всяким слухам о взломах ТВ, в которых показывали страшные картинки. Приём очень любим авторами киберпанка и всяких постмодернистких инди-хорроров, которые делают ставку на разрушение четвёртой стены.
Литература
- Азимов, Айзек — рассказ «Как потерялся робот» из цикла «Я — робот». Первый из трех азимовских законов роботехники гласит: «Робот не может причинить вред человеку или своим бездействием допустить, чтобы человеку был причинён вред». Для работы на одной из космических станций в обстановке секретности (земное общество и так весьма настроено против роботов) была выпущена серия машин, в которой этот закон был урезан до первой части — «не может причинить вред», ведь работа в опасных условиях подразумевает, что человек вынужден иногда сознательно идти на риск или даже вред для себя, чего обычный робот допустить не может. Однако такое изменение закона порождает возможность фактически убить человека: теперь закон не мешает роботу намеренно создать опасную ситуацию, зная, что его способностей достаточно, чтобы спасти человека, значит, его действия напрямую не угрожают человеку, а затем просто не вмешиваться, ведь закон больше этого не требует. Пример намеренно заложенного эксплойта, приведшего к неожиданным последствиям.
- Лем, Станислав. Этот автор любит такие фокусы, правда в силу времени написания, они чаще имеют техническую или смешанную, а не чисто программную, природу:
- «Рассказы о пилоте Пирксе»
- «Патруль». Пиркс раскрывает загадку исчезновения нескольких, таких же как он, патрульных: при определённых условиях система наблюдения корабля начинает проецировать фантом, выглядящий как неопознанный корабль, вдобавок его мерцание слегка гипнотизирует пилота. Впавший в транс пилот в погоне за электронным призраком разгоняет ракету, пока не кончаются топливо и кислород.
- «Терминус». Пограничный случай, поскольку причины не объясняются. Пиркс обнаруживает, что старый робот на прошедшем капитальный ремонт корабле каким-то образом запомнил и периодически воспроизводит переписку запертых в своих отсеках и перестукивающихся азбукой Морзе умирающих астронавтов. Это производит жуткое впечатление, словно в роботе обитают «призраки» погибших, не осознающие своей смерти. Окончательного ответа, так это или нет, является поведение робота просто артефактом сбоящей техники или «призраки» в его памяти осознают себя, рассказ не дает.
- Когда Пиркс пытается войти в контакт с ними, ответ таки получает, а потом «призраки» начинают спрашивать, кто он. Но тут мы подходим к проблеме китайской комнаты…
- «Условный рефлекс». Из-за сочетания нескольких факторов на отдалённой лунной станции аппаратура иногда выдает такую картину, словно вышедший для обслуживания научной аппаратуры член команды сорвался в пропасть и теперь умирает, хрипя в микрофон. Дополнительной жути на наблюдателя нагоняет тот факт, что во время постройки станции такой случай действительно произошел и человек много часов умирал под обвалом именно в этой пропасти. Кинувшийся на поиски «погибающего коллеги» космонавт сам становился жертвой, а его вернувшийся напарник кидался следом за уже реальным пострадавшим, с тем же результатом. К счастью для напарника Пиркса, пилот оказался не склонен к мистике, зато склонен к трезвому логическому мышлению.
- «Ананке». Робопилот в процессе своего программирования-обучения воспринял от «наставника» вынесенное в заглавие психическое расстройство (кратко говоря — крайнее упрямство, педантизм и склонность к запредельному перфекционизму). Это приводит к катастрофе, когда в тривиальной ситуации, при штатной посадке на планету, корабельный компьютер самостоятельно начинает усложнять задание. Заодно и пример сбывшегося прогноза: в некоторых из модных сейчас нейросетей похожий эффект действительно может возникнуть.
- «Рассказы о пилоте Пирксе»
Видеоигры
Примеры намеренного использования тропа
- Да, уважаемые читатели. Нынешние хакеры могут создавать вирусы, которые спровоцируют у вашего компьютера паранормальщину. Гуглите Windows XP Horror Edition и сами увидите.
- Многочисленные крипипасты про смертельные файлы, в которых сюжет вертится вокруг НЁХ, которая поселяется в компьютере или компьютерной игре и вытворяет жесть. Яркие примеры: Бен Утопленник и Sonic.exe.
- Deus Ex: Human Revolution — если ближе к концу согласиться поставить «обновление программного обеспечения для имплантов» в официальной клинике «Протез», то очень быстро протагонист словит неслабые глюки (и это еще мелочи, большая часть обладателей имплантов впадёт в безумие): в обновление намеренно была внесена уязвимость (т.е. недостаточная «защита от дурака» или злоумышленника, которым в этот раз был сам автор программы).
- Doki Doki Literature Club! — игра выдаёт себя за типичный симулятор свиданий с несколькими анимешными вайфу, но потом она скатывается в хоррор с разрушением четвёртой стены. Just Monika.
- Epic Battle Fantasy 5 — тут под это дело есть целый квест с глючными боссами. По итогам у главгероев остались психологические травмы, вероятно, на всю жизнь.
- Batman: Arkham Asylum — Пугало пугает игрока тем, что симулирует зависание игры.
- Saints Row: The Third — то же самое. А потом ещё включается чёрный экран с буквами, как будто при проверке после реальной ошибки! Но этот текст оказывался пародией на текстовый квест.
- Undertale — после того, как Флауи обретает силу шести душ и обретает Омега-форму, он получает власть над игрой, что приводит к её глюкам.
- Там же секретный персонаж Гастер, при встрече с которым могут появиться глюки.
- Earthbound — битва с Гийгасом, а точнее сцена его смерти, который симулирует помехи и отключение телевизора. И самое начало игры.
- Eternal Darkness — подобных ужасов тут много, причем чем сильнее падает полоска психического здоровья главной героини, тем больше их выпадает. Телевизор «переключает каналы», сохранения «удаляются», громкость «снижается», или у главной героини голова вдруг отваливается и начинает декламировать «Гамлета» — это была едва ли не первая игра, которая запустила (и сильно так запатентовала) счетчик безумия.
- Инверсия в eversion: если намеренно заставить игру закрашиться, мы получим достижение «What Have You Done». Получается, мы напугали игру глюком?
- Simulacra — Вся игра состоит из этого. Сюжет крутиться вокруг бесследной пропажи людей по всему миру, у всех из которых имеются приложения для знакомств и единственное, что остаётся от этих людей — глючный телефон. Игроку как раз попался телефон одной из жертв, который постоянно то «ломается», то пугает игрока внезапными скримерами.
- Doom — любительский маппак «lilith.pk3» намеренно эксплуатирует эстетику багов и графических глитчей. Гуглить на свой страх и риск — неподготовленного человека может и затошнить.
Примеры случайные, ибо так вышло
- Лаги в сетевой игре. Все вокруг начинают то зависать на месте, то телепортироваться, и ты совершенно не знаешь, чего от них ждать.
- Корявая реализация дня и ночи порождает чужое небо: например, в S.T.A.L.K.E.R. Чистое Небо солнце восходит и заходит в одном и том же месте, а в Тенях Чернобыля на некоторых локациях время суток в принципе не меняется, хотя время идёт. Зона, она такая.
- Солнце встаёт и садится на западе во всех трёх частях.
(link)
Решил поиграть в Silent Hill на приставке, а приставка решила сама поиграть в Silent Hill с тобой.- Если вставить в PlayStation 1 пиратский/битый/грязный диск, то возможно, приставка выдаст
крики боли звукового чипазвуки, известные как Personified Fear (на 0:17) или Fearful Harmony (на 1:06). - Ставший мемом баг из Assassin's Creed: Unity (см. иллюстрацию). Из-за того, что у некоторых персонажей не прогрузились текстуры лица, они мигом превратились в жутких чудовищ с летающими глазами и ртом.
- «The Witcher» — если несколько раз сворачивать и разворачивать игру, лицо Геральта вытянется до уровня ключицы, вокруг него начнёт вращаться меч, а если у вас есть топор, то он застрянет в текстуре тела и будет бесконечно проигрывать анимацию удара.
- В третьей части того же «Ведьмака» багов ещё больше. Есть смешные, но есть и страшные.
- В The Sims 3 малыши и собаки иногда превращаются в квазимодное растянутое нечто, напоминающее слендермена в худшие годы. От неожиданности можно и на стуле подскочить.
- Эмулятор Xbox для PC превратил Shenmue 2 в хоррор (случай аналогичный вышеупомянутому Assassin’s Creed: Unity).
- «Silent Hill 3» — если выйти в главное меню после окончания катсцены, предваряющей битву с финальным боссом, и загрузиться с сохранения в комнате Алессы, то лицо Клаудии после того, как она проглотит извергнутый Хизер эмбрион бога, вместо того, чтобы, как положено, начать покрываться ожогами и кровью, просто исчезнет, и в воздухе будут висеть глазные яблоки и зубы. Выглядит даже страшнее, чем сцена без бага.
- Star Control 2 — агрессивность мирных зондов Слайлэндро была багом.
- The Elder Scrolls V: Skyrim — баг, когда у живого дракона обгорает плоть и игрока продолжает атаковать драконий скелет. Если этот баг произошёл, то приходится удирать, использовать читы или перезагрузить сохранение — дракон-скелет бессмертен.
- «Warhammer 40 000: Space Marine» — если запустить игру с устаревшими графическими драйверами, лицо космодесантника в главном меню будет выглядеть так, словно его затронули губительные силы Варпа.
- Half-Life: Source — самый мерзкий баг этой недоверсии в том, что языки барнаклов в этой недоверсии видны не до конца, когда они на самом деле есть, то есть если не смотреть вверх, его можно не заметить. Автора этой правки это порядочно напугало при просмотре прохождения. К счастью, фанаты сделали фикс.
- В Oblivion у одного из авторов правок как-то не пойми из-за каких плагинов произошла несколько криповая вещь. В Имперском городе на него ни с того ни с сего бросился кто-то из мирных жителей. Тут же налетела стража и нарубила из буяна гуляш. Ну, пошли вразнос какие-то алгоритмы Radiant AI — решил автор правки… Но дальше начался форменный ужас, напоминающий военный переворот в наихудшем изводе. Легионеры бросались на всех гражданских, которых видели, те пытались бежать (сами понимаете, насколько успешно), или отбиваться (аналогично). В дома мясники в форме не заходили, и вообще это напоминало терминальную стадию реализации комендантского часа. Сейчас вспоминать забавно, а тогда выглядело довольно жутко. Особенно потому что стража делала своё дело молча и без лишних «стоп-райт-зер-криминал-скамов».
Реальная жизнь
- Y2K. Вопреки апокалиптическим настроениям журналистов, баг не слишком серьёзный (подумаешь, за 1999 годом вместо 2000 наступит 1900. Или 19100), зато каков масштаб — он затронул практически весь цивилизованный мир! И заодно сильно повлиял на методологии разработки ПО: например, наглядно показал, что принцип «работает — не трогай!» применим далеко не всегда.
- Хотя негативные последствия всё же были. В одной клинике произошёл сбой, и перепутались результаты анализов на риск синдрома Дауна у плода. В результате были абортированы два здоровых эмбриона, а в других семьях родились нежеланные больные дети. https://habr.com/ru/company/alfa/blog/517096.
- Один из наиболее известных случаев программного бага с трагическими последствиями — ошибка в программе аппарата для лучевой терапии рака Therac-25. Аппарат выдавал слишком большую дозу облучения, в итоге — как минимум шесть пострадавших и двое погибших. Самое печальное, что пациенты обычно обращали внимание на необычные и болезненные ощущения, но врачи не сразу им поверили.
- В 1962 ошибка в программе привела к отклонению от курса и взрыву космической ракеты Mariner-1.
- Сюда же авария при первом запуске ракеты Ариан-5 в 1996. Полётное ПО разрабатывалось на основе ПО для ракеты предыдущего поколения, Ариан-4, поэтому часть кода была перенесена оттуда. В том числе один маааленький модуль на три строчки который вообще не был нужен на новой ракете. И так как новая ракета была более резвой, чем старая, случившиеся в полёте переполнение переменной этого модуля вызвало зависание обоих бортовых ЭВМ, основного и резервного, что запустило аварийный механизм самоуничтожения ракеты. Считается самым дорогим багом в истории, около 500 миллионов на ракету и спутники на ней. К тому же, был нанесен ущерб репутации самой серии ракет, следующий запуск спутников производился с Байконура на «Союз-Фрегате», хотя новый «Ариан» уже был готов.
- Тоже не самый дешёвый баг — спутник w:Mars Climate Orbiter разбился из-за того, что в программе часть величин была задана в метрической системе мер, а часть в имперской. 200 млн долларов в трубу.
- Скорее анекдотический и комичный случай — при испытаниях Су-24 регулярно возникала ошибка в ПО самолета, приводившая к его перезагрузке, но только если в кресле пилота был лётчик-испытатель Ильюшин. Как выяснилось после долгих поисков, этот лётчик стабильно заходил на цель с такой точностью, что отклонение становилось меньше минимального числа, которым мог оперировать компьютер самолёта. В результате в системе коррекции прицела возникала ошибка деления на ноль.
- Известный случай времен сирийской войны 1960-х. Американские лётчики вынуждены были летать на низких высотах, чтобы их не замечали радары, но при полётах над Мёртвым морем у многих из них внезапно перезагружалась вся бортовая электроника самолёта. Причину обнаружили только тогда, когда вспомнили, что уровень воды в Мёртвом море ниже официального «уровня моря», который в высотомере был установлен как ноль. В итоге система делила на ноль с закономерными последствиями.
- Гибель нескольких новейших «боингов» в результате того что начальство «Боинга» решило очень круто сэкономить, уволив дорогих специалистов и наняв индусов, которые согласились написать новые программы для «Боинга»… бесплатно! (надеясь на дальнейшее сотрудничество с «Боингом» в будущем). https://habr.com/ru/post/458224/
Примечания