Вопрос поиска и отладки ошибок особенно важен для игр, поскольку игроки зачастую импульсивные люди. Если в игре что-то пойдет не так, например, неправильный подсчет набранных очков, то игрок, вероятно, будет расстроен и забросит игру. Поэтому очень важно находить ошибки перед тем, как выпускать игру. Конечно, вы можете выпустить патч к игре, однако это понижает впечатление от игры.
Перед тем как перейти к рассмотрению специфических стратегий поиска ошибок, давайте рассмотрим основы отладки. Если вы уже знакомы с отладкой в Java или любом другом языке программирования, смело переходите к следующему разделу. Ниже приведены основные методы, незаменимые для поиска и устранения ошибок в программах:
► пошаговое выполнение кода;
► наблюдение переменных;
► использование точек останова.
Пошаговое выполнение кода
Одна из широко распространенных возможностей отладчиков – это пошаговое выполнение кода. Пошаговое выполнение – это процесс, при котором строки кода выполняются последовательно. Важное отличие пошагового выполнения кода как технологии отладки состоит в том, что вы видите, как выполняется код, а также можете проследить выполнение программы в целом. Обычно пошаговое выполнение не используется отдельно, а сочетается с другой методикой – наблюдением (watching), которая позволяет посмотреть, как изменяются значения переменных в ходе выполнения.
В копилку Игрока
Отладчик – это программное обеспечение, созданное, чтобы помогать вам в поиске ошибок, оно позволяет анализировать код в процессе выполнения. Java 2 SDK поставляется с отладчиком, который называется jab. О нем вы узнаете в разделе «Выбор отладчика».
Наблюдение переменных
Наблюдение – это методика, которая подразумевает отслеживание наблюдаемых переменных кода. Наблюдаемая переменная – это переменная, изменение значения которой вы можете наблюдать в отладчике. Конечно, если программа запущена с обычной скоростью, то наблюдение за переменными не поможет. Однако если вы наблюдаете за ними при пошаговом выполнении кода, вы сможете четко понять, что происходит в программе. Очень часто вы можете заметить, что значения тех или иных переменных изменяются непредсказуемо или принимают значения, которые в контексте созданного кода бессмысленны. Этот тип проникновения в исполнение кода может помочь вам найти ошибки. Пошаговое выполнение кода в сочетании с наблюдением переменных – это стандартный подход к поиску ошибок с помощью отладчика.
Использование точек останова
Другая фундаментальная техника поиска ошибок – это использование точек останова. Точка останова – это строка кода, которая прерывает выполнение программы. Чтобы понять пользу точек останова, представьте, что вас интересует строка, расположенная в середине программного кода. Чтобы добраться до этой строки, вам понадобится пройти половину программы по шагам. Но вы можете поставить в строке точку останова и запустить программу на выполнение. Программа будет выполняться до тех пор, пока ее работу не прервет точка останова. В этом случае программа останавливается, и вы оказываетесь в нужной точке кода. Теперь вы можете наблюдать переменные и даже пошагово выполнить программу. Вы также можете назначить несколько точек останова в ключевых местах программы, что очень удобно для последовательной отладки кода.
Стратегии отладки игр
Хотя инструменты отладки прошли длинный путь от зари программирования, основная часть работы по устранению ошибок и по сей день лежит на ваших плечах. Думайте об отладчиках и стандартных методиках отладки как о средствах, с помощью которых можно обнаружить ошибки, а не как о единственном средстве защиты от ошибок. Для устранения ошибок необходим значительный багаж знаний, практики, инструментов отладки и даже немного удачи.
Отладку можно сравнить с охотой: вы знаете, что где-то есть проблема, и должны найти ее. Поэтому вы должны подходить к отладке с определенной стратегией. Стратегии отладки могут быть разделены на две основные группы – предотвращение ошибок и определение ошибок. Давайте рассмотрим обе стратегии и увидим, как их можно совместно использовать, чтобы с легкостью исправлять ошибки.
Предотвращение ошибок
Предотвращение ошибок направлено на исключение их появления до того, как они могут проявиться. Предотвращение ошибок может показаться вполне очевидным, потому что это действительно так. Однако большое число программистов не использует этой стратегии при написании кода, а занимаются отладкой в конце. Помните, что стратегия предотвращения ошибок более трудоемкая работа, чем отладка. Я полностью поддерживаю эту стратегию как предварительный этап борьбы с ошибками.