Создание игр для мобильных телефонов
Реклама. ООО «ЛитРес», ИНН: 7719571260.
Оглавление
Майкл Моррисон. Создание игр для мобильных телефонов
Об авторе
Посвящение
Благодарность
Мы хотим услышать вас
Поддержка книги
Введение
Как построена эта книга
Что вам потребуется
Часть I. Основы программирования игр для мобильных телефонов
Глава 1. История электронных игр
Основы программирования игр для мобильных телефонов
Первая игра для мобильного телефона
Рынок мобильных игр
Культура мобильных игр
Сильная сторона мобильных игр
Знакомство с мобильными платформами
Java 2 Micro Edition (J2ME)
Binary Runtime Environment for Wireless (BREW)
Symbian
Windows Mobile Smartphone
Java как платформа для мобильных игр
Что такое Java?
Почему Java?
Java и программирование мобильных игр
Небольшой пример на J2ME
Конфигурация и ограниченная конфигурация мобильного устройства
Профили и MIDP
Резюме
Экскурсия
Глава 2. Основы разработки мобильных игр на Java
Основы разработки игр
Основная идея
Разработка сюжетной линии
Режимы игры
Пример разработки игры на J2ME
Знакомство с J2ME Wireless Toolkit
Использование KToolbar
Управление проектами J2ME
Сборка мидлета
Тестирование игрового мидлета
Эмулятор J2ME и реальные устройства
Резюме
Экскурсия
Глава 3. Создание мобильной игры Skeleton
Знакомство с J2ME API
CDLC API
MIDP API
Понятие о мидлетах
Внутри мидлета
Основы разработки мидлетов
Создание примера игры Skeleton
Написание программного кода
Подготовка мидлета для распространения
Сборка и тестирование завершенного приложения
Резюме
Еще немного об играх
Часть II. Основы программирования мобильных игр
Глава 4. Мобильная графика 101
Основы мобильной графики
Понятие о графической системе координат
Понятие о цветах
Работа с графикой в J2ME
Рисование графических примитивов
Вывод текста
Вывод изображений
Создание программы Olympics
Написание программного кода
Тестирование готового приложения
Создание слайд-шоу
Написание программного кода
Тестирование готового приложения
Резюме
Заключение
Глава 5. Использование спрайтовой анимации
Понятие об анимации
Анимация и частота обновления кадров
Шаг в направлении компьютерной анимации
2D против 3D
Анализ 2D спрайтовой анимации
Фреймовая анимация
Композиционная анимация
Использование спрайтовой анимации в мобильных играх
Работа с классами Layer и Sprite
Создание плавной анимации с помощью класса GameCanvas
Построение программы UFO
Написание программного кода
Тестирование программы
Резюме
Еще немного об играх
Глава 6. Обработка ввода пользователя
Обработка пользовательского ввода
Обработка пользовательского ввода с помощью класса GameCanvas
Снова о классе Sprite
Обнаружение столкновений спрайтов
Работа с анимационными спрайтами
Создание программы UFO 2
Написание программного кода
Тестирование приложения
Резюме
Еще немного об играх
Глава 7. Henway: дань игре Frogger
Об игре Henway
Анализ игры
Разработка игры
Написание кода
Тестирование игры
Резюме
В заключение
Глава 8. Добавляем звук
Звук и мобильные игры
Тоновые звуки и музыка
Запрос аудиовозможностей аппарата
Воспроизведение тонов в мобильных играх
Воспроизведение отдельных звуков
Воспроизведение последовательности тонов
Создание программы UFO 3
Написание программного кода
Тестирование приложения
Резюме
Экскурсия
Глава 9. Воспроизведение цифрового звука и музыки
Основы цифровых звуков
Знакомство с волновыми звуками
Создание и редактирование волновых звуков
Продолжение знакомства с интерфейсом Player
Воспроизведение Wav-звуков в мобильных играх
Воспроизведение звука из JAR-файла
Воспроизведение звука через URL
Почувствуйте музыку с MIDI
Воспроизведение MIDI-музыки в мобильных играх
Воспроизведение MIDI-музыки из JAR-файла
Воспроизведение MIDI-файлов через URL
Создание программы Henway 2
Написание программного кода
Тестирование приложения
Резюме
Экскурсия
Часть III. Виртуальные миры и искусственный интеллект в мобильном телефоне
Глава 10. Создание замощенных игровых слоев
Что такое замощенный слой?
Создание карт для замощенных слоев
Использование редактора карт Mappy
Использование редактора карт Tile Studio
Форматирование информации о картах для игр
Работа с классом TiledLayer
Создание замощенного слоя
Перемещение и отображение замощенного слоя
Создание программы Wanderer
Написание программного кода
Тестирование готового приложения
Резюме
Экскурсия
Глава 11. Управление игровыми слоями
Работа с несколькими слоями
Работа с классом LayerManager
Анимация и замощенные слои
Создание программы Wanderer 2
Разработка карты замощенного слоя
Написание программного кода
Тестирование готового приложения
Резюме
В заключение
Глава 12. High Seas: почувствуй себя пиратом!
Обзор игры High Seas
Разработка игры
Создание водной карты
Создание карты суши
Разработка игры
Создание дрейфующего спрайта
Объявление переменных класса
Разработка метода start()
Разработка метода update()
Вывод игрового экрана
Начало новой игры
Безопасное размещение спрайтов
Тестирование игры
Резюме
В заключение
Глава 13. Учим игры думать
Минимум, что вы должны знать об ИИ
Типы алгоритмов игрового ИИ
Блуждающий ИИ
Поведенческий ИИ
Стратегический ИИ
Разработка стратегии
Учим спрайты думать…
Разработка преследующего спрайта
Программирование спрайта преследователя
Создание игры High Seas 2
Написание программного кода
Тестирование готового приложения
Резюме
В заключение
Часть IV. Использование преимуществ работы в сети
Глава 14. Основы сетевых мобильных игр
Основы сетевых игр
Пошаговые игры
Игры, основанные на событиях
Сетевые игры. Проблемы и решения
Синхронизация состояния
Синхронизация ввода
Смешанное решение
Соединение через сеть с сокетами
Потоковые сокеты
Датаграммные сокеты
Сетевое программирование и J2ME
Создание пакетов датаграммы
Отправка пакетов датаграммы
Получение пакетов датаграммы
Создание примера Lighthouse
Разработка клиента и сервера
Написание программного кода
Тестирование приложения
Резюме
Экскурсия
Глава 15. Connect 4: классическая игра по беспроводной сети
Обзор игры Connect 4
Разработка игры
Графика и пользовательский интерфейс
Игровая логика
Сеть
Разработка игры
Клиент и сервер в игре Connect 4
Холст игры Connect 4
Состояние игры Connect 4
Тестирование игры
Резюме
Экскурсия
Глава 16. Отладка и установка мобильных игр
Основы отладки игр
Пошаговое выполнение кода
Наблюдение переменных
Использование точек останова
Стратегии отладки игр
Предотвращение ошибок
Выявление ошибок
Выбор отладчика
Распространение мобильных игр
Понятие о распространении через беспроводное соединение
Подготовка игр к распространению
Настройка сервера
Тестирование OTA с помощью KToolbar
Резюме
Экскурсия
Часть V. Оптимизация игр
Глава 17. Оптимизация мобильных Java-игр
Понятие об оптимизации мобильных игр
Оптимизация по восстанавливаемости
Оптимизация по переносимости
Оптимизация размера
Оптимизация по скорости
Основные приемы оптимизации игр
Сокращение использования памяти
Минимизация сетевых данных
Исключение ненужной графики
Приемы оптимизации Java-кода
Компиляция без отладочной информации
Исключение ненужных вычислений
Исключение общих выражений
Преимущества локальных переменных
Раскрытие циклов
Сжатие и затенение кода
Анализ кода мобильной игры
Отслеживание загрузки памяти игрой
Выполнение оптимизации мобильных игр
Резюме
В заключение
Глава 18. Space Out: дань игре Space Invaders
Взгляд на игру Space Out
Разработка игры
Реализация игры
Создание движущихся спрайтов
Объявление переменных класса
Создание метода start()
Разработка метода update()
Вывод графики
Начало новой игры
Добавление пришельцев, ракет и взрывов
Тестирование игры
Резюме
В заключение
Глава 19. Создание списка рекордов
Важность сохранения достижений
Знакомство с Java RMS
Понятие о записях и хранилищах записей
Изучаем класс RecordStore
Подготовка списка рекордов к хранению
Создание игры Space Out 2
Разработка игровых дополнений
Написание игрового кода
Тестирование игры
Резюме
В заключение
Приложения
Приложение А. Java Game API
Класс GameCanvas
Константы
Конструктор
Методы
Класс Layer
Методы
Класс Sprite
Member Constants
Конструкторы
Методы
Класс TiledLayer
Конструктор
Методы
Класс LayerManager
Конструктор
Методы
Приложение B. Ресурсы программирования мобильных игр
Micro Dev Net
J2ME Gamer
J2ME.org
Форум Nokia's Mobile Games Community
Wireless Developer Network
GameDev.net
Gamasutra
Game Developer Magazine
Gamelan
JavaWorld
The Official Java Website
Приложение C. Создание графики для мобильных игр
Оценка графики игры
Определяем размер экрана
Учитываем пожелания аудитории
Настройка параметров и формирование настроения для игры
Стиль графики
Графические инструменты
Image Alchemy
Paint Shop Pro
Graphic Workshop
Создание и редактирование графики
Графика Line-Art
Трехмерная графика
Отсканированная и записанная с видео графика
Фоновая графика и текстуры
Анимированная графика
Поиск графических объектов
Отрывок из книги
Моему давнему другу Рэнди Вимсу (Randy Weems), который научил меня почти всему, что я знаю о программировании игр, и помог разработать мою первую игру для мобильного телефона. Мы потратили на это целую ночь почти 15 лет назад.
Как издатель Sams Publishing я жду ваших комментариев. Вы можете отправить мне электронное или обычное письмо, рассказать, что вам понравилось в книге, а что нет, а также поделиться мнением о том, как мы можем сделать наши книги лучше.
.....
► 8 Кб недоступной памяти для постоянных данных приложений.
Требования к вводу MIDP-устройств оговаривают, что устройство должно иметь клавиатуру или сенсорный экран. Обратите внимание, что мышь не является устройством ввода, поскольку сложно представить мобильное устройство, работа с которым осуществляется с помощью мыши. Однако такое устройство вполне может иметь сенсорный экран и электронное перо.
.....