Создание игр для мобильных телефонов
Шрифт:
Если вы вспомните игровой код, то вражеский корабль очень агрессивен. Однако это компенсируется его невысокой скоростью. Это позволяет сбалансировать игру – вы можете обогнать вражеский корабль достаточно легко. Однако, оказавшись загнанным в угол, игрок попадает в большую беду. Кроме того, если игрок будет близко проплывать от менее агрессивного, но более быстрого осьминога, то его также будет ждать беда!
Совет Разработчику
Во многих играх с течением времени скорость и агрессия плохих парней увеличивается. Такой рост сложности можно привязать к уровням игры или количеству набранных игроком очков. В игре High Seas вы можете увеличивать скорость вражеского корабля и агрессию осьминогов с ростом числа спасенных пиратов. В итоге даже очень хороший игрок может потерпеть поражение. Такой подход поможет сделать игру более захватывающей и нескучной.
Резюме
Если я еще не поставил точку, пожалуйста, поймите, что искусственный интеллект – это тема не одной книги, и в любом случае она не будет раскрыта полностью. Целью этой главы было познакомить вас с основами разработки ИИ, применением его в мобильных играх. Вы узнали о трех фундаментальных типах ИИ, применяемых в мобильных играх. Если вам хоть немного интересна тема ИИ как программисту, то ваш опыт будет расти по мере того, как вы будете применять ИИ в различных ситуациях.
После того как вы усвоили основы, можно перейти к более сложным алгоритмам ИИ, использующим априорную информацию. Я надеюсь, что эта глава послужила вам, по крайней мере, отправной точкой в путешествии в мир компьютерного разума.
Эта глава завершает часть книги, посвященную искусственному интеллекту. В следующей главе речь пойдет об одной из самых интересных сторон мобильных игр: работа с сетью. Вы узнаете, как мобильные телефоны могут взаимодействовать с сетью, а также разработаете полностью сетевую игру.
В заключение
Немного изменив графику, вы можете превратить High Seas 2 в совершенно другую игру. Например, вы могли бы изменить фоновое изображение на пустыню, где пески заменят воду, а горы – острова. Каждый спрайт игры должен так же измениться в соответствии с новой пустынной темой. Например, вы можете изменить корабль игрока на повозку, путешествующую по пустыням, похожую на те, что перемещались по Америке во времена освоения Запада. Затем, если вы будете придерживаться этой темы, вы должны будете заменить спрайт пирата спрайтом потерявшихся путешественников, которым нужна помощь. Осьминоги могу стать преступниками, а вражеский корабль – целой бандой преступников, мины могут превратиться во взрывчатку, заложенную бандитами, а бочки могут стать запасами продовольствия, оставленными другими путешественниками. И наконец, вы можете добавить нового плохого парня, например, гром-птицу – огромную птицу, державшую в ужасе весь запад Америки.
Ниже приведены действия, которые необходимо выполнить, чтобы превратить игру High Seas 2 в вестерн:
1. замените всю графику игры темой пустыни;
2. если хотите, переделайте карту, чтобы привнести в игру новый дух;
3. измените спрайт взрывчатки (мины) и спрайт ящика с провизией (бочка), чтобы для их создания использовался класс Sprite, а не DriftSprite (эти объекты не могут перемещаться);
4. добавьте новый спрайт гром-птицы, который будет являться объектом класса ChaseSprite. Убедитесь, что при инициализации вместо слоя-барьера передается значение null – это необходимо потому, что птица может беспрепятственно перемещаться по карте.
Странно, но это все, что необходимо сделать, чтобы полностью изменить игру High Seas 2. Очевидно, что придется переработать всю графику, но удивительно, насколько мало кодов необходимо для превращения High Seas 2 в совершенно новую игру.
Часть IV Использование преимуществ работы в сети
Глава 14 Основы сетевых мобильных игр
Архив Аркад
Другой яркий представитель игр 1982 года – Pole Position – это одна из первых гоночных игр, которая стала очень популярной. Несмотря на то что игра была разработана Namco, за релиз в Америке игру лицензировала компания Atari. Pole Position была создана в двух версиях: как для игры стоя, так и сидя. В последнем случае были предусмотрены педаль газа и тормоза, в другой версии игры была только педаль газа. При переговорах с Namco компания Bally/Midway выбрала игру Mappy, а Atari взяла, что осталось. В результате небольших доработок в 1983 году игра Pole Position стала хитом и теперь считается классикой аркад.
В главе 13 вы узнали о том, как компьютер может противостоять человеку в игре. Несмотря на то что искусственный интеллект очень важен в играх и применяется широко, сложно недооценить и человеческий фактор в сетевых играх. В этой главе будут рассмотрены сетевые игры, их важность в сегодняшнем игровом мире. Поскольку мобильные телефоны разработаны для коммуникации между людьми, в вашем распоряжении есть среда для сетевых игр. Существует ряд свойственных для сетевых игр проблем, с которыми вам придется столкнуться на этапе проектирования и разработки. В этой главе рассматривается большинство этих проблем, а также методов их решения. Прочитав эту главу, вы будете готовы к созданию собственной сетевой игры с помощью J2ME.
В этой главе вы узнаете:
► об основах создания сетевых мобильных игр;
► о фундаментальных типах сетевых мобильных игр;
► о проблемах, свойственных сетевым играм, и методах их решения;
► как использовать MIDP API для создания беспроводных соединений;
► как создать программу, с помощью которой можно общаться, используя азбуку Морзе.
Основы сетевых игр
Если вам когда-либо доводилось играть в сетевую игру со своими друзьями, то вы знаете, как это весело! В самом деле, игра с живым человеком намного интереснее игры против компьютера. Идея, что в игре предстоит соревноваться с человеком, может в корне изменить взгляд на игру. В сетевых играх есть множество способов заставить игроков соревноваться друг с другом или играть в команде. Вне зависимости от сценария, если в игре принимают участие живые люди, то игра становится намного интереснее, поскольку реакция соперников может быть оригинальной и нестандартной, что невозможно с компьютерными оппонентами. Теперь разработчикам, таким как вы и я, остается решить, как именно люди будут взаимодействовать в игре. А теперь взгляните на уникальность сетевой игры через мобильный телефон. Это именно то, чего мы ожидаем, когда слышим разговоры о «беспроводной революции», ведущиеся на протяжении последних нескольких лет.
Перед тем как перейти к разработке стратегии сетевой игры, важно познакомиться с фундаментальными типами таких игр. Разработка соединения сильно зависит от того, как происходит игра, что определяется типом игры. Мобильные сетевые игры можно разделить на две большие категории: пошаговые игры и игры, основанные на событиях. Большинство игр можно с легкостью отнести в одну из этих категорий.
Пошаговые игры
Пошаговые игры – это игры, в которых действия – это шаги игрока. Классические шашки, шахматы, нарды – это хороший пример пошаговых игр, поскольку в них вы можете предпринимать действия, когда остальные игроки сделают ходы. Конечно, вы можете обдумывать свой ход в то время, пока другой игрок совершает свой, однако игра такова, что сделать вы его сможете в свою очередь.
Большинство пошаговых игр – это или настольные игры, или карты, или простые игры, в которые можно играть на бумаге, например, крестики-нолики. Несмотря на то что действия разворачиваются достаточно медленно, эти игры очень популярны и хорошо подходят для сетевой игры.
Если принять во внимание, что в пошаговых играх игроки ходят по очереди, то сетевое соединение значительно упрощается. В каждый момент времени играет лишь один игрок. Даже несмотря на то что в игре принимают участие несколько игроков, ход может сделать лишь один игрок. Другие игроки должны ждать своей очереди. В этом случае игру можно сделать так, чтобы все игроки находились в режиме ожидания до тех пор, пока не придет их очередь совершать ходы. В игре, в которой принимают участие лишь 2 игрока, например, как рассмотренной в главе 4, право хода переходит от одного игрока к другому.
Игры, основанные на событиях
Игры, основанные на событиях, – это такие игры, которые управляются входящими событиями, которые могут произойти в любой момент. Такие игры менее ограничены временем по сравнению с пошаговыми играми. В этих играх любой игрок может взаимодействовать с игрой в любой момент времени – это события игры. Развитие игры определяется событиями, а не шагами. На самом деле в играх, основанных на событиях, нет понятия «шаг». Под определение «игры, основанные на событиях», попадают все игры, в которых отсутствует понятие «шаг», и таких примеров очень много – от классических «стрелялок» до стратегических симуляторов, например, «Век империй» (Age of Empires). В сетевых версиях этих игр любой игрок может действовать независимо от других игроков, создавая или не создавая новые события.
Разработка сетевого соединения для игр, основанных на событиях, значительно сложнее, чем для пошаговых игр. Важно то, что игры, основанные на событиях, требуют значительно большей пропускной способности соединения, поскольку необходимо обновлять информацию. Можно сказать, что каждая созданная вами игра, основанная на событиях, будет уникальна, поскольку при разработке соединения вам придется реализовывать нестандартные подходы. Вспомните игры Doom 3 и Halo 2 и подумайте, сколько действий в них происходит, и, что еще более важно, насколько быстро они происходят. Любое изменение в игре, вносимое каждым из игроков, должно быть отражено для других игроков в том же виде.