23 июня 2020 23.06.20 5 3712

Баги и ошибки — как искусство

-3

Введение

  Баг или же ошибка, связанная с нарушениями в целостности программы или программного кода, в этом кратком пособии я хочу рассказать об этих странных, забавных и порой неизвестных вещах, надеюсь, что это пособие поможет вам понять, как я смотрю на этот чудесный мир ошибок и недоработок, многие воспринимают их как что-то бесящее и крайне надоедливое, с определённой стороны они все правы.

Что такое “БАГ”

Терминология

  В программировании баг (англ. bug — жук)— жаргонное слово, обычно обозначающее ошибку в программе или системе, которая выдает неожиданный или неправильный результат. Большинство багов возникают из-за ошибок, сделанных разработчиками программы в её исходном коде, либо в её дизайне. Также некоторые баги возникают из-за некорректной работы компилятора, вырабатывающего некорректный код. Программу, которая содержит большое число багов и/или баги, серьёзно ограничивающие её работоспособность, называют нестабильной или, на жаргонном языке, “глючной”, “глюкнутой”, “забагованной”, “бажной”, “баг (а) нутой” (англ. unstable, buggy). Термин «баг» обычно употребляется в отношении ошибок, проявляющих себя на стадии работы программы, в отличие, например, от ошибок проектирования или синтаксических ошибок. Отчет, содержащий информацию о баге, также называют отчетом об ошибке или отчетом о проблеме (англ. bug report). Отчет о критической проблеме (англ. crash), вызывающей аварийное завершение программы, называют крэш репортом (англ. crash report). «Баги» локализуются и устраняются в процессе тестирования и отладки программы. Возможны ситуации, при которых ошибки остаются во внутреннем коде или программе они могут остаться не замеченными и обнаруженными уже при тестировании или выпуске программы или игры. Такие ситуации исправляются так называемыми “патчами” (англ. patch), выпускаются они как можно скорее стараясь залатать все дыры и проблемы, когда патч готов разработчик или программист выпускает “патч ноут” (англ. Patch note) список изменений и исправлений. На этом с терминологией всё, приступим к практике.

Как выглядит баг

И как его исправить

  Чаще всего их можно обнаружить на ранних стадиях разработки, например когда игра компилируется выскакивают ошибки или сообщения о неполадках, но бывает так что их можно и не заметить особенно когда было проделано много работы и ошибка не проявилась, для такого существуют тестировщики, люди которые 24 часа в сутки проверяют каждый угол на предмет ошибок, что бы при игре в условный Fallout 76 ваша игра окончательно не сломалась. Правда в конце концов люди не могут увидеть всё и для этого требуется ещё больше времени работы и труда, но даже при этом некоторые ошибки невозможно исправить, такие ошибки не критичны и ведь зачем их исправлять если это не приносит убытков, поэтому огромное количество багов не исправляются разработчиками, их исправляют игроки и просто не равнодушные люди. Эти вещи называются фиксами. Перейдём к виновнику этой книги. Самое простое это пропавшая текстура, это может быть прозрачная область или разноцветные пиксели, происходит если текстура пропала из игры. Более критичными являются ошибки в коде, прыгнул куда-то не туда и вот игра уже зависает, выдаёт ошибку и ломается, тут всё дело в том, что где-то есть сломанная частица кода, которая при активации выдаёт ошибку. Есть ошибки в тексте и звуке, к примеру вместо звука меча проигрывается звук курицы, а в субтитрах написано, что это была машина, тут играет человеческий фактор, ещё можно застрять в текстуре или сломать цепочку событий в игре. Всё исправить невозможно в силу того, что на таком уровне заметить их трудно, бывает они возникают из неоткуда, но всегда весело их находить если они не критичны. 

Место без текстур в Fallout76 – источник 

https://www.reddit.com/r/gaming/comments/9xkbp5/fallout_76/

Творческие решения

Спидраны

  Но у ошибок нашли хорошую соревновательную сторону, спидраны — забеги по играм на скорость, проходить игру просто это так скучно, а вот с ошибками это совсем другое дело, сократить игру в 3 раза прыгая за текстуры, профессионалам на это дело расплюснуть, разбирать спидраны я не буду всё это уже сделали за меня, хочу лишь сказать что это удивительно как люди используют ошибки и недоработки, рассчитывают всё до пикселя и всё это основано на ошибках, багах и глитчах.

Критические ситуации

Лица из ада

  За примером далеко ходить не надо, можно вспомнить лица из Assassin’s Creed Unity, проблема была вызвана несовместимостью с некоторыми видеокартами, это ошибка была исправлена в патче первого дня но оставила свой отпечаток на и так большом пласте ненависти ввиду отсутствия оптимизации и багов, вот что об этом говорит главный творческий руководитель Ubisoft Жан Жесдон:

  Если вы поиграете сейчас, со всеми исправлениями, — это будет очень красивая и хорошая игра. Иными словами, вероятно, мы подлетели слишком близко к Солнцу и утратили самоконтроль.

 

  Именно поэтому Syndicate концентрировалась на качестве, с чем команда отлично справилась.                                                                                                        Жан Жесдон

  В заключении хотел бы сказать что баги и ошибки порадили целые сегменты в разных культурах и стали большой частью игр и игровой индустрии. _DeVloPPeR_


Лучшие комментарии

Внесу небольшие коррективы)
Также некоторые баги возникают из-за некорректной работы компилятора, вырабатывающего некорректный код.
Даже в таком случае, скорее всего виноват будет разработчик, который не знаком с некоторыми особенностями работы компилятора. Конечно, нестабильную или кривую версию компилятора никто не отменял, но разрабы их обычно стараются избегать)

Термин «баг» обычно употребляется в отношении ошибок, проявляющих себя на стадии работы программы, в отличие, например, от ошибок проектирования или синтаксических ошибок.
Не-а, любое несоответствие ожидаемого и актуального результата — баг. Не важно чего он касается, графики, баланса, музыки или текста, результат не совпадает — это баг.

Отчет о критической проблеме (англ. crash), вызывающей аварийное завершение программы, называют крэш репортом (англ. crash report).
Тут есть нюанс: если речь о файле, который генерирует сама ОС — да, это краш репорт (например, у iOS есть такая фича). Если речь об отчёте, составленном тестировщиком — это всё ещё называется баг репортом, а краш репорт к нему прикладывается, чтобы разработчикам было проще понять, с чем связана проблема.

Возможны ситуации, при которых ошибки остаются во внутреннем коде или программе они могут остаться не замеченными и обнаруженными уже при тестировании или выпуске программы или игры.
Более того, некоторые мелкие баги не правят специально, так как это может быть опасно: пофиксишь мелкую проблему — вылезет несколько крупных. Пусть лучше мелочь, которую увидит 1 человек из 100, останется. Ты в следующем абзаце эту тему затрагивал, но несколько в другом ракурсе.

Чаще всего их можно обнаружить на ранних стадиях разработки, например когда игра компилируется выскакивают ошибки или сообщения о неполадках, но бывает так что их можно и не заметить особенно когда было проделано много работы и ошибка не проявилась, для такого существуют тестировщики, люди которые 24 часа в сутки проверяют каждый угол на предмет ошибок, что бы при игре в условный Fallout 76 ваша игра окончательно не сломалась.
По поводу тестировщиков ты явно утрируешь, у них стандартный 8 часовой рабочий день за исключением кранчей) А баг абсолютно на любой стадии разработки можно найти. Программ и игр без багов вообще не существует. А если кажется, что багов нет — значит, ты их просто не встретил)

Все правки были постигнуты на личном опыте — чуть больше полугода работаю тестировщиком)

А по тексту — пустовато. Весь сабж можно уместить в следующие текст: «Есть игры, в них есть баги, которые не исправлются. В последствии эти баги используются спидранерами, а спидраны — круто».
Минус не ставил, но вот какие баги ошибки я нашёл.

1) название блога БАГИ И ОШИБКИ — КАК ИСКУССТВО. То есть в тексте нет конкретного доказательства. Есть лишь один (грубо говоря) положительный пример. Это я про «Спидраны».

2) Часто повторяющиеся слова, которые находятся не далеко друг от друга.

3) Возможно слишком длинное вступление, но это не точно!
Советую вам название слегка поменять и описать примеры, в которых разработчики выкручивались из сложных ситуаций. Например как разработчики из Remedy Entertainment, ввели комиксовые заставки в Max Payne. Или как игроделы добавили ачивку в одну из Uncharted, из-за того, что при демострации игры выставке отказал геймпад.
Загадочная ситуация. Вы целый год ничего не писали, и тут внезапно решили рассказать про такую известную для многих тему. Что вдохновило Вас? Где лично Ваш опыт?

2) Часто повторяющиеся слова, которые находятся не далеко друг от друга.

Это называется Тавтология.
Это не критика, просто замечание.
Если я правильно понял, что ты имеешь в виду.
Читай также