Создание игр для мобильных телефонов - Майкл Моррисон
Шрифт:
Интервал:
Закладка:
Метод updateScore() класса C4State обновляет элементы массива score (листинг 15.15).
Листинг 15.15. Метод updateScore() класса C4State обновляет элементы массива scoreprivate void updateScore(int player, int x, int y) {
// Update the score for the specified piece
for (int i = 0; i < winPlaces; i++)
if (map[x][y][i]) {
score[player][i] <<= 1;
score[1 – player][i] = 0;
}
}Метод updateScore() устанавливает нужные значения элементов массива score в соответствие со сделанным ходом (ход определяется координатами х, y). На этом заканчивается код класса C4Sate и код игры Connect 4. Если вы не поняли некоторые фрагменты приведенного кода, не переживайте. Цель этого примера – не научить вас определять победителя в игре Connect 4, а продемонстрировать, как построить беспроводную сетевую игру.
...Совет Разработчику
Играть одновременно на клиентском и серверном устройстве очень неудобно. Однако, к счастью, игра Connect 4 – пошаговая, поэтому у вас есть время, чтобы тщательно обдумать каждый ход. В играх в реальном времени тестирование – это большая проблема, при этом возникает необходимость в помощи.
Тестирование игры
Несколько раз я упоминал в книге, что тестирование игр в большинстве случаев – самый веселый этап разработки, и этот случай не исключение.
Однако в случае сетевых игр тестирование может быть одним из самых трудных этапов. Нелегко сымитировать двух одновременно играющих людей. К счастью, эмулятор J2ME позволяет запускать несколько образов игры и создавать соединение между ними, будто они реальные устройства, работающие в сети.
Аналогично примеру Lighthouse, рассмотренному в предыдущей главе, в игре Connect 4 сперва появляется простой интерфейс, позволяющий игроку выбрать режим функционирования приложения – сервер или клиент. На рис. 15.5 показан процесс выбора типа работы.
Рис. 15.5. Мидлет Connect 4 начинается с запроса режима функционирования
После того как выбран режим работы сервера, игроку выводится сообщение о состоянии игры. В нем говорится, что сервер готов и ждет ответа клиента (рис. 15.6).
Рис. 15.6. Игра Connect 4 ожидает подключения клиентаВ другой части сетевого уравнения запускается клиентский мидлет игры Connect 4. Когда между сервером и клиентом установлена связь, в мидлетах выводится соответствующая информация. На рис. 15.7 показан мидлет, ожидающий подключения клиента.
Рис. 15.7. Когда соединение установлено, игра ожидает хода игрокаВ игре ход переходит от одного игрока к другому. На рис. 15.8 показан вид клиента, в котором уже сделано несколько ходов.
Рис. 15.8. Игрок на клиентском устройстве делает ходНаконец, один из игроков одержит победу или игра закончится ничьей, поскольку на игровом поле не останется свободного места. На рис. 15.9 показан клиент, одержавший победу.
Рис. 15.9. Игрок-клиент выигрываетЧтобы начать новую игру, оба игрока должны нажать клавишу Огонь. Игрок, потерпевший поражение, начинает игру, поскольку в этом случае он имеет небольшое преимущество.
Резюме
Программирование беспроводных соединений и многопользовательских игр – это достаточно сложные темы, но было бы несправедливо не продемонстрировать вам пример сетевой мобильной игры. Поэтому, эта глава провела вас через разработку и реализацию сетевой мобильной игры Connect 4. Хотя игра очень упрощена, вы можете создавать на ее основе более сложные и интересные игры.
В следующей главе вы отдохнете от обилия кодов и подробнее познакомитесь с тестированием мобильных игр, отладке и установке.
Экскурсия
Чтобы помочь вам уяснить отличия пошаговых игр как Connect 4, поиграйте в другие пошаговые игры с друзьями или родственниками. Неважно, будет ли это Connect 4, шахматы или шашки. Опыт игры и наблюдение за ее развитием помогут вам лучше понять разработку пошаговых игр.Глава 16 Отладка и установка мобильных игр
...Архив Аркад
Выпущенная в 1983 году компанией Taito игра Elevator Action использовала уникальную смесь лифтов, подъемников и шпионов и создала великолепную шпионскую игру своего времени. Вы играете за Агента 17 с кодовым именем Отто, ваша цель – выкрасть секретные документы. Вы стартуете на 30 этаже здания и должны сбежать через автомобильные ворота, расположенные в подвале. Одна из интересных особенностей игры – это то, что вы можете убивать плохих парней, пока находитесь в лифте. Также вы можете стрелять в светильники, однако в темноте попасть в противника сложнее. Такие особенности послужили тому, что игра Elevator Action стала классикой аркадных игр.
Несмотря на то что я люблю затрагивать такие темы, было бы несправедливо научить вас программированию мобильных игр, но не осветить вопросы отладки. В этой главе вы узнаете, что программные ошибки – это неотъемлемая часть программирования мобильных игр, потому что человек склонен совершать ошибки. Поэтому вы должны рассматривать процесс отладки как необходимую часть процесса разработки и принять тот факт, что даже самый тщательно построенный код будет содержать ошибки. В этой главе я постараюсь помочь вам получить навыки, которые сведут появление ошибок к минимуму, но остальное зависит от вас.
В этой главе также пойдет речь об установке мобильных игр. Это очень важная тема, поскольку так вы поставляете созданную вами игру пользователю. Несмотря на то что концепция доставки программного обеспечения через беспроводное соединение может показаться мистикой, в реальности это сделать очень просто.
В этой главе вы изучите:
► основы отладки игр;
► как избегать и детектировать ошибки в мобильных играх;
► как подготовить игру для установки через беспроводное соединение;
► как эмитировать доставку игры по беспроводной сети, используя KTollbar.
Основы отладки игр
Перед тем как перейти к серьезным обсуждениям вопросов отладки мобильных игр, давайте рассмотрим, что собой представляет ошибка (или баг). Ошибка – это ошибка в коде, которая выполняет нежелательные действия в игре. Нежелательное действие – это может быть все что угодно, от неправильного подсчета набранных очков до воспламенения телефона. Хотя последнее – это сильное преувеличение, вы должны относиться к ошибкам очень серьезно, потому как они говорят о достоинствах (или недостатках) вашей игры.
Понятие об ошибках в течение уже долгого времени является обязательной частью программирования. Хотя все программисты стремятся к точности написания кода, лишь немногие достигают этого. Даже те, кто достигает, на своем пути к цели проходят через большое число ошибок. Дело в том, что программисты предвидят ошибки в создаваемом коде, а не думают, что их код лишен ошибок. Следовательно, первое правило отладки – предположить, что в коде есть ошибки, выявить их и устранить.
Вопрос поиска и отладки ошибок особенно важен для игр, поскольку игроки зачастую импульсивные люди. Если в игре что-то пойдет не так, например, неправильный подсчет набранных очков, то игрок, вероятно, будет расстроен и забросит игру. Поэтому очень важно находить ошибки перед тем, как выпускать игру. Конечно, вы можете выпустить патч к игре, однако это понижает впечатление от игры.
Перед тем как перейти к рассмотрению специфических стратегий поиска ошибок, давайте рассмотрим основы отладки. Если вы уже знакомы с отладкой в Java или любом другом языке программирования, смело переходите к следующему разделу. Ниже приведены основные методы, незаменимые для поиска и устранения ошибок в программах:
► пошаговое выполнение кода;
► наблюдение переменных;
► использование точек останова.
Пошаговое выполнение кода
Одна из широко распространенных возможностей отладчиков – это пошаговое выполнение кода. Пошаговое выполнение – это процесс, при котором строки кода выполняются последовательно. Важное отличие пошагового выполнения кода как технологии отладки состоит в том, что вы видите, как выполняется код, а также можете проследить выполнение программы в целом. Обычно пошаговое выполнение не используется отдельно, а сочетается с другой методикой – наблюдением (watching), которая позволяет посмотреть, как изменяются значения переменных в ходе выполнения.
...В копилку Игрока
Отладчик – это программное обеспечение, созданное, чтобы помогать вам в поиске ошибок, оно позволяет анализировать код в процессе выполнения. Java 2 SDK поставляется с отладчиком, который называется jab. О нем вы узнаете в разделе «Выбор отладчика».
Наблюдение переменных
Наблюдение – это методика, которая подразумевает отслеживание наблюдаемых переменных кода. Наблюдаемая переменная – это переменная, изменение значения которой вы можете наблюдать в отладчике. Конечно, если программа запущена с обычной скоростью, то наблюдение за переменными не поможет. Однако если вы наблюдаете за ними при пошаговом выполнении кода, вы сможете четко понять, что происходит в программе. Очень часто вы можете заметить, что значения тех или иных переменных изменяются непредсказуемо или принимают значения, которые в контексте созданного кода бессмысленны. Этот тип проникновения в исполнение кода может помочь вам найти ошибки. Пошаговое выполнение кода в сочетании с наблюдением переменных – это стандартный подход к поиску ошибок с помощью отладчика.