Софт

как создать свою игру на телефон

Рейтинг: 4.2/5.0 (844 проголосовавших)

Категория: Windows

Описание

Как бесплатно создать игру на телефон

Совет 1: Как бесплатно создать игру на телефон Совет 2: Как создать игру на телефон

Созданием игр для телефонов занимается разработчик, который, как правило, представлен компанией. Но бывают и случаи, когда таким процессом занимается один человек.

Определитесь с мобильной операционной системой, для которой будет рассчитана игра. Дело в том, что на сегодня в мире нет той единственной мобильной платформы, которая подавляет своим количественным большинством (например, как у компьютеров, где несомненно лидирует Windows). Каждый производитель продвигает что-то свое, и в итоге рынок имеет порядка десяти операционных систем. Самыми используемыми можно назвать операционные системы Android, Symbian OS, iOs и Windows Phone 7.
В самом начале разрабатывать игру придется для одной из этих платформ, а уже после переделывать (портировать) игру под другие. Такой процесс нетривиален и требует смелого подхода, т.к. порой различие между платформами весьма существенное.

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

Сформируйте идею будущей игры. Создайте специальный документ, где опишите все, что касается проекта, только без фанатизма. Не нужно строить грандиозные планы, все же вам придется воплощать их в реальность, применяя свои навыки программирования. Продумывая концепцию, вспоминайте литературу по программированию, обдумывайте все с логической точки зрения.

Приступайте к разработке. Установите среду разработки, тестовую платформу для разработчиков и пишите код. Попутно можно рисовать графику, но это делать не рекомендуется, т.к. рисование заметно отвлечет вас от кропотливого процесса программинга. Дизайном лучше заняться в последних стадиях разработки, или же поручить дело другому человеку.

Тестируйте. Самый последний и самый долгий этап в разработке любой игры, который сопровождается всеми предыдущими. Ищите ошибки, баги и другие неточности в игре. Поначалу их будет очень много, но нужно будет постараться снизить их количество до приемлемого уровня.

После того, как посчитаете, что игра готова - выпустите ее. Сделайте ее бесплатной, или платной, пытаясь заработать на этом. Либо можно найти спонсора, который будет готов отдать за нее неплохие деньги.

как создать свою игра на телефон:

  • скачать
  • скачать
  • Другие статьи, обзоры программ, новости

    Создание игр на телефон - Курс обучения созданию игр для мобильных телефонов на Midlet Pascal

    Введение

    Хорошая новость, друзья! Вам не нужно знать язык Java для создания Ваших игр для мобильных телефонов! Изучаемый на нашем курсе пакет разработки Midlet Pascal сделает все за Вас! Наверно Вы хотите знать - так ли актуально уметь создавать игры для мобильных телефонов? Конечно ответ будет - ДА! На сегодняшний момент, создание игр для телефонов - динамично развивающаяся и очень востребованная область программирования. Такое программное обеспечение гораздо проще компьютерного, хотя с каждым днем оно становится все сложнее. Все закономерно: развиваются, эволюционируют мобильные устройства, а вместе с ними развиваются и программные продукты. И сегодня мы можем найти как незамысловатые, несколько монотонные игры (способные скрасить минуты ожидания или поездку), так и захватывающие, красочные сюжетные сценарии, от которых сложно оторваться.

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

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

    Из каких этапов состоит создание игр на телефон? Для начала разработчикам нужна неординарная идея, которая способна сделать игру популярной и легко продать ее. Затем, когда идея сформирована, сценарист пишет сценарий, а художник создает на бумаге эскизы, соответствующие концепции игры. Затем нужно перенести нарисованные объекты в компьютер и продолжить рисование в растровой графике. На этом этапе создания игр для мобильных телефонов аниматор имеет возможность увидеть примерную картину будущей игры, ее фоны, декорации и цветовую гамму. Затем готовое изображение уменьшается до размеров монитора мобильного телефона, а когда фоны и декорации готовы, художники создают анимированных персонажей и мелкие детали игры.

    После того, как одиночному программисту или команде разработчиков удалось создать игру на телефон, новый продукт нуждается в тестировании (чтобы устранить вероятные ошибки программирования). А затем готовой игре необходим продавец и покупатель - только тогда она найдет своих игроков среди пользователей мобильных телефонов.

    На протяжении обучения мы с Вами сделаем несколько интересных и захватывающих JAVA-игр для мобильных телефонов. Нами будет рассмотрен процесс создания Морского Боя, космической стрелялки, аркадного платформера, логической игры Сокобан, игры Lines, а также много других примеров, которые доставят Вам радость от реализации Ваших задумок и интересных игровых решений для мобильных устройств.
    Даже, если Вы хотите создать игру для мобильного телефона отличающуюся от рассмотренных на нашем курсе, наши учебные материалы позволят Вам смотреть на реализацию Вашей идеи совсем новым взглядом, так как Вы уже будете подходить к ее решению, вооруженными знаниями и умениями в области создания мобильных игр.

    Предназначение курса

    Данный курс предназначен как вообще для новичков, так и для программистов, делающих свои первые шаги в мире захватывающего программирования игровых приложений.
    Курс базируется на использовании пакета быстрой разработки игр для мобильных телефонов - MIDLET PASCAL который настолько упрощает создание JAVA- игр, что даже те, кто вообще никогда не написал строчки кода, через несколько дней смогут создавать свои первые самостоятельные примеры в этом простом, но мощном пакете.
    Для успешного прохождения курса необходимы базовые навыки программирования на любом языке, любовь к компьютерным играм и, безусловно, большое желание разрабатывать мобильные игры самому.
    Если вы вообще никогда ранее не писали программ, то прохождение этого курса - отличный способ начать увлекательное путешествие в мир программирования и создания мобильных игр!

    Что вы будете уметь

    Освоив полный курс обучения созданию игр для мобильных телефонов, Вы получите необходимые практические навыки программирования игровой логики в создании приложений и игр для обильных платформ.
    Новички в программировании откроют для себя технику создания игрового программного кода. Те, кто уже знаком с азами программирования, смогут расширить свой кругозор за счет изучения области создания игр для мобильных устройств. Постепенно изучая материал нашей учебной программы, Вы быстро достигнете практических результатов; удобная и строго определенная структура уроков будет постоянно стимулировать Вас к продолжению учебы.
    Итогом наших с Вами занятий станет глубокое понимание процессов игровой логики для мобильных устройств, готовность к созданию собственных игровых программ.
    Зарегистрируйтесь для получения первого (БЕСПЛАТНОГО), ознакомительного урока курса "Создание игр для мобильных телефонов" .

    Ваши дальнейшие шаги

    Что тут можно сказать! Ваши друзья будут Вам завидовать, когда Вы скинете им по Bluetooth Ваше первое творение для мобильных телефонов. У Вас уже наверняка были идеи создания какой-либо игры для Вашего сотового, но Вы не знали с чего начать. Тогда этот учебный курс - прекрасная стартовая ступень для понимания и облегчения процесса разработки таких игр!
    После прохождения этого курса, Вы сможете в домашних условиях создавать свои игровые проекты для мобильных устройств и, кто знает, может быть именно Ваша игра станет очередным шедевром популярности на тематических сайтах, посвященных мобильному контенту и принесет огромное удовольствие тысячам ее поклонников, а Вы получите большое, как моральное, а возможно и материальное удовлетворение от реализации Вашего замысла!
    Нам же остается пожелать Вам успехов независимо от Вашего выбора, и, если Вы пожелаете пройти обучение, то нам будет очень приятно передать Вам знания касательно разработки мобильных JAVA- игр.
    Еще раз напомним, что пройдя процедуру регистрации . Вы получаете доступ к первому (БЕСПЛАТНОМУ), ознакомительному уроку курса "Создание игр для мобильных телефонов" .

    Как создать свою java игру на телефон?

    как создать свою java игру на телефон.

    Максим Петрушенко Мастер (1355) 4 года назад


    Как создать java игру без знаний программирования?
    EMG Studio Alpha 1.0.1

    EMG Studio – это конструктор мобильных java-игр. Он очень прост в использовании. Интерфейс программы достаточно скромен, но вполне удобен и функционален. Для создания игр программирование не используется вообще – всё настраивается и включается при помощи различных вкладок и опций!

    Разработка своих игр в данном конструкторе достаточна проста. Всё, что вам нужно для создания своей игры – идея и творческий потенциал.

    Основные этапы разработки:
    1. С помощью соответствующих редакторов создаются различные фоновые и активные объекты.
    2. В "Редакторе сценария" устанавливается количество этапов (менюшки, заставки, уровни и т. д.).
    3. В "Редакторе уровня" устанавливается расположение, порядок прорисовки, способы управления объектами.
    4. В "Редакторе событий" описываются все необходимые события и соответствующие им действия.
    5. Кнопкой "Конвертировать" Формируются java файлы (папка src) и графические файлы (папка res).
    6. В любом java -редакторе создается новый проект, в который копируется папка src и папка res.
    7. Все это компилируется и получается игра.

    Инструкция по использованию конструктора прилагается.
    Также прилагается пример фрагмента игры, созданного с помощью "EMG Studio".
    Вы можете абсолютно свободно скачать полную версию данного конструктора (пока alpha версию).

    1)Зайди---http://www.zhyk.ru/forum/showthread.php. 2 )зарегистрируйся
    3)скачай прогу
    4)и в путь может у тебя талант и пол страны будут играть в твои игрушки.

    Splint - Ученик (91) 4 года назад

    Взять да и создать! Делов то

    Как создать свою игру на телефон

    Как создать свою игру на телефонSkin Steam ESL 2012

    Как создать свою java игру на телефон Я не пойму как люди создают java игры. Если знаете скажите

    Эх тебе скоко лет?

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

    Джава програмирование или програмирование на языке джава :-))

    Как создать свою игру? На телефоне

    да твой ТЛФ готовые то игры не тянет. о какой своей игре речь. шарики -нулики..

    Как создать свою игру. Сегодня онлайн-играм посвящают время миллионы людей по всему миру, многие из которых увлечены идеей создать свою онлайн-игру.

    Android или что там?

    Опиши подробнее, что за игру ты хочешь создать, тогда я смогу тебе что-нибудь посоветовать.

    Game Crafter andr 1.1.3 -для андроид, SurvLiveOwN - IOS

    Как создать свою игру на комп или телефон андроид

    Покупаешь движок и делаешь )))) дпустим батла на фростбайте, покупаешь фрост байт и пилишь батлу )

    Созда м игру на телефон. В языке Java есть ряд преимуществ. Как известно, поддержка сотовыми телефонами языка Java предполагала появление универсального средства разработки.

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

    Unreal Engine 4

    Так зарождалась Allods Team

    Как создать свою игру на телефоне?

    Никак, её делают настоящий профи, в специальных программах.

    В категорию Создание игр входят бесплатные инструменты для создания всевозможных видеоигр от проффесиональных, предоставляющих богатые возможности для работы с кодом игры, до так называемых конструкторов игр.

    Скорее всего да, только убьешь на это не менее месяца

    Если ты гений программ профессионал в этом деле ты сможешь созжать игру не меньше через5 или4 месяцев

    Как создать свою онлайн игру. 3. Очень надо!

    От начало и до конца очень долго это будит, во первых тебе нужны ресурсы своя аппаратура что то вроде бы сочинения музыки, ты же её с бух ты барах ты не будишь делать, коллектив где то из 10 человек максимум хороший музыкант хороший программист. Легче всего сделать не с самого начало а какой то отдельный сервер в игре, и то мало времени потратишь, с начало сделаешь бесплатно чтоб народ знал какая обстановка в сервере, а потом сделаешь платный некоторые если так охота заработать деньги. У меня брат в World of Warcraft держал сервер 5 лет ему спонсор платил, и часть денег он оставил себе и заработал прилично на онлайне, купил себе новый мобильник и ПСП чтоб в дали от дома играть. И всё что я сказал позади если так сильно хочется начать с нуля, это ещё тока часть людей с такими профессиями надо, там ещё по мимо их нужно хорошого художника и помощьника нанять, не будишь ли ты весь день следить как идёт работа.

    Топ-5 разработок, которые позволят легко и быстро создать компьютерную игру самому. Эти приложения ориентированны, в первую очередь, на тех, кто не умеет писать скрипты и не знает языков программирования.

    Как создать свою игру

    Уточни какую? Комп'ютерную, на планшет, телефон, смартфон, консоль.

    Прочитав данную инструкцию, вы сможете создать свою браузерную онлайн игру, играть в нее с друзьями и даже зарабатывать на ней деньги.

    Нужно скачать программу с помощью которой можно создать игру.

    Как создать свою игру на телефон

    Для начала учись хорошо.

    Конструктор для создания java-игр - Вс для китайских телефонов. Конструктор для создания java-игр без знания програмирования. Работающая версия. Вы сможете создать игру, но не думайте, что это так просто!

    Я уже сказал!
    Часов 10 или неск лет делать точно будешь!
    Но если ты не имеешь компании и авторских прав, то за создание того или иного продукта есть статья УК РФ!

    Иди портфель на завтра собирай

    Выучить язык ява

    Только с компа можно

    Через компютер на нужном приложение

    Тема Как создать игру на андроид Прочитано 46238 раз. О статье В этой статье я бы хотел немного рассказать о том, что представляет из себя процесс создания игр под платформу андроид.

    Как создать свою игру на телефон. желательно сказать програму..

    Клуб смартфонов и телефонов Nokia, Как создать тему для телефона с помощью программы Nokia S40 ThemeStudio 2.2 S40 3rd edition Хабы, программы для смартфонов, темы для nokia, программы для Nokia, игры для Nokia.

    Программа пишется с двемя «м»
    Учи русский
    Ты программист? Нет?
    Скорее всего ты школота.
    Потому что создать игру (даже на телефоне) сложно

    Послушай там надо скачать кучу програм ява машин но если хочеш скачай книгу как содавать игры на телефон там пошагово описано что надо

    Как сделать(создать) свою игру для телефона формата jar. или jad.

    Вот знаешь, даже говорить тебе ничего не хочется, ибо бестолку.

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

    Даже и не пытайся: для игры нужен сюжет. А для создания сюжета требуется сценарист, как и для фильма. Если бы писать сюжеты было делом простым — все были бы сценаристами, а их — раз-два и обчелся.
    Закончи сначала сценарный факультет ВГИКа или Щепкинского, а до того пройди конкурс, а до того убедись, что у тебя есть творческая жилка, а до того. Не надо все это, завязывай.

    Как создать свою браузерную многопользовательскую онлайн игру на телефон и как её поддерживать в сети 24 часа в сутки?

    Поддерживать в сети 24 часа, очень легко, просто выложи на хороший ХОСТИНГ
    создать как? учи языки программирования: PHP, HTML, JavaScript, CSS

    Вс для разработки игр, как создать игру на андроид, бесплатно скачать программы для. Скачать Создание игр для мобильных телефонов. Freeware, Windows 7 Vista XP совместимо с Windows 7.

    Как создать свою java игру на телефон.

    Взять да и создать! Делов то

    Я хочю создать браузерную онлайн игру. Хотя я не супер програмист, но немного, как начинающий, в нем разбераюсь. и еше, я хочю зделать текстовую браузерную онлайн игру для мобильных телефонов, не супер браузерку с флеш технологиями.

    Используй прогу MIDletPascal (необходимо знать паскаль)
    или юзай NETBEANS (необходимо знать java)

    Как можно создать свою Онлайн игру?Для мобильных телефонов.

    Читать литературу по java, pvp(именно pvp!) потратите долгие годы на это..

    То есть снять скрины видео из других игр, и потом вставить в свою игру для создания сюжета фонов итд. Примеры. Как создать игру я там себе напридумывал хочу создать но не могу что за фак подскожите аааааааа.

    Как создать свою java-игру, и какие для этого необходимы программы?

    Необходимы знания Java!

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

    JDK (Java Development Kit)

    Как создать свою 2D игру на телефон не зная языка java?

    Честно: никак: )
    Хотя можно поискать Конструктор java игр

    Методом проб и ошибок))

    Это же очевидно. выучить язык java.

    Друзья, создали свою онлайн игру, для мобильных телефонов, приглошаю всех, и зарание спасибо ссылка vova222.aux.suка. Как создать свою игру для телефона? простенькую такую, чтоб типа в виде теста

    Такі програми можна створювати за допомогою Turbo Pascal

    Это бесплатная многопользовательская ролевая игра для мобильных телефонов, выполненная в жанре фэнтези. Создать свой колхоз или возглавить промышленную империю? Здесь ты будешь тем, кем ты захочешь.

    Скажите как создать свою игру

    Обратись в категорию Компьютеры - там по полочкам разложат

    Прежде чем создавать свою первую игру, нам нужно произвести некоторые настройки. По умолчанию программа созда т проект с шириной и высотой уровня 640х480, но наш первый уровень будет иметь размер немного больше.

    Внатуре в яндексе введи! но отвечаю не надо когдато сам пытался! для телефона но ничего не получилось трудно

    Одному тебе точно не создать.
    1 Нужны не малые деньги.
    2 Надо хотя бы человек 100.
    3 Если даже выпустишь маловероятно, что она будет пользоваться спросом.

    Подскажите где скачать программу для создания телефонных игр зарание благодарю

    Единственая прога которая сама делает приложения для майфуна- этоshasoft eBook, она делает электронные книги из-под ворда, чтобы написать что-то стоящее нужен мозг (купи его или поменяйся с кем-нибудь) и прямые руки, таких прог которые запускаешь и пишешь там :"нука создай мне мегакул игру" и она создает, не существует, это пестёш и провокация

    У нас можно бесплатно скачать игры на мобильный телефон.

    Как самому создать игры на телефон

    Тогда отправляйтесь в виртуальную вселенную, созданную разработчиками игры CellCity. Chess Online позволяет вам сыграть в интеллектуальную древнюю игру на мобильном телефоне.

    Для этого сначала нужно создать свою компанию (корпорацию) игр или послать заявку на идею для новой игры в США ( там самые популярные игровые компании).

    Если ты хакер то пробуй но это будет не просто

    Здравствуйте!а где можно скачать игру sim на телефон и чтобы там можно было создавать свою семью Как создать свою игру?

    Легко, если знаешь язык програмирования

    В данной статье мы рассмотрим вопросы создания игр для мобильных телефонов это и общие вопросы, как создать игру на телефон, а также трудности, с которыми придется столкнуться создателю игры.

    Выучить язык программирования (какой - во многом зависит игра для интернета, мобильника или наст. компа) и включить мозги для придумывания идеи игры и алгоритма.
    Языков много, но сейчас самый универсальный и распространенный - Джава (Ява). Не могу анг. буквами писать - ссори.

    Нужно знать хотя бы один язык программирования.
    Для начала, хватит этого http://rutracker.org/forum/viewtopic.php?t=3232116

    Вообще есть системы для создания игр без знаний программирования, но ничего 3-х мерного и сложного не получится.
    Гуглите в сторону ГеймМейкер.
    Еще мне понравилась система Стенсилс чего-то там. Простите, забыл. Может кто вспомнит точное название, пусть допишет.

    Lg gt540 fndroid кидаю на флэшку игры где их в телефоне искать

    Так они на флешке и находятся, а не в телефоне.

    Созданием игр для телефонов занимается разработчик, который, как правило, представлен компанией. Но бывают и случаи, когда таким процессом занимается один человек.

    • Android работа с изображением bitmap - Android Bitmap - как сделать фон картинки прозрачным? У тебя должна быть картинка с прозрачным фоном, вот как эта. С аль
    • Где скачать первую gta - Где скачать GTA 5 vice city?(можно ссылку) Нет такой игры WINstation.RU - знает какие скачать игры на ПК бесплатно и где
    • Андроид забыл пароль вай фай - Как взломать пароль соседский wi fi сети с помощью телефона Android Никак Ваш пароль забыли пароль? андроид. Навигаторы.
    • Сканеры штрих-кода для Android - Как называется программа (на андроид) которая сканирует штрих-коды и показывает отзывы о сканируемом продукте. Barcode
    • Angry birds wm6 -
    • Файл mp4 для мобильных скачать - Кто может сделать мр4 файл сверхъестественное. Помогите мне файл сделать mp4 ну короче для мобильников. ))) Фабрика ф
    • Ps2 gta vice city cheat - Как сделать ручной прицел в GTA Vice city Stories на PS2 Прогу чит качай! Get the latest Grand Theft Auto Vice City chea
    • Плеер для mp4 в Андроид - Чем в Андроиде можно смотреть скачанное видео .flv? FLV HD MP4 Видео Плеер https://play.google.com/store/apps/details?id
    • Плеер вк для ios - Как слушать и качать музыку на iPhone 5 Вконтакте Есть програ melody player Посмотри в сторе. Там синхрон с вк идет и т
    • Татарский словарь для Андроид -

    Как создать java-игру для сотового телефона

    Как создать java-игру для сотового телефона

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

    После этого приступим к работе над двумя примерами игр, которые будем разрабатывать в рамках этой серии, состоящей из двух статей. Начнем с разработки простой автономной игры, а после приступим к куда более сложной задаче — разработке игры с поддержкой возможности игры по сети.

    Для каждой из этих игр будет подробно описана непосредственно игровая часть (т.е. игровая логика), будут приняты некоторые дизайнерские решения, и в завершение мы погрузимся в детальное рассмотрение всех подробностей реализации этих игр на Java.
    Исходный код игр, которые мы будем разрабатывать в этой статье, можно найти и
    скачать здесь: http://developer.java.sun.com/developer/releases/wireless_gaming_blueprints

    Типы игр
    У многих людей, которые когда-либо играли в игры на мобильных телефонах, обязательно складывается некоторое мнение о типах таких игр. Среди них можно выделить основные:
    • Стратегические игры (Mine Sweeper, Reversi, Bejeweled).
    • Карточные игры (Solitaire, Black Jack, Poker).
    • Двухмерные (2D) аркадные игры (Galaxian, PacMan, Defender, Asteroids).
    • Трехмерные (3D) аркадные игры (Doom, Quake, Tony Hawk Pro Skater).
    Мы не будем обсуждать 3D-игры, поскольку системные ресурсы мобильных устройств почти всегда слишком ограничены как в плане доступной памяти и скорости процессора, так и в графических возможностях. Поэтому, поскольку мы хотим превратить наше предприятие во что-то веселое и захватывающее, остановимся на разработке двухмерных (2D) аркадных игр.

    Основные трудности
    В список основных трудностей, с которыми сталкиваются разработчики игр для мобильных устройств, входят следующие: аппаратные ресурсы устройств, удовлетворенность пользователя и отладка на этих устройствах.

    Аппаратные ресурсы
    Малые устройства обычно не имеют достаточного количества статической и динамической памяти. В общем, статическая память необходима для того, чтобы разместить в себе файлы классов вашей игры (упакованные в JAR-архив, естественно), а количество динамической памяти определяет, сколько памяти будет доступно вашей игре во время ее работы. Таким образом, необходимо очень осторожно и бережно относиться к использованию как статической, так и динамической памяти и тщательно продумывать каждый свой шаг на этапе разработки, поскольку любое неправильное решение может повлечь за собой превышение лимита использования памяти.
    JAR-файл, содержащий вашу игру, должен быть достаточно мал (хорошим вариантом будет размер в пределах от 10 до 40 килобайт на одну игру), а количество потребляемой памяти во время выполнения игры должно быть ограничено в разумных пределах. Чтобы удовлетворить этим руководящим принципам, следует учитывать количество создаваемых вами объектов и частоту их создания. MIDP Wireless Toolkit 2.0 (WTK) — это эмулятор устройств, который при установке некоторых параметров может предоставить вам полную информацию об используемой памяти. Однако примите во внимание, что MIDP может самостоятельно создавать объекты без вашего на то согласия. Таким образом, не все объекты, которые вы сможете наблюдать при мониторинге памяти, обязательно создаются вашей игрой.

    Процессоры, используемые в мобильных устройствах, обычно слишком маломощны по сравнению с теми высокопроизводительными гигантами, которые находятся в ваших десктопах или PDA. Частота работы процессоров мобильных устройств может быть даже 15-20 MHz. Кроме того, зачастую мобильные устройства не имеют никаких графических ускорителей. Медленные процессоры и относительно медленная графика должны заставить вас задуматься и всерьез обратить свое внимание, на что ваша программа тратит больше всего времени. Но это не значит, что вы должны полностью отдаваться проблеме предупреждения всякого рода задержек в вашей игре. Вместо этого лучше следовать проверенному временем подходу при написании программ, для которых производительность — основная причина головной боли (это могут быть не только игры): сначала сделайте так, чтоб работало, после сделайте так, чтоб работало правильно, а уже после этого сделайте так, чтоб работало быстро.
    Этот подход работает не всегда. Например, если ваша игра — полноценная 3D-аркада с множеством объектных преобразований, поворотов, масштабированием и тысячами полигонов, которые нужно прорисовывать для каждого фрейма, то для того, чтобы заставить это работать быстро на небольших устройствах, потребуется гигантский труд и огромное количество времени (хотя JSR 184 позволяет разрешить некоторые проблемы посредством использования аппаратных возможностей устройств). Что касается 2D-игр, то здесь вы можете не заботиться на начальном этапе о стратегии перерисовки. (Конечно же, если вы уверены, что сможете произвести необходимые действия по оптимизации позже.) Возможные действия по оптимизации не обязательно должны включать полную перерисовку для каждого фрейма. Вкратце проанализируйте проектировку вашей игры и свободно определите для себя, какие улучшения производительности (графические, естественно) вы сможете привнести позже; но ни в коем случае не забивайте себе голову какими-либо конкретными деталями по реализации этих улучшений. Помните, что улучшение производительности кода часто оказывается намного более сложным процессом, чем непосредственное кодирование приложения. Именно по этой причине мы разделяем секции оптимизации для обеих из рассматриваемых нами игр: сначала мы определяем, в какой именно части нашей реализации проявляются явные задержки (низкая производительность) и как выбрать наиболее оптимальный и быстрый вариант решения этой проблемы.

    Удовлетворенность пользователя
    Играть в игры должно быть интересно, иначе бы люди просто в них не играли. В случае с калькулятором или текстовым редактором, которые не всегда так уж интересны, мы вынуждены ими пользоваться, поскольку значимость этих приложений намного перевешивает неудобность и непривлекательность их использования. Совсем иначе обстоит дело с играми. Здесь нет видимой выгоды или других причин тратить свое время и нервы на игру, если только она не интересна и не доставляет удовольствия пользователю. Таким образом, целевое назначение любой игры — быть интересной и понравиться пользователю. А в ситуации с сотовыми телефонами существует ряд факторов, которые могут очень негативно повлиять на мнение пользователя о вашей игре.
    Во-первых, мы имеем слишком малый экран, на котором достаточно сложно уместить все, что необходимо, и именно так, как задумывалось. Клавиши слишком малы и неудобны в использовании. Это особенно важно в играх, для которых по игровому контексту нажатие клавиши должно быть обработано в пределах одной десятой доли секунды, чтобы игрок смог преуспеть в игре. Звуковые возможности также могут быть чрезвычайно ограничены: звука может не быть вовсе либо он будет, но всего лишь в виде небольшого набора бип-сигналов или же обычного тонального генератора. В любом случае этого недостаточно, чтобы предоставить своей игре хорошее звуковое оформление. Чтобы привлечь пользователей, игра должна иметь достойный внешний вид и удобное управление. Это означает, что различные игровые экраны (сцены в игре) должны выглядеть как часть одной игры. Это можно осуществить за счет использования постоянной гаммы цветов, фоновых изображений и узоров, иконок и прочего. Пользователи не должны видеть сообщений об ошибках во время игры, не считая критических (например: 'HTTP 404: not found'). Графическое и звуковое оформление игры в идеале должно создаваться людьми с художественными и эстетическими наклонностями.

    Отладка
    Процесс отладки на самих мобильных устройствах очень трудоемкий. Лучше всего воспользоваться эмулятором, например, WTK, где это возможно, поскольку эмуляторы позволяют вам получить доступ к консоли, на которую вы без труда сможете выводить сообщения с помощью метода System.out.println(). Также очень хорош прием перегрузки или определения методов toString() для всех ваших объектов. С их помощью вы сможете получать полную информацию о состоянии любого объекта на конкретный момент времени. Вы также сможете просто закомментировать эту часть кода, чтобы предотвратить попадание ее в релиз игры. При этом вы оставляете за собой возможность отладки до следующих релизов. Можно, конечно, воспользоваться встроенным отладчиком вашей любимой среды разработки (IDE) на Java, но это может повлечь за собой множество проблем. Пока для нас будет вполне удобным метод println().
    Другой вариант отладки — демонстрационные режимы в вашей игре. Идеально демо-режим должен вовлекать в демонстрационный процесс игры всю ее функциональность, насколько это возможно. Это позволит вам не только продемонстрировать конечному пользователю, на что способна ваша игра, но и проверить, не рухнет ли приложение при возникновении каких-либо внештатных ситуаций. Это сделает процесс отладки ошибок очень легким. Вместо того, чтобы часами сидеть и нажимать на клавиши, пытаясь проверить все возможные варианты игры, вы просто сидите и смотрите, как игра делает всю самую сложную работу (для выполнения которой она, собственно, и была написана) за вас. Вместе с выводом небольших полезных отладочных сообщений вы получаете очень мощный отладочный инструмент.

    Автономный вариант игры
    Описание

    В качестве примера автономной игры была выбрана очень распространенная версия аркады типа арканоид. Элементами игры являются блоки разного цвета, доска и шарик. Игрок управляет доской, которую он может передвигать вправо или влево. Шарик летает в пределах игрового поля, в то время как игрок должен придерживаться двух целей, чтобы выиграть. Игровое поле ограничено стенками слева, справа и сверху. Нижняя стенка, по которой передвигается доска, открыта. Чтобы предотвратить падение шарика вниз, игрок должен передвигать доску к тому месту, куда собирается упасть шарик, который, оттолкнувшись от доски, полетит по рассчитываемой траектории. Игра организована в несколько уровней. На каждом из них на игровом поле находится определенное количество блоков. Некоторые из этих блоков сразу распадаются при попадании в них шарика, другие ведут себя более сложно. Игрок должен, воспользовавшись шариком, сбить все сбиваемые блоки на игровом поле, чтобы перейти к следующему уровню. Если шарик падает на нижнюю границу экрана, и игрок не успевает отбить его с помощью доски, то игрок теряет одну жизнь. При старте игрок получает три жизни. Как только пользователь истратил все свои жизни, игра заканчивается, и он проигрывает. Во время игры на экране отображаются индикаторы, показывающие статистическую информацию о текущей игре: количество оставшихся жизней, количество заработанных очков и рекордное количество очков.
    Поскольку это сравнительно простая игра, мы не будем сохранять рекордное количество очков постоянно, а только на текущий сеанс работы программы. Игра также содержит экран-заставку, которая отображает название игры и имя ее автора. Помимо этого, есть еще и экран, который выводится при проигрыше. И, наконец, она имеет демонстрационный режим, в котором доска контролируется самой игрой. Это очень полезно как для демонстрационных целей, так и для тестирования и отладки.

    Проектирование
    Из приведенного выше описания мы можем выделить несколько сущностей, которые будут играть ключевую роль в проектировании игры. Это шарик, доска и блоки. Причем все эти сущности имеют общие свойства: положение, размер, графическое представление, а также обработчик столкновений с другими объектами (сущностями). Все это свойственно спрайтам (sprite). Поскольку в MIDP 1.0 нет поддержки работы со спрайтами (в MIDP 2.0 она уже есть), нам придется делать все самим. Это не страшно, так как необходимая функциональность наших спрайтов сравнительно мала.
    Если немного подумать, то можно прийти к выводу, что блоки и доска имеют много общего. Поэтому в плане функциональности они схожи, и мы можем реализовать эти две сущности в одном классе.
    Чтобы реализовать модель определения столкновений объектов, воспользуемся упрощенческим методом прямоугольников. В этом случае каждый из объектов на игровом поле будет определяться следующими параметрами: координатой X, координатой Y, а также высотой и шириной. Для доски и блоков эти параметры полностью определяют их фактический размер. Однако для шарика такое представление — достаточно грубое приближение его натуральной формы. Чтобы достичь более натурального поведения шарика при таком представлении, нужно немного уменьшить его размеры (например, 75% диаметра шарика в качестве одной стороны его прямоугольника). По определению два объекта считаются столкнувшимися, если их прямоугольники перекрываются, т.е. накладываются друг на друга.
    Для того чтобы придать нашей игре более привлекательный вид, мы нарисовали объекты в псевдотрехмерной форме. Каждый объект отбрасывает тень, которая передвигается вместе со своим объектом. Кроме того, объекты подвержены эффекту освещения. Верхние края, откуда предположительно светит источник света, более светлые, тогда как нижние немного затемнены.

    Теперь на стадии проектирования введем в нашу игру еще три сущности (это очень упростит реализацию игры). Первая сущность будет группировать блоки на всех уровнях. Назовем ее 'списком блоков' (brick list). Этот список представляет собой контейнер объектов, но помимо этого он будет выполнять и функции видимости объектов. Например, вместо того, чтобы перерисовывать каждый блок, мы просто даем команду списку перерисовать все блоки данного уровня. Так же и в случае с обработкой столкновений. Чтобы не определять индивидуально, не столкнулся ли шарик с каким-то из блоков, мы возлагаем эту задачу на список, который и осуществит эту проверку за нас. Второй вводимой сущностью будет 'экран' (screen). Эта сущность будет координировать любые действия, происходящие на игровом поле (т.е. что нужно рисовать, и в каком порядке). Стратегию перерисовки мы обсудим далее в секциях Реализация и Оптимизация. Наконец, нам нужна сущность, которая связала бы все это вместе — что-то, что могло бы привести в действие нашу игру. По вполне понятным причинам назовем эту сущность движком (engine).
    Игра на данный момент спроектирована так, что имеет всего четыре уровня. Однако их количество можно очень легко увеличить в будущем. Для того чтобы сделать функцию по расширению уровней максимально простой, мы выносим представление уровней в виде данных вне исходного кода. Если сделать так, то новые уровни могут быть прочитаны из базы данных устройства или даже загружены из сети без проблем с безопасностью. Это означает также, что уровни может разрабатывать любой желающий, а не только программист. Но для этого, естественно, нужно будет написать немного лишнего кода, который будет осуществлять чтение/загрузку уровней из внешних источников.
    Другим объектом, на который нужно обязательно обратить внимание на этапе проектирования, — это размер экрана. Спецификация MIDP не устанавливает какой-то определенный размер экрана и даже не задает возможный минимальный его размер. Здесь все зависит от разработчиков устройств. Именно они устанавливают разрешение для своих устройств. Общее решение данной проблемы — допускать очень малый размер экрана. Таким образом, у большинства устройств размер экрана совпадет либо почти совпадет с выбранным вами. В случае, если разрешения совпадут, игра будет занимать все пространство экрана устройства. Если же разрешение устройства окажется больше, то игра будет центрирована внутри физической области экрана. Наша игра — типичный пример простой игры, когда можно выбрать более искушенный подход для решения этой проблемы. Поскольку размеры всех объектов кодировать не так уж сложно, мы можем вычислять их при старте игры, первоначально определив фактический размер и разрешение экрана устройства. Это значит, что наша игра всегда будет использовать максимум доступного ей экранного пространства.

    Реализация
    Как сказал Дональд Кнут: 'Предварительная оптимизация — это источник всех зол'. Всецело доверяя этому высказыванию, мы начнем с обычной реализации, чтобы не усложнять себе жизнь. Как только игра начнет работать, мы определим части программы, которые необходимо будет оптимизировать. Далее будут приведены довольно интересные элементы кода, иллюстрирующие подробности идей реализации. Эти элементы представлены по принципу 'снизу-вверх'. Это означает, что части более низкоуровневого кода будут рассматриваться раньше, чем высокоуровневый код.

    Класс ThreeDColor
    Этот класс реализует безопасный шаблон перечислений, который был ранее представлен в знаменитой книге 'Эффективное программирование на Java' ('Effective Java Programming'). Все цвета, которые можно использовать, представлены в виде экземпляров переменных с модификатором public.
    Private-конструктор данного класса предотвращает установку других значений этих переменных. Методы brighter() и darker() используются для выбора подходящего цвета для освещения и затемнения соответственно. Метод getRGB() возвращает целое RGB-значение цвета, который был установлен с помощью метода Graphics.setColor(int).

    Класс Sprite
    Этот класс является суперклассом для классов Ball и Brick. Каждый объект класса Sprite имеет координаты X и Y, ширину, высоту, определяющие прямоугольник, а также смещение тени. Смещение тени задает, насколько далеко от объекта будет рисоваться его тень. Оно также показывает, насколько высоко над экраном будет 'парить' объект. Прямоугольник, который определяется в этом классе, как мы уже говорили выше, используется для 'отлова' столкновений объектов. Он создается в конструкторе, в котором также определяется значение смещения тени согласно фактическому размеру экрана. Данный класс также определяет абстрактные методы для рисования объектов и теней у спрайтов. Реализация этих методов предполагается уже в классах Ball и Brick.
    Код класса Sprite: тут

    Класс Ball
    Этот класс занимается движением и прорисовкой шарика. Радиус шарика (или его размер) определяется на основе текущих размеров экрана.
    Каждый экземпляр шарика имеет ряд переменных, которые задают его скорость (dx, dy), случайные скоростные помехи (xo, yo), а также его цветовую схему (цвет, яркость и затемнение). Конструктор создает экземпляры переменных класса Sprite width (ширина) и height (высота) на основе значения радиуса шарика и, помимо этого, устанавливает цвет.
    Этот класс содержит четкие инструкции по поводу того, как нужно прорисовывать шарик. Метод move() устанавливает новое положение шарика на игровом поле с учетом текущей скорости и помех. bounceHorizon-tal() и bounceVertical() подбирают и вычисляют подходящий коэффициент скорости после столкновения шарика с другим объектом или стенкой. Чтобы предотвратить тупиковую ситуацию, когда шарику некуда больше двигаться либо когда он начинает циклично двигаться по одной и той же траектории (замкнутому пути), методы bounce Horizontal() и bounceVertical() каждый раз в цикле привносят немного помех при вычислении пути. Это позволяет избежать зацикливания игры. Методы paint() и paintShadow() используются для прорисовки шарика.
    Код класса Ball: тут

    Класс Brick
    Класс Brick определяет ряд основных атрибутов блоков: width (ширина), height (высота), step (шаг), gap (разрыв). Атрибуты width и height представляют собой ширину и высоту блоков по умолчанию, step — это количество движений блока при анимации, а gap — это расстояние до смежных с ним блоков. Все эти значения тоже вычисляются согласно текущему размеру экрана. Кроме того, в этом классе присутствуют определения для символических имен для каждого типа блоков: zombie (для несуществующих блоков), standart (обычные блоки), fixed (неразрушимые блоки) и slide (блоки, которые могут перемещаться на место своих соседей, если такое место еще не занято). Наконец, каждый блок имеет ряд атрибутов, касающихся его позиционирования на игровом поле, типа, цветовой схемы, количества очков, которое дается за разрушение этого блока и ссылки на список блоков, к которому он принадлежит.
    Большинство атрибутов блока инициализируется конструктором. Метод clear() удаляет блок с игрового поля, hit() знает, как текущий блок должен отреагировать на следующее столкновение с шариком. IsFixed() возвращает true, если этот блок нельзя разрушить (тип fixed). Как и в предыдущем классе, методы paint() и paintShadow() предназначены для прорисовки объекта.
    Код класса Brick: тут

    Класс BrickList
    BrickList — это первый класс, относящийся к высокоуровневым классам нашей игры. Этот класс занимается размещением блоков на игровом поле. Он знает, как нужно расположить блоки с учетом всех их параметров, а также с расстановкой цветов. Конструктор BrickList использует вариант расположения по умолчанию. Метод moveBrick() перемещает блок с одной позиции на другую, checkForCollision() возвращает значение — число больше нуля, если произошло столкновение шарика с одним из блоков из текущего списка блоков. Возвращаемое значение — это количество очков, которое получает игрок за сбитый блок. Это значение берется из свойства соответствующего сбитого блока. После этого количество заработанных игроком очков увеличивается на это значение. Обратите внимание, каким образом метод checkCollision() заново использует тот же прямоугольник для проверки на столкновение, тем самым исключив из процесса проверки на столкновения любой ненужный мусор (да, это есть оптимизация).
    Метод isClean() возвращает true, если на игровом поле (и, соответственно, в списке) не осталось больше стандартных блоков. Таким образом, это означает, что уровень успешно пройден; в противном случае этот метод возвращает false. getNeighbor() возвращает соседствующий блок для блока, передаваемого в качестве аргумента и в соответствующем направлении. Если для этого блока по указанному направлению нет больше соседей, то этот метод возвращает null. Методы paint() и paintShadow() отображают все блоки текущего листа, поочередно вызывая методы paint() и paintShadow() для каждого из своих элементов-блоков.
    Код класса BrickList: тут

    Класс Screen
    Этот класс заправляет всеми высокоуровневыми операциями по рисованию, которые необходимы нашей игре. Он знает, как рисовать различные экраны, которые мы обсуждали в секции Описание этой статьи, а также может запрашивать состояние у класса Engine, чтобы знать, какой экран прорисовывать. В заглавном экране на имя автора наложена простенькая анимация, так что имя автора поднимается из нижней границы экрана. Для анимации этот класс использует переменную wildcard_y. Кроме того, методы keyPressed() и keyReleased() пересылают события, поступающие от клавиатуры, в класс Engine.
    Код класса Screen: тут

    Класс Engine
    Этот класс можно смело именовать сердцем нашей игры. Он хранит все шаблоны уровней в переменной pattern_list (представленные таким образом, что, посмотрев на исходные данные, можно без особого труда представить себе, что собой будет представлять тот или иной уровень) и определяет ряд различных состояний, в которых может пребывать игра. Это состояния title, play, over и demo. Игра стартует, начиная с состояния title, когда отображается заставочный экран. Если в течение определенного промежутка времени была нажата какая-нибудь клавиша, игра переходит в нормальное игровое состояние play. Иначе она стартует демонстрационный режим (состояние demo). В этом состоянии игра играет сама в себя. Выйти в обычный режим play можно, нажав любую клавишу. В случае, когда игрок теряет все выделенные ему жизни, игра переходит в состояние over. Если в течение определенного времени игрок нажимает какую-либо клавишу, игра переходит в режим play, иначе стартует режим demo. Основной цикл программы определен в методе run(). Здесь движок игры 'засыпает' на некоторое время, после чего анимирует все объекты и, наконец, перерисовывает экран. Такой подход используется в огромном количестве аркадных игр и обычно называется игровым циклом.
    В этом цикле игра прежде всего обновляет свое состояние. Среди элементов, которые игре нужно обновить, — пользовательский ввод, таймеры, генераторы случайных чисел и вражеский AI (Artificial Intelligence — искусственный интеллект). После того, как состояние игры было обновлено, экран перерисовывается. После перерисовки движок 'спит' некоторое время и потом начинает весь этот процесс заново. Чтобы дать игре возможность работать независимо от него, модуль движка запускается в своем собственном потоке. Это реализовано посредством использования в классе Engine реализованных методов интерфейса Runnable. После чего создается новый объект класса Thread, и его конструктору передается объект нашего движка. При этом объект thread первым делом запускает сам движок посредством вызова метода run() класса Engine.
    Обратите также внимание на то, как происходит обработка нажатий игроком клавиш. Код клавиши, нажатой пользователем, записывается в переменную при первом ее нажатии. Как только пользователь отпускает эту клавишу, значение этой переменной с кодом клавиши сбрасывается. Основной цикл программы передвигает доску, управляемую пользователем, в запрошенном направлении, пока клавиша не будет отпущена.
    Это означает, что для того, чтобы переместить доску в другой край экрана, игроку не потребуется несколько раз нажимать на клавишу. Он ее просто удерживает до тех пор, пока доска не переместится в нужное ему место.
    Код класса Engine: тут

    Оптимизация
    Как только мы запускаем игру в среде WTK или на самом устройстве, сразу бросается в глаза тот факт, что наш подход к прорисовке экрана слишком медленный. Анимация слишком резкая и рывковая. В игру совершенно невозможно играть.
    Надо что-то срочно менять. В нашем случае мы просто перерисовывали весь экран для каждого фрейма. Согласно природе нашей игры понятно, что это просто абсолютно нелогичный подход, поскольку в игре у нас от фрейма к фрейму происходит изменение только двух вещей: текущей позиции шарика и доски (если пользователь активно ее перемещает). Изредка наш мячик соударяется со стандартным блоком, который после этого исчезает, либо со скользящим (slide) блоком, который может переместиться на место своего соседа, а может и не переместиться. В этом случаем нам придется перерисовывать еще и весь список блоков. Однако после более близкого изучения мы замечаем, что можно, собственно говоря, весь список и не перерисовывать. Можно просто стереть сбитый стандартный блок из списка или, если это slide-блок, удалить его в старой позиции и нарисовать в новой. Таким образом, имеет смысл рисовать список блоков в отдельном буфере изображения и только потом копировать этот буфер на экран во время перерисовки. Так, во время изменения списка (из-за сбитого или перемещенного блока) мы перерисовываем изменившуюся часть списка в отдельном буфере изображения.
    В общем, оптимизация имеет смысл в нескольких областях. Графическая производительность — это одна из наиболее важных областей, и мы должны иметь это в виду. Однако перегруженность в вычислениях также очень критична для вашей игры. Если ваша игра тратит слишком много времени на прохождение игрового цикла, нужно обратить внимание на такие вещи, как проверка на столкновения и другие вычислительные расчеты игры. Для начала попробуйте отключить все кажущиеся вам полезными внутренние особенности реализации и проследите, насколько это уменьшит или увеличит нагрузку на процессор. WTK 2.0 имеет встроенный инструмент для мониторинга загруженности процессора эмулятором. Но будьте внимательны: его цифры не всегда отражают реальную картину происходящего на настоящих устройствах. Как только вы найдете что-то, что нужно исправить, сначала убедитесь, действительно ли ваша реализация обновленного кода оптимизирует работу приложения. Если нет, то вам следует поискать другой, более быстрый подход к решению этой проблемы. Также обязательно обратите внимание на элементы управления. Нет ничего более отталкивающего, а в играх особенно, чем медленное и инертное управление, которое не дает пользователям игры проявить свои игровые способности.

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

    Вывод
    Самый главный урок, который вы должны были извлечь из этой статьи: рисование — занятие очень ресурсоемкое. Если вы посмотрите на код изначальной реализации, а потом на оптимизированный код, то не увидите между ними большого различия. Между тем, различия в производительности игры очень велики. Если вы собираетесь действительно использовать, а тем более продавать, свою игру, вам обязательно нужно опробовать ее в действии на реальном устройстве. Хоть WTK — это и великолепный инструмент для разработки, но в игре существуют моменты, которые можно обнаружить, лишь запустив ее на реальном мобильном устройстве.

    В следующий раз мы рассмотрим сетевой вариант игры для мобильных устройств и еще раз поговорим про проектирование, реализацию и оптимизирование игр на Java.