Давно мечтаете сделать свое приложение, имеете интересные идеи, хотите заработать на создании качественной игры? Безусловно, практически каждый пользователь загорался таким желанием, но часто останавливают сомнения, страхи и неуверенность. Ведь как создать игру на Андроид с нуля самому, если навыки программирования слабо развиты, владение английским языком оставляет желать лучшего, а никаких специализированных программ под рукой нет? Попытаемся разобраться.
Уровень сложности создания Android-игр
Самое главное – это вполне реальная возможность создать свою игру самому, не тратя на нее тысячи долларов и обходясь без помощи опытных дизайнеров и программистов.
Да, огромные приложения с 3D-графикой делаются популярными и богатыми компаниями, где работают настоящие титаны с превосходными навыками. Но не всегда такие игрушки добиваются популярности, тогда как даже простое и элементарное приложение, разработанное новичком, имеет все шансы завоевать любовь миллионов пользователей со всего мира.
Что же необходимо знать и уметь человеку, решившему внести свое изобретение в игровую сферу? Для начала, это иметь хотя бы минимальные знания в языке программирования, которые с легкостью можно получить на курсах информатики или с помощью специальных учебников. Оптимальный вариант – язык Java. В виде альтернативы вполне можно представить программные коды, способные заменить конкретные действия в игре, но тогда вы должны хорошо владеть английским языком.
Также развеем заблуждение о том, что для создания приложения необходимо полностью знать Photoshop, иметь дизайнерский вкус и отлично рисовать. Но не стоит путать, например, новое приложение для общения с полноценной игрой. Если вы решили создать первое – там главное только текст и клавиши управления, но если настоящую игру – без художественных элементов не обойтись. И фишка в чем: эти элементы находятся в конструкторе. То есть, собственноручно рисовать вам придется очень редко.
Плавно переходим к конструкторам, поскольку они являются базой всей игры и только с помощью них новичок может создать свое творение. Выбор таких специальных программ огромен, о чем поговорим ниже.
Теперь подводим небольшие итоги. Если вы решили создать свою игру, то для этого требуется:
- Идея, образное представление, о чем будет игра, знание ее основного сюжета;
- Минимальное владение языком Java, ведь полностью без программирования (без нужных знаний) не обойтись;
- Установленная на компьютере программа для создания продукта;
- Свободное время, внимательность и желание трудиться.
Какую игру лучше всего создать
Четких ограничений нет, выбор в конструкторах обычно предоставляется обширный: квест, карточная игра, догонялки, стрелялки, экшн. Обилием жанров больше всего славится приложение Construct 2.
Самым лучшим вариантом для новичка, пожалуй, станет платформер. Бродилки по незамысловатому лабиринту или легкая драка со злодеем – типичный, но довольно неплохой сюжет для начала. И все это вполне реально воссоздать, используя бесплатный и удобный конструктор.
Еще вас могут заинтересовать карточные игры, где не требуется высокая графика, четкая прорисовка и множество действий. Все шаги, в том числе тасовка карт и раздача, отличаются от других жанров однотипностью. Обычно у таких игр и самый простой интерфейс, состоящий из обычного меню.
Самое сложное направление для создания, это, конечно, экшн-игры, где присутствует детальный проработанный мир, обычно сделанный в 3D-формате, несколько главных персонажей, длительный сюжет и множество уровней. На примере рассмотрим известное приложение Modern Combat. Конечно, для такой мощной игрушки требуются десятки специалистов, хорошие вложенные деньги и месяца работы. Но это не значит, что пользователь сам не сможет создать 3D-игру. Нужны только хорошие умения и навыки, поэтому этот жанр следует оставить на потом.
Как создать игру на Андроид с нуля без навыков программирования
Теперь рассмотрим основную часть создания игры, а именно конструкторы, представляющие собой обычные программы, которые можно с легкостью скачать на просторах Интернета.
Обратите внимание! Мы советуем загружать приложения только с проверенных сайтов и перед установкой тщательно проверять их антивирусом. В противном случае есть риск занести вредоносные файлы в свою операционную систему.
Construct 2 — простая платформа для 2D приложений
Лучшее приложение в своем роде, которое занимает лидирующие позиции. Главное преимущество – это возможность создавать игры практически на все платформы, в том числе и на Android. Поддерживается и анимационный формат HTML5, с помощью которого созданные творения будут доступны для игры онлайн во всех браузерах, что немаловажно, ведь такие игрушки гораздо проще в функционировании.
Базовая версия программы совершенно бесплатна и идеально подойдет новичку, ведь имеет все необходимые инструменты из графического интерфейса. Поэтому командные строчки не понадобятся, как и художественные умения.
Присутствует и качественное оформление игры: различные эффекты звука и графики, стандартные изображения для фона, без которого просто не обойтись. Есть также отличная возможность наполнить приложение своими индивидуальными и уникальными материалами.
Большая часть создания – это обыкновенное перетаскивание элементов и установка их взаимодействия. Например, персонаж цепляется за камень, и уровень заканчивается; одна часть фона представляет собой траву, другая, верхняя – небо, играет нейтральная музыка и характерные звуки. Вот и все, можно считать, самая простая и элементарная игра практически создана.
К сожалению, существует и минус: в бесплатной версии можно экспортировать творения в браузеры, а оттуда открывать их на совершенно любой платформе, но бесплатно создать игру только для Андроид не получится. Для этого придется вкладывать деньги в платную версию, стоимость которой немного превышает 100 долларов. Зато потом возможности намного расширяются, игры без проблем можно делать чисто на Андроид или iOS, а с помощью установочных файлов открывать приложения на персональном компьютере.
Видео-инструкция как сделать игру на Андроид с помощью Construct 2 и Construct 3
Unity 3D — мощный движок для разработки 3D проектов
Если предыдущая программа позволяла создавать только 2D-игры, то Unity 3D уже выходит на новый уровень и предоставляет разработчикам все условия для создания отличного трехмерного проекта. Программа оснащена различными готовыми моделями, изображениями, скриптами и текстурами на любой вкус. Компиляция имеет высокую скорость, редактор, несмотря на свою многофункциональность, очень прост в использовании.
Благодаря ядру PhysX все действия персонажей проработаны до мелочей, выглядит созданная игра качественно и дорого, даже если в ней задействован простой сюжет, не отличающийся особой продолжительностью.
Единственное требование – это достаточно мощный компьютер, поддерживающий 3D-форматы и навык программирования среднего уровня, поскольку новичкам будет все же немного трудно разобраться.
Видео-инструкция по созданию игры с помощью Unity 3D за 45 минут
Game Maker — самый легкий вариант для новичка
Наиболее легкая программа из всех существующих, идеальная для неопытных и неуверенных в своих знаниях пользователей. Именно здесь можно обойтись и без программирования, и без языка Java.
Приложение предоставляет для свободного использования множество интересных персонажей, объектов, локаций, эффектов. Разработчику остается только перетаскивать нужные предметы на основной фон и выбирать взаимодействие.
Нельзя сказать, что таким способом игра будет делаться с нуля, и вы полностью создали свое приложение, но основное представление о разработке игр вы все же получите, что позволит переходить на новые уровни программирования и совершенствования уже имеющихся умений.
Видео-мануал по программе Game Maker
Этапы создания игр
Делаем простую игру
Под простой игрой подразумевается самый незамысловатый сюжет. На примере рассмотрим такую идею: человечку необходимо преодолеть препятствия, чтобы благополучно добраться до финиша. К тому же, по дороге желательно собирать монетки. Согласитесь, воспроизвести такую картинку с помощью Construct 2 довольно просто и интересно. Рассмотрим приблизительные ориентировочные действия:
Смотрите также
- Создаем фон любого цвета, в нашем случае для натуральности лучше выбрать зеленый;
- Делаем главного персонажа, им может выступать и животное, и человечек;
- Проектируем монетки и расставляем их по всему фону; аналогичное проделываем и с препятствиями (изображение камней, дров – лучший вариант);
- Теперь определяем взаимодействие персонажа с окружающей средой. Споткнулся о камень – игра окончена, поймал монетку – она продолжается, добежал до края фона – финиш.
Для пошаговых действий и подробной инструкции смотрите видео, которое прилагается к этому разделу.
Делаем карточную игру
Для такого жанра лучше всего использовать программу Unity 3D. Здесь же рассмотрим направления и шаги:
- Делаем основной фон для карт;
- Проектируем сами карты, то есть, инвентарь;
- Задаем взаимодействия;
- Определяем количество игроков;
- Переводим меню игры из 3D в 2D;
- Определяем конец игры.
Создаем РПГ-игру
Отличной программой для такого жанра является программа RMXP или тот же Unity3D, выпущенная японской компанией. Для создания подобной игры нужно время и внимательность, но ни с чем сложным вы не столкнетесь.
- Придумываем основную идею будущей Андроид игры;
- Пишем основной сценарий;
- Рисуем базовую карту и добавляем объекты;
- Создаем события.
Как создать онлайн-игру для Андроид
Отдельной схемы для создания именно онлайн игры не существует. Приложение данного типа делается с помощью вышеперечисленных программ, а куда публиковать свое творение – напрямую в Android и iOS, либо в браузеры – решать вам.
Обратите внимание! Создание игры без использования ПК стандартными методами невозможно. Большинство популярных программ ориентировано только на компьютеры.
Три 100% способа, чтобы заработать на своей игре
Первое – качественная и интересная игра. Как и в любом другом деле, для хороших продаж продукт должен заинтересовывать и отличаться своей изюминкой. Старайтесь избегать избитых сюжетов, тщательно продумывать каждую деталь приложения. Даже если игра небольшая и простая – сделайте ее максимально качественной и «дорогой».
Второе – не следует самому искать спонсоров. Если игра достойная, и вы хотите ее продать, для начала выставите продукт на специальные аукционы, типа gamebrokage. К сожалению, шанс, что игрой новичка сразу заинтересуются, невелик, но попробовать стоит. Разумеется, первые проекты лучше создавать для более узкого круга людей, узнавать мнение друзей, близких и т. д.
Третье – собственная реклама. Если вы уже пустили свою игру на просторы Интернета, то для популярности необходима хорошая постоянная реклама. Можете создать свой портал игр, публиковать соответствующие записи в социальных сетях. Словом, делать все, чтобы ее заметили.
Ответы на популярные вопросы
Вопрос: Если моя игра находится в Google Play, ее можно обновлять?
Обновление на Google Play будет доступно только тогда, когда вы сами его выпустите, поскольку являетесь разработчиком приложения.
Вопрос: Какая средняя стоимость игры, выпущенной пользователем-самоучкой со средним уровнем программирования?
Здесь все зависит от конкретных факторов: размер игры, ее графика, продолжительность, качество. Если говорить о мировом рынке, то около 100 долларов.
Вопрос: Можно ли 2D игру перевести в 3D?
Да, с помощью специальных программ это вполне возможно, но процедура непростая.
Вопрос: Есть ли ограничения по времени для использования бесплатной версии Constructor 2?
Нет, бесплатной версией можно пользоваться постоянно. Платная покупается по желанию.
Как видим, создание игры на Андроид с нуля – довольно легкий и интересный процесс, справиться с которым самому не составит проблем. За получением помощи можете смело писать в комментарии. Успехов!
Мобильные игры для Android – огромный рынок с потенциальной аудиторией более 2 миллиардов пользователей. Разработчики создали бесчисленное множество хитов, вроде Angry Birds, Nyan Cat и Pokemon Go, которые вдохновили миллионы людей начать собственные проекты.
Перспективы и направления
По данным Admob, 62% пользователей смартфонов устанавливают игру в течение первой недели после покупки устройства, однако лишь немногие мобильные игры могут окупить затраты на разработку. Создание приложений для Android имеет определенные особенности:
- только 3% игроков тратят деньги в мобильных приложениях;
- 80% продаж магазинов приложений составляют именно игры;
- в 2010 году объем рынка мобильных игр оценивался в 33 миллиарда долларов;
- в 2017 году выручка от мобильных игр превысила 50 миллиардов долларов, что составляет 43% всего мирового игрового рынка;
- женщины в возрасте от 35 до 44 лет являются основными потребителями мобильных игр;
- в 2015 году в США насчитывалось почти 165 миллионов игроков, использующих только мобильные устройства. Ожидается, что в 2021 году их количество увеличится до 213 миллионов
Для успешного запуска игры стоит изучить потребности аудитории и основные жанры, а также выбрать платформу для разработки и составить план. Для начала разберемся с жанрами.
Популярные жанры
На рынке мобильных игр представлено множество жанров на любой вкус. Новые появляются каждый день – невозможно перечислить каждую нишевую категорию, поэтому выделим самые популярные.
MOBA
Multiplayer Battle Arenas представляет собой смесь стратегии в реальном времени и экшена. Игроку предоставляется контроль над одним персонажем, известным как «чемпион» или «герой», которого можно выбрать из большого списка. Нужно собрать команду и разрушить базу противников, защищая собственную.
Arena of Valor, Vainglory и Mobile Legends входят в тройку лучших MOBA для телефонов и планшетов. В 2017 году в Arena of Valor было 200 миллионов уникальных игроков, а ежедневное среднее их количество игроков достигло 80 миллионов, что сделало игру самой популярной в мире.
Battle Royale
Battle Royale сочетает выживание с разведкой, собирая большое количество игроков с минимальным снаряжением для поиска оружия и устранения противников. Цель игры – стать последним выжившим. Идея частично вдохновлена японским фильмом ужасов «Королевская битва» 2000 года. Игрок соперничает с конкурентами, пытаясь оставаться в безопасной зоне, которая со временем сужается. Победителем становится последний выживший.
В наши дни крупные стримеры на Twitch транслируют одну или несколько игр Battle Royale, что является причиной массового притока новичков в возрасте преимущественно от 8 до 14 лет. Обычно приложения Battle Royale бесплатны и монетизируются за счет продажи внутриигровых предметов как и MOBA.
MMORPG
Многопользовательские ролевые онлайн-игры – это онлайн-RPG, в которой игроки повышают уровень персонажей и приобретают новые способности. При этом сотни аккаунтов одновременно взаимодействуют друг с другом в одном мире и в режиме реального времени.
Мобильные MMORPG – упрощенные версии ПК-аналогов, здесь игроки не хотят тратить часы и месяцы на изучение механики. Некоторые мобильные MMORPG чрезвычайно популярны: например, Arcane Legends и Dungeon Hunter 5.
Головоломки
Более половины пользователей смартфонов и планшетов играют в головоломки. Candy Crush и Tetris популярны даже среди аудитории, которая не идентифицируют себя как геймеров. Логические игры сосредоточены на простых для понимания, но сложных в освоении механиках и требуют использования быстрого мышления.
Казуальные игры
Эта категория доминирует на рынке игр для мобильных устройств. Казуальные игры являются наиболее популярным жанром среди пользователей Android. Их можно легко начать и отложить в любой момент, что позволяет использовать потенциально короткие периоды игры.
Выбор движка
Как только у вас появится идея игры, стоит определиться с инструментами разработки. Можно написать приложение с нуля на Java или Kotlin в Android Studio или использовать веб-интерфейс из стандартного стека HTML5, JavaScript и CSS. В качестве примера такого подхода приведем пошаговое создание легендарной игры Bejeweled на jQuery. Для более масштабных проектов стоит присмотреться к специальным движкам.
Unity
Unity – интуитивно понятный движок с широким набором функций для разработки кроссплатформенных мобильных игр. Он поддерживает импорт из 3dsMax, Maya, Softimage, CINEMA 4D, Blender.
Хотя Unity интегрируется со всеми основными 3D-приложениями, внутренние его возможности для редактирования имеют множество ограничений. За исключением некоторых примитивных форм, все должно быть создано с помощью сторонней программы. С новой 64-битной архитектурой и поддержкой WebGL, Unity 5 считается сильным решением. Это одна из наиболее часто используемых платформ, так что вы легко найдете в сети множество учебных пособий и руководств.
Unreal
Unreal Engine 4 – последняя на данный момент версия движка UDK, выпущенного Epic Games. В нем есть возможности разработки игр для мобильных устройств, ПК и консолей. UE4 обеспечивает потрясающие графические возможности, вроде расширенного динамического освещения или одновременной обработки до миллиона частиц в сцене.
В новом движке Unreal Engine 4 много изменений по сравнению с предыдущими версиями. В качестве языка сценариев используется C++, который полностью заменил популярный некогда UnrealScript, а Kismet заменен более удобной системой Blueprint. Из-за этих перемен даже опытным дизайнерам игр придется пройти обучение, чтобы освоить обновленную версию.
Unreal поставляется с инструментами для использования технологий виртуальной и дополненной реальности для разработки мобильных игр. В «Библиотеке программиста» вы найдете подробный туториал по созданию первого объекта и освоению Unreal Engine 4.
Solar2D
Solar2D ранее был известен как Corona SDK – это кроссплатформенный инструмент разработки, использующий язык сценариев Lua. Corona Market Place содержит множество плагинов для игр 2D. Движок славится четкой документацией и активным сообществом, а одним из недостатков Solar2D является отсутствие инструментов 3D-моделирования.
Это далеко не полный список игровых движков, но одна из популярных платформ может стать вашим счастливым билетом в мир геймдева.
Основные этапы разработки
Чтобы создать мобильную игру под Android, нужно пройти определенные этапы. Предлагаем вашему вниманию пошаговый план для начинающих:
Идея и план
Идея – самый сложный и ответственный шаг к созданию успешной мобильной игры. Ключ к поиску идеи – придумать что-то новаторское и увлекательное. Идея должна понравиться массовой аудитории.
Распространенный прием – модифицировать существующую идею вместо того, чтобы придумывать новую с нуля. И побольше импровизировать.
Правильное планирование или его отсутствие могут обеспечить успех или провал проекта. Найдите время, чтобы записать идеи, придумать уникальных персонажей, поиграть с разными стилями и подумать о типе игрового процесса, который сделает вашу игру увлекательной. Раскрыть потенциал проекта поможет история: в игровом мире она имеет огромное значение. Чтобы пройти путь до конца, пользователю нужна цель, а для этого понадобится история, какой бы простой та ни была.
Выбор языка и инструментов
Вы можете выбрать любой движок и подход к разработке, в любом случае придется засесть за изучение языка программирования. Отличным началом может стать C#, Kotlin или Java.
Графика
Создание игрового дизайна намного сложнее создания дизайна обычного приложения. Приходится учитывать множество факторов: историю, персонажей и финальный внешний вид. В первую очередь именно дизайн отличает вашу игру от конкурентов, однако обсчет сложных деталей требует вычислительной мощности – нужно соблюдать баланс между хорошей графикой и производительностью, учитывая возможности мобильных устройств под Android. Далеко не у всех пользователей будут крутые флагманы.
Для создания деталей стоит овладеть основами Photoshop и/или GIMP для 2D, а также 3dsMax и/или Blender для 3D-моделей.
Работа в команде
Небольшие проекты можно делать в одиночку, но для реализации более амбициозных стоит обзавестись командой единомышленников. Вне зависимости от бюджета и сложности, выбор программистов, менеджеров и дизайнеров для совместной работы является важным фактором успеха.
Как грамотно организовать рабочие процессы в геймдев-команде, поможет разобраться этот материал.
Тестирование, запуск и монетизация
Перед запуском игры ее стоит всесторонне протестировать, но не стоит на этом зацикливаться. Многие начинающие разработчики чересчур усердно пытаются сделать программу идеальной, все время задерживая выпуск. Это серьезная ошибка – лучше быстрее выпустить релиз без критичных багов. Если игра понравится аудитории, ее можно будет улучшить.
Стоит подумать и о монетизации проекта. Существует несколько распространенных способов о ней позаботиться:
- Покупки в приложении. Модель Freemium – самый распространенный метод монетизации мобильных игр.
- Реклама. Во многих играх реклама сочетается с покупками в приложении. Эта стратегия может принести значительный доход.
- Премиум-версии. Можно предложить игрокам бесплатную демо-версию и попросить заплатить за дальнейшее использование.
Развитие проекта
Если ваша игра собрала значительную аудиторию, не стоит останавливаться на достигнутом. Обновления и улучшения позволят сделать ее лучше и привлечь большее количество довольных геймеров.
***
Стремительное развитие смартфонов за 10 лет изменило игровую индустрию кардинально. От простых карманных консолей Game Boy мобильные игры эволюционировали до многопользовательских платформ со сложной механикой и интересной визуальной составляющей. Это не должно вас пугать: даже простые проекты в стиле платформеров и казуальных игр могут найти свою аудиторию благодаря доступности и простому управлению.
Если вы только собираетесь в геймдев или уже успели столкнуться с трудностями, обратите внимание на список главных ошибок, мешающих разрабатывать игры.
Время на прочтение
10 мин
Количество просмотров 139K
Этот туториал предназначен в первую очередь для новичков в разработке под андроид, но может быть будет полезен и более опытным разработчикам. Тут рассказано как создать простейшую 2D игру на анроиде без использования каких-либо игровых движков. Для этого я использовал Android Studio, но можно использовать любую другую соответствующее настроенную среду разработки.
Шаг 1. Придумываем идею игры
Для примера возьмём довольно простую идею:
Внизу экрана — космический корабль. Он может двигаться влево и вправо по нажатию соответствующих кнопок. Сверху вертикально вниз движутся астероиды. Они появляются по всей ширине экрана и двигаются с разной скоростью. Корабль должен уворачиваться от метеоритов как можно дольше. Если метеорит попадает в него — игра окончена.
Шаг 2. Создаём проект
В Android Studio в верхнем меню выбираем File → New → New Project.
Тут вводим название приложения, домен и путь. Нажимаем Next.
Тут можно ввести версию андроид. Также можно выбрать андроид часы и телевизор. Но я не уверен что наше приложение на всём этом будет работать. Так что лучше введите всё как на скриншоте. Нажимаем Next.
Тут обязательно выбираем Empty Activity. И жмём Next.
Тут оставляем всё как есть и жмём Finish. Итак проект создан. Переходим ко третьему шагу.
Шаг 3. Добавляем картинки
Скачиваем архив с картинками и распаковываем его.
Находим папку drawable и копируем туда картинки.
Позже они нам понадобятся.
Шаг 4. Создаём layout
Находим activity_main.xml, открываем вкладку Text и вставляем туда это:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.spaceavoider.spaceavoider.MainActivity">
<LinearLayout
android:id="@+id/gameLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_weight="100"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/leftButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="50"
android:text="Left" />
<Button
android:id="@+id/rightButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="50"
android:text="Right" />
</LinearLayout>
</LinearLayout>
На вкладке Design видно как наш layout будет выглядеть.
Сверху поле в котором будет сама игра, а снизу кнопки управления Left и Right. Про layout можно написать отдельную статью, и не одну. Я не буду на этом подробно останавливаться. Про это можно почитать тут.
Шаг 5. Редактируем MainActivity класс
В первую очередь в определение класса добавляем implements View.OnTouchListener. Определение класса теперь будет таким:
public class MainActivity extends AppCompatActivity implements View.OnTouchListener {
Добавим в класс нужные нам статические переменные (переменные класса):
public static boolean isLeftPressed = false; // нажата левая кнопка
public static boolean isRightPressed = false; // нажата правая кнопка
В процедуру protected void onCreate(Bundle savedInstanceState) {
добавляем строки:
GameView gameView = new GameView(this); // создаём gameView
LinearLayout gameLayout = (LinearLayout) findViewById(R.id.gameLayout); // находим gameLayout
gameLayout.addView(gameView); // и добавляем в него gameView
Button leftButton = (Button) findViewById(R.id.leftButton); // находим кнопки
Button rightButton = (Button) findViewById(R.id.rightButton);
leftButton.setOnTouchListener(this); // и добавляем этот класс как слушателя (при нажатии сработает onTouch)
rightButton.setOnTouchListener(this);
Классы LinearLayout, Button и т.д. подсвечены красным потому что ещё не добавлены в Import.
Чтобы добавить в Import и убрать красную подсветку нужно для каждого нажать Alt+Enter.
GameView будет подсвечено красным потому-что этого класса ещё нет. Мы создадим его позже.
Теперь добавляем процедуру:
public boolean onTouch(View button, MotionEvent motion) {
switch(button.getId()) { // определяем какая кнопка
case R.id.leftButton:
switch (motion.getAction()) { // определяем нажата или отпущена
case MotionEvent.ACTION_DOWN:
isLeftPressed = true;
break;
case MotionEvent.ACTION_UP:
isLeftPressed = false;
break;
}
break;
case R.id.rightButton:
switch (motion.getAction()) { // определяем нажата или отпущена
case MotionEvent.ACTION_DOWN:
isRightPressed = true;
break;
case MotionEvent.ACTION_UP:
isRightPressed = false;
break;
}
break;
}
return true;
}
Если кто-то запутался ― вот так в результате должен выглядеть MainActivity класс:
package com.spaceavoider.spaceavoider;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
public class MainActivity extends AppCompatActivity implements View.OnTouchListener {
public static boolean isLeftPressed = false; // нажата левая кнопка
public static boolean isRightPressed = false; // нажата правая кнопка
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GameView gameView = new GameView(this); // создаём gameView
LinearLayout gameLayout = (LinearLayout) findViewById(R.id.gameLayout); // находим gameLayout
gameLayout.addView(gameView); // и добавляем в него gameView
Button leftButton = (Button) findViewById(R.id.leftButton); // находим кнопки
Button rightButton = (Button) findViewById(R.id.rightButton);
leftButton.setOnTouchListener(this); // и добавляем этот класс как слушателя (при нажатии сработает onTouch)
rightButton.setOnTouchListener(this);
}
public boolean onTouch(View button, MotionEvent motion) {
switch(button.getId()) { // определяем какая кнопка
case R.id.leftButton:
switch (motion.getAction()) { // определяем нажата или отпущена
case MotionEvent.ACTION_DOWN:
isLeftPressed = true;
break;
case MotionEvent.ACTION_UP:
isLeftPressed = false;
break;
}
break;
case R.id.rightButton:
switch (motion.getAction()) { // определяем нажата или отпущена
case MotionEvent.ACTION_DOWN:
isRightPressed = true;
break;
case MotionEvent.ACTION_UP:
isRightPressed = false;
break;
}
break;
}
return true;
}
}
Итак, класс MainActivity готов! В нём инициирован ещё не созданный класс GameView. И когда нажата левая кнопка — статическая переменная isLeftPressed = true, а когда правая — isRightPressed = true. Это в общем то и всё что он делает.
Для начала сделаем чтобы на экране отображался космический корабль, и чтобы он двигался по нажатию управляющих кнопок. Астероиды оставим на потом.
Шаг 6. Создаём класс GameView
Теперь наконец-то создадим тот самый недостающий класс GameView. Итак приступим. В определение класса добавим extends SurfaceView implements Runnable. Мобильные устройства имею разные разрешения экрана. Это может быть старенький маленький телефон с разрешением 480×800, или большой планшет 1800×2560. Для того чтобы игра выглядела на всех устройствах одинаково я поделил экран на 20 частей по горизонтали и 28 по вертикали. Полученную единицу измерения я назвал юнит. Можно выбрать и другие числа. Главное чтобы отношение между ними примерно сохранялось, иначе изображение будет вытянутым или сжатым.
public static int maxX = 20; // размер по горизонтали
public static int maxY = 28; // размер по вертикали
public static float unitW = 0; // пикселей в юните по горизонтали
public static float unitH = 0; // пикселей в юните по вертикали
unitW и unitW мы вычислим позже. Также нам понадобятся и другие переменные:
private boolean firstTime = true;
private boolean gameRunning = true;
private Ship ship;
private Thread gameThread = null;
private Paint paint;
private Canvas canvas;
private SurfaceHolder surfaceHolder;
Конструктор будет таким:
public GameView(Context context) {
super(context);
//инициализируем обьекты для рисования
surfaceHolder = getHolder();
paint = new Paint();
// инициализируем поток
gameThread = new Thread(this);
gameThread.start();
}
Метод run() будет содержать бесконечный цикл. В начале цикла выполняется метод update()
который будет вычислять новые координаты корабля. Потом метод draw() рисует корабль на экране. И в конце метод control() сделает паузу на 17 миллисекунд. Через 17 миллисекунд run() запустится снова. И так до пока переменная gameRunning == true. Вот эти методы:
@Override
public void run() {
while (gameRunning) {
update();
draw();
control();
}
}
private void update() {
if(!firstTime) {
ship.update();
}
}
private void draw() {
if (surfaceHolder.getSurface().isValid()) { //проверяем валидный ли surface
if(firstTime){ // инициализация при первом запуске
firstTime = false;
unitW = surfaceHolder.getSurfaceFrame().width()/maxX; // вычисляем число пикселей в юните
unitH = surfaceHolder.getSurfaceFrame().height()/maxY;
ship = new Ship(getContext()); // добавляем корабль
}
canvas = surfaceHolder.lockCanvas(); // закрываем canvas
canvas.drawColor(Color.BLACK); // заполняем фон чёрным
ship.drow(paint, canvas); // рисуем корабль
surfaceHolder.unlockCanvasAndPost(canvas); // открываем canvas
}
}
private void control() { // пауза на 17 миллисекунд
try {
gameThread.sleep(17);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
Обратите внимание на инициализацию при первом запуске. Там мы вычисляем количество пикселей в юните и добавляем корабль. Корабль мы ещё не создали. Но прежде мы создадим его родительский класс.
Шаг 7. Создаём класс SpaceBody
Он будет родительским для класса Ship (космический корабль) и Asteroid (астероид). В нём будут содержаться все переменные и методы общие для этих двух классов. Добавляем переменные:
protected float x; // координаты
protected float y;
protected float size; // размер
protected float speed; // скорость
protected int bitmapId; // id картинки
protected Bitmap bitmap; // картинка
и методы
void init(Context context) { // сжимаем картинку до нужных размеров
Bitmap cBitmap = BitmapFactory.decodeResource(context.getResources(), bitmapId);
bitmap = Bitmap.createScaledBitmap(
cBitmap, (int)(size * GameView.unitW), (int)(size * GameView.unitH), false);
cBitmap.recycle();
}
void update(){ // тут будут вычисляться новые координаты
}
void drow(Paint paint, Canvas canvas){ // рисуем картинку
canvas.drawBitmap(bitmap, x*GameView.unitW, y*GameView.unitH, paint);
}
Шаг 8. Создаём класс Ship
Теперь создадим класс Ship (космический корабль). Он наследует класс SpaceBody поэтому в определение класа добавим extends SpaceBody.
Напишем конструктор:
public Ship(Context context) {
bitmapId = R.drawable.ship; // определяем начальные параметры
size = 5;
x=7;
y=GameView.maxY - size - 1;
speed = (float) 0.2;
init(context); // инициализируем корабль
}
и переопределим метод update()
@Override
public void update() { // перемещаем корабль в зависимости от нажатой кнопки
if(MainActivity.isLeftPressed && x >= 0){
x -= speed;
}
if(MainActivity.isRightPressed && x <= GameView.maxX - 5){
x += speed;
}
}
На этом космический корабль готов! Всё компилируем и запускаем. На экране должен появиться космический корабль. При нажатии на кнопки он должен двигаться вправо и влево. Теперь добавляем сыплющиеся сверху астероиды. При столкновении с кораблём игра заканчивается.
Шаг 9. Создаём класс Asteroid
Добавим класс Asteroid (астероид). Он тоже наследует класс SpaceBody поэтому в определение класса добавим extends SpaceBody.
Добавим нужные нам переменные:
private int radius = 2; // радиус
private float minSpeed = (float) 0.1; // минимальная скорость
private float maxSpeed = (float) 0.5; // максимальная скорость
Астероид должен появляться в случайной точке вверху экрана и лететь вниз с случайной скоростью. Для этого x и speed задаются при помощи генератора случайных чисел в его конструкторе.
public Asteroid(Context context) {
Random random = new Random();
bitmapId = R.drawable.asteroid;
y=0;
x = random.nextInt(GameView.maxX) - radius;
size = radius*2;
speed = minSpeed + (maxSpeed - minSpeed) * random.nextFloat();
init(context);
}
Астероид должен двигаться с определённой скорость вертикально вниз. Поэтому в методе update() прибавляем к координате x скорость.
@Override
public void update() {
y += speed;
}
Так же нам нужен будет метод определяющий столкнулся ли астероид с кораблём.
public boolean isCollision(float shipX, float shipY, float shipSize) {
return !(((x+size) < shipX)||(x > (shipX+shipSize))||((y+size) < shipY)||(y > (shipY+shipSize)));
}
Рассмотрим его поподробнее. Для простоты считаем корабль и астероид квадратами. Тут я пошёл от противного. То есть определяю когда квадраты НЕ пересекаются.
((x+size) < shipX) — корабль слева от астероида.
(x > (shipX+shipSize)) — корабль справа от астероида.
((y+size) < shipY) — корабль сверху астероида.
(y > (shipY+shipSize)) — корабль снизу астероида.
Между этими четырьмя выражениями стоит || (или). То есть если хоть одно выражение правдиво (а это значит что квадраты НЕ пересекаются) — результирующие тоже правдиво.
Всё это выражение я инвертирую знаком!. В результате метод возвращает true когда квадраты пересекаются. Что нам и надо.
Про определение пересечения более сложных фигур можно почитать тут.
Шаг 10. Добавляем астероиды в GameView
В GameView добавляем переменные:
private ArrayList<Asteroid> asteroids = new ArrayList<>(); // тут будут харанится астероиды
private final int ASTEROID_INTERVAL = 50; // время через которое появляются астероиды (в итерациях)
private int currentTime = 0;
также добавляем 2 метода:
private void checkCollision(){ // перебираем все астероиды и проверяем не касается ли один из них корабля
for (Asteroid asteroid : asteroids) {
if(asteroid.isCollision(ship.x, ship.y, ship.size)){
// игрок проиграл
gameRunning = false; // останавливаем игру
// TODO добавить анимацию взрыва
}
}
}
private void checkIfNewAsteroid(){ // каждые 50 итераций добавляем новый астероид
if(currentTime >= ASTEROID_INTERVAL){
Asteroid asteroid = new Asteroid(getContext());
asteroids.add(asteroid);
currentTime = 0;
}else{
currentTime ++;
}
}
И в методе run() добавляем вызовы этих методов перед вызовоом control().
@Override
public void run() {
while (gameRunning) {
update();
draw();
checkCollision();
checkIfNewAsteroid();
control();
}
}
Далее в методе update() добавляем цикл который перебирает все астероиды и вызывает у них метод update().
private void update() {
if(!firstTime) {
ship.update();
for (Asteroid asteroid : asteroids) {
asteroid.update();
}
}
}
Такой же цикл добавляем и в метод draw().
private void draw() {
if (surfaceHolder.getSurface().isValid()) { //проверяем валидный ли surface
if(firstTime){ // инициализация при первом запуске
firstTime = false;
unitW = surfaceHolder.getSurfaceFrame().width()/maxX; // вычисляем число пикселей в юните
unitH = surfaceHolder.getSurfaceFrame().height()/maxY;
ship = new Ship(getContext()); // добавляем корабль
}
canvas = surfaceHolder.lockCanvas(); // закрываем canvas
canvas.drawColor(Color.BLACK); // заполняем фон чёрным
ship.drow(paint, canvas); // рисуем корабль
for(Asteroid asteroid: asteroids){ // рисуем астероиды
asteroid.drow(paint, canvas);
}
surfaceHolder.unlockCanvasAndPost(canvas); // открываем canvas
}
}
Вот и всё! Простейшая 2D игра готова. Компилируем, запускаем и смотрим что получилось!
Если кто-то запутался или что-то не работает можно скачать исходник.
Игра, конечно, примитивна. Но её можно усовершенствовать, добавив новые функции. В первую очередь следует реализовать удаление вылетевших за пределы экрана астероидов. Можно сделать чтобы корабль мог стрелять в астероиды, чтобы игра постепенно ускорялась, добавить таймер, таблицу рекордов и прочее. Если это будет вам интересно — напишу продолжение, где всё это опишу.
На этом всё. Пишите отзывы, вопросы, интересующие вас темы для продолжения.
Как создать игру на Андроид с нуля, без программирования. В наше время очень сложно найти человека, который не играл в мобильные игры, вспомните хотя бы классическую «Змейку». Но приходила ли вам в голову мысль создать свою игру, в которой будут ваши собственные герои, придуманные только вами?
Для того, чтобы начать создание даже самой простейшей мобильной игры, нужно обладать определенными навыками. Что же именно требуется?
- Вам необходимо продумать сценарий, возможно даже написать его, показать знакомым или семье. Ведь смысл начинать создание, если еще нет сюжета?
- Сразу хочу отметить, что создание игры без навыков программирования довольно длительный, сложный и нудный процесс. Хотя, при знании последнего ничего особо не изменится, процесс веселее не станет. Наберитесь терпения!
- И наконец-то, потребуется программное обеспечение, а точнее конструктор игр, возможно даже не один. Какой именно выбрать, я расскажу ниже.
Что такое конструктор и как его правильно выбрать?
Это программа, которая создана для облегчения жизни пользователям. Но есть у нее и еще одно предназначение — конструктор должен предоставить возможность создания приложений не только людям, обладающими определенными навыками в программировании, но и тем, кто понятия не имеет что это такое. То есть с помощью конструктора, любой желающий сможет создать свою собственную игру.
Как правильно выбрать конструктор? Как ни странно, но начинать его выбор нужно ориентируясь в первую очередь на свои знания – от навыков программирования до уровня владения английским языком. Если первый пункт у вас нулевой, то рекомендую выбрать программы для новичков, они проще в использовании. Второй критерий выбора – требуемый функционал. Здесь-то нам и потребуется наш точно составленный сценарий, его нужно еще раз прочитать «от корки до корки» и понять насколько сложной будет будущая игра. Чем сложнее проект, тем больше всяких «примочек» нужно будет использовать, а значит и конструктор должен быть мощнее и профессиональнее.
Ниже я приведу несколько примеров самых распространённых конструкторов, которые советуют профессионалы новичкам.
Construct 2
Данное приложение уже много лет подряд заслуженно входит в ТОП списока программ-конструкторов, ведь оно дает возможность создания игр практический на все возможные платформы и во всех жанрах. Интерфейс Construct максимально прост, но русификации пока нет. Набор инструментов достаточный для создания любой двухмерной игры. Еще одним плюсом является то, что необязательно покупать лицензию программы, вы вполне можете обойтись функционалом, который предложен в бесплатной версии.
Скачать: Construct 2
Видео уроки по Construct 2
Stencyl
Этот конструктор также разработан для новичков, которые не разбираются в программировании. Он отлично подойдёт для создания несложных двумерных игр и предоставит возможность запустить проект с достойным графическим интерфейсом.
К тому же, если вы все-таки владеете хоть какими-то знаниями в области программирования, то Stencyl предоставит вам возможность вписать в блоки свой собственный код. Набор инструментов позволит создавать игры практически любого жанра, однако функционал больше настроен на создание «шутеров».
Программа бесплатно, но если вы захотите конвертировать свое творение в форматы, которые «понимает» персональный компьютер, то придется покупать лицензионную подписку, и это, несомненно, минус, ведь подписка эта не из дешевых, она стоит почти 100 долларов в год. Ну, а если вы видите себя в будущем профессиональным создателем мобильных игр, то готовьтесь отдавать по 200 долларов в год, именно столько обойдется программа с возможностью сохранения проекта в формате мобильных операционных систем.
Скачать: Stencyl
Видео уроки по Stencyl
Unity 3D
Я думаю, что очень многие слышали это название и видели эту эмблему на экранах своих мобильных устройств. Все дело в том, что компания, которая выпускает программное обеспечение для создания игр, также занимается и выпуском приложений собственной разработки.
Unity 3D является самым мощным конструктором для создания 3D приложений. Уровень, на который вы сможете вывести свой проект достойный (взгляните только на скриншот выше). Это не обработанное изображение, а реальный снимок экрана еще не законченной игры! Согласитесь, как для мобильной игры это очень высокий уровень.
Но такой результат потребует уже и определенных навыков. Хоть программа и позиционируется как приложение для новичков, но она скорее больше рассчитана на любителей и профессионалов, ведь для работы с ней потребуются базовые знания программирования и 3D-моделирования. Ну и конечно же, в Unity вы сможете создать проект любой сложности и любого жанра, набор инструментов просто огромен.
Скачать: Unity 3D
Видео уроки по Unity 3D
Как же пользоваться конструкторами?
Определенной инструкции для создания игры нет. Все зависит от выбранного вами жанра, ваших навыков и, конечно же, от программы, с помощью которой, вы собираетесь все это делать. В связи с этим, я рекомендую вам в качестве стартового проекта попробовать сделать что-то, что уже делалось более опытными людьми, YouTube в помощь. Это поможет вам освоиться в среде разработки игр, понять принцип работы основных инструментов и возможно изменить сценарий вашей разработки.
Когда вы сделаете «пробный» проект и точно определитесь со своим, выберете программу, то ищите в интернете видеоролики именно о конструкторе, который вы будете использовать.
Не бойтесь экспериментировать, ищите информацию в Интернете и пробуйте. Только так вы будете учиться и развиваться. Удачи в создании своего шедевра.
[РЕШЕНО] Как создать игру на Андроид с нуля самому — 3 программы
Содержание
- 1 [РЕШЕНО] Как создать игру на Андроид с нуля самому — 3 программы
- 1.1 Уровень сложности создания Android-игр
- 1.2 Какую игру лучше всего создать
- 1.3 Как создать игру на Андроид с нуля без навыков программирования
- 1.3.1 Construct 2 — простая платформа для 2D приложений
- 1.3.2 Unity 3D — мощный движок для разработки 3D проектов
- 1.3.3 Game Maker — самый легкий вариант для новичка
- 1.4 Этапы создания игр
- 1.4.1 Делаем простую игру
- 1.4.2 Делаем карточную игру
- 1.4.3 Создаем РПГ-игру
- 1.4.4 Как создать онлайн-игру для Андроид
- 1.5 Три 100% способа, чтобы заработать на своей игре
- 1.6 Ответы на ваши главные 4 вопроса о создании игр на Андроид
- 2 Как создать игру на Андроид с нуля — осваиваем азы гейм девелопмента
- 2.1 Что необходимо знать
- 2.1.1 Что такое Конструктор игр
- 2.1.2 Как выбрать нужный конструктор
- 2.2 Топ 5 лучших конструкторов игр
- 2.2.1 Construct 2
- 2.2.2 Clickteam Fusion
- 2.2.3 Stencyl
- 2.2.4 Game Maker
- 2.2.5 Unity 3D
- 2.1 Что необходимо знать
- 3 Как создать игру на Андроид: с нуля на Unity 3D и других движках
- 3.1 Графическое оформление
- 3.1.1 Объектные модели
- 3.1.2 Функциональные спецификации
- 3.1.3 Игровой контент
- 3.1.4 Интерфейс
- 3.2 Игровой движок
- 3.3 UDK
- 3.4 Torque 2d/3d
- 3.5 Что такое конструктор игр?
- 3.5.1 Construct 2
- 3.5.2 Clickteam fusion
- 3.5.3 Stencyl
- 3.5.4 Game Maker Studio
- 3.5.5 Unity 3d
- 3.6 Заключение
- 3.7 Видео
- 3.1 Графическое оформление
- 4 Создание игры на Android
- 4.1 Разработка идеи
Давно мечтаете сделать свое приложение, имеете интересные идеи, хотите заработать на создании качественной игры? Безусловно, практически каждый пользователь загорался таким желанием, но часто останавливают сомнения, страхи и неуверенность. Ведь как создать игру на Андроид с нуля самому, если навыки программирования слабо развиты, владение английским языком оставляет желать лучшего, а никаких специализированных программ под рукой нет? Попытаемся разобраться.
Уровень сложности создания Android-игр
Да, огромные приложения с 3D-графикой делаются популярными и богатыми компаниями, где работают настоящие титаны с превосходными навыками. Но не всегда такие игрушки добиваются популярности, тогда как даже простое и элементарное приложение, разработанное новичком, имеет все шансы завоевать любовь миллионов пользователей со всего мира.
Что же необходимо знать и уметь человеку, решившему внести свое изобретение в игровую сферу? Для начала, это иметь хотя бы минимальные знания в языке программирования, которые с легкостью можно получить на курсах информатики или с помощью специальных учебников. Оптимальный вариант – язык Java. В виде альтернативы вполне можно представить программные коды, способные заменить конкретные действия в игре, но тогда вы должны хорошо владеть английским языком.
Также развеем заблуждение о том, что для создания приложения необходимо полностью знать Photoshop, иметь дизайнерский вкус и отлично рисовать. Но не стоит путать, например, новое приложение для общения с полноценной игрой. Если вы решили создать первое – там главное только текст и клавиши управления, но если настоящую игру – без художественных элементов не обойтись. И фишка в чем: эти элементы находятся в конструкторе. То есть, собственноручно рисовать вам придется очень редко.
Плавно переходим к конструкторам, поскольку они являются базой всей игры и только с помощью них новичок может создать свое творение. Выбор таких специальных программ огромен, о чем поговорим ниже.
Теперь подводим небольшие итоги. Если вы решили создать свою игру, то для этого требуется:
- Идея, образное представление, о чем будет игра, знание ее основного сюжета;
- Минимальное владение языком Java, ведь полностью без программирования (без нужных знаний) не обойтись;
- Установленная на компьютере программа для создания продукта;
- Свободное время, внимательность и желание трудиться.
Какую игру лучше всего создать
Четких ограничений нет, выбор в конструкторах обычно предоставляется обширный: квест, карточная игра, догонялки, стрелялки, экшн. Обилием жанров больше всего славится приложение Construct 2.
Еще вас могут заинтересовать карточные игры, где не требуется высокая графика, четкая прорисовка и множество действий. Все шаги, в том числе тасовка карт и раздача, отличаются от других жанров однотипностью. Обычно у таких игр и самый простой интерфейс, состоящий из обычного меню.
Самое сложное направление для создания, это, конечно, экшн-игры, где присутствует детальный проработанный мир, обычно сделанный в 3D-формате, несколько главных персонажей, длительный сюжет и множество уровней. На примере рассмотрим известное приложение Modern Combat. Конечно, для такой мощной игрушки требуются десятки специалистов, хорошие вложенные деньги и месяца работы. Но это не значит, что пользователь сам не сможет создать 3D-игру. Нужны только хорошие умения и навыки, поэтому этот жанр следует оставить на потом.
Как создать игру на Андроид с нуля без навыков программирования
Теперь рассмотрим основную часть создания игры, а именно конструкторы, представляющие собой обычные программы, которые можно с легкостью скачать на просторах Интернета.
Construct 2 — простая платформа для 2D приложений
Лучшее приложение в своем роде, которое занимает лидирующие позиции. Главное преимущество – это возможность создавать игры практически на все платформы, в том числе и на Android. Поддерживается и анимационный формат HTML5, с помощью которого созданные творения будут доступны для игры онлайн во всех браузерах, что немаловажно, ведь такие игрушки гораздо проще в функционировании.
Присутствует и качественное оформление игры: различные эффекты звука и графики, стандартные изображения для фона, без которого просто не обойтись. Есть также отличная возможность наполнить приложение своими индивидуальными и уникальными материалами.
Большая часть создания – это обыкновенное перетаскивание элементов и установка их взаимодействия. Например, персонаж цепляется за камень, и уровень заканчивается; одна часть фона представляет собой траву, другая, верхняя – небо, играет нейтральная музыка и характерные звуки. Вот и все, можно считать, самая простая и элементарная игра практически создана.
К сожалению, существует и минус: в бесплатной версии можно экспортировать творения в браузеры, а оттуда открывать их на совершенно любой платформе, но бесплатно создать игру только для Андроид не получится. Для этого придется вкладывать деньги в платную версию, стоимость которой немного превышает 100 долларов. Зато потом возможности намного расширяются, игры без проблем можно делать чисто на Андроид или iOS, а с помощью установочных файлов открывать приложения на персональном компьютере.
Видео-инструкция как сделать игру на Андроид с помощью Construct 2 и Construct 3
Unity 3D — мощный движок для разработки 3D проектов
Если предыдущая программа позволяла создавать только 2D-игры, то Unity 3D уже выходит на новый уровень и предоставляет разработчикам все условия для создания отличного трехмерного проекта. Программа оснащена различными готовыми моделями, изображениями, скриптами и текстурами на любой вкус. Компиляция имеет высокую скорость, редактор, несмотря на свою многофункциональность, очень прост в использовании.
Единственное требование – это достаточно мощный компьютер, поддерживающий 3D-форматы и навык программирования среднего уровня, поскольку новичкам будет все же немного трудно разобраться.
Видео-инструкция по созданию игры с помощью Unity 3D за 45 минут
Game Maker — самый легкий вариант для новичка
Наиболее легкая программа из всех существующих, идеальная для неопытных и неуверенных в своих знаниях пользователей. Именно здесь можно обойтись и без программирования, и без языка Java.
Нельзя сказать, что таким способом игра будет делаться с нуля, и вы полностью создали свое приложение, но основное представление о разработке игр вы все же получите, что позволит переходить на новые уровни программирования и совершенствования уже имеющихся умений.
Видео-мануал по программе Game Maker
Этапы создания игр
Делаем простую игру
Под простой игрой подразумевается самый незамысловатый сюжет. На примере рассмотрим такую идею: человечку необходимо преодолеть препятствия, чтобы благополучно добраться до финиша. К тому же, по дороге желательно собирать монетки. Согласитесь, воспроизвести такую картинку с помощью Construct 2 довольно просто и интересно. Рассмотрим приблизительные ориентировочные действия:
- Создаем фон любого цвета, в нашем случае для натуральности лучше выбрать зеленый;
- Делаем главного персонажа, им может выступать и животное, и человечек;
- Проектируем монетки и расставляем их по всему фону; аналогичное проделываем и с препятствиями (изображение камней, дров – лучший вариант);
- Теперь определяем взаимодействие персонажа с окружающей средой. Споткнулся о камень – игра окончена, поймал монетку – она продолжается, добежал до края фона – финиш.
Делаем карточную игру
Для такого жанра лучше всего использовать программу Unity 3D. Здесь же рассмотрим направления и шаги:
- Делаем основной фон для карт;
- Проектируем сами карты, то есть, инвентарь;
- Задаем взаимодействия;
- Определяем количество игроков;
- Переводим меню игры из 3D в 2D;
- Определяем конец игры.
Создаем РПГ-игру
Отличной программой для такого жанра является программа RMXP или тот же Unity3D, выпущенная японской компанией. Для создания подобной игры нужно время и внимательность, но ни с чем сложным вы не столкнетесь.
- Придумываем основную идею будущей Андроид игры;
- Пишем основной сценарий;
- Рисуем базовую карту и добавляем объекты;
- Создаем события.
Как создать онлайн-игру для Андроид
Отдельной схемы для создания именно онлайн игры не существует. Приложение данного типа делается с помощью вышеперечисленных программ, а куда публиковать свое творение – напрямую в Android и iOS, либо в браузеры – решать вам.
Три 100% способа, чтобы заработать на своей игре
Первое – качественная и интересная игра. Как и в любом другом деле, для хороших продаж продукт должен заинтересовывать и отличаться своей изюминкой. Старайтесь избегать избитых сюжетов, тщательно продумывать каждую деталь приложения. Даже если игра небольшая и простая – сделайте ее максимально качественной и «дорогой».
Второе – не следует самому искать спонсоров. Если игра достойная, и вы хотите ее продать, для начала выставите продукт на специальные аукционы, типа gamebrokage. К сожалению, шанс, что игрой новичка сразу заинтересуются, невелик, но попробовать стоит. Разумеется, первые проекты лучше создавать для более узкого круга людей, узнавать мнение друзей, близких и т. д.
Третье – собственная реклама. Если вы уже пустили свою игру на просторы Интернета, то для популярности необходима хорошая постоянная реклама. Можете создать свой портал игр, публиковать соответствующие записи в социальных сетях. Словом, делать все, чтобы ее заметили.
Ответы на ваши главные 4 вопроса о создании игр на Андроид
Если моя игра находится в Google Play, ее можно обновлять? Обновление на Google Play будет доступно только тогда, когда вы сами его выпустите, поскольку являетесь разработчиком приложения. Какая средняя стоимость игры, выпущенной пользователем-самоучкой со средним уровнем программирования? Здесь все зависит от конкретных факторов: размер игры, ее графика, продолжительность, качество. Если говорить о мировом рынке, то около 100 долларов. Можно ли 2D игру перевести в 3D?Да, с помощью специальных программ это вполне возможно, но процедура непростая. Есть ли ограничения по времени для использования бесплатной версии Constructor 2? Нет, бесплатной версией можно пользоваться постоянно. Платная покупается по желанию.
Как видим, создание игры на Андроид с нуля – довольно легкий и интересный процесс, справиться с которым самому не составит проблем. За получением помощи можете смело писать в комментарии. Успехов!
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
gurudroid.net
Как создать игру на Андроид с нуля — осваиваем азы гейм девелопмента
Вряд ли найдётся человек, который хотя бы раз в жизни не играл хоть в одну компьютерную игру, неважно, на ноутбуке или мобильном устройстве. Ну а кто из вас, дорогой читатель нашего блога, не мечтал создать свою игру и, уж если не стать миллионером благодаря своему проекту, то прославиться как минимум среди своих друзей?
Но как создать игру на Андроид с нуля, не обладая специальными знаниями и не зная даже основ программирования? Оказывается, попробовать себя в роли разработчика игр не такая сложная задача. Это и будет темой нашего сегодняшнего материала.
Что необходимо знать
Итак, что же нужно, чтобы стать автором уникального шедевра:
- Идея или сценарий.
- Желание и терпение.
- Конструктор игр.
И если с первыми двумя составляющими успеха более-менее всё понятно, то на третьей составляющей нужно остановиться подробнее.
Что такое Конструктор игр
Речь идёт о программе, существенно упрощающей разработку игр, делая её доступной для людей, не обладающих навыками программирования. В конструкторе игр объединены интегрированная среда разработки, игровой движок и редактор уровней, который работает как визуальный редактор (WYSIWYG – англ. аббревиатура «что видишь, то и получишь»).
Некоторые конструкторы могут ограничиваться жанром (к примеру, RPG, аркады, квесты). Другие, предоставляя возможность конструировать игры разных жанров, в то же время ограничивают фантазию начинающего разработчика 2D-играми.
Даже прочитав только уже написанное, становится понятно, что для новичка-разработчика, решившего написать игру для любой операционной системы, в том числе и OS Android, выбор подходящего конструктора – основная задача, ведь именно от функциональности и возможностей этого инструмента зависит судьба будущего проекта.
Как выбрать нужный конструктор
Начинать нужно с оценки собственного уровня знаний в области программирования. Если он стремится к нулю или отсутствует вовсе, то лучше попробовать наиболее простые варианты. И даже если вы не обладаете необходимыми знаниями английского языка, то и в этом случае можно найти программу, которая вам подойдёт.
И второй важный момент при выборе конструктора – функционал. Здесь нужно очень точно проанализировать сценарий своего проекта, потому что, чем сложнее будет игра, тем больше для её создания понадобится разнообразных инструментов, соответственно, и конструктор понадобится более мощный.
Чтобы помочь с выбором, ниже мы представим вашему вниманию лучшие программы-конструкторы, что, в общем-то, не исключает того, что вы, основательно покопавшись на форумах или специализированных сайтах, подберёте для себя что-то другое, благо ассортимент этого спектра программ довольно широк.
Топ 5 лучших конструкторов игр
Construct 2
Это приложение неизменно занимает первые строчки в рейтингах конструкторов игр. С помощью Construct 2 можно создавать двухмерные игры практически любых жанров для различных платформ, в том числе и для Андроид, а также анимационные игры, ориентированные на браузеры, поддерживающие HTML5.
С учётом огромного количества вспомогательных инструментов, программу вполне смогут осилить даже начинающие юзеры.
Для освоения работы с Construct 2 нет необходимости покупать лицензию, в бесплатной Free-версии предложен вполне достаточный инструментарий и возможность экспорта готового проекта на некоторые платформы. Однако, кодирование готового продукта на мобильные платформы и доступ к полному объёму функционала даст за 129 долларов Personal-лицензия. Если же ваше мастерство в создании игр достигло апогея, и вы уже стали получать доход от своего проекта более 5 тыс.долл., придётся раскошелиться на Business-вариант, который обойдётся в 429 долл.
А теперь, посмотрите несколько практических видеоуроков по созданию игровых приложений с помощью Construct 2:
Скачать на ПК с официального сайта разработчика (Scirra)
Clickteam Fusion
Clickteam Fusion – ещё один образчик отличного полноценного игрового конструктора, помогающего даже новичку создать полноценную игру. Программа предоставляет возможность экспортировать созданные приложения совершенно бесплатно в формат HTML5, а это значит, что будет возможность публиковать браузерные игры и кроме того, конвертировать их для публикации в различных мобильных маркетах, например, Google play.
Из основных характеристик можно отметить простоту интерфейса, поддержку шейдерных эффектов и аппаратного ускорения, наличие полноценного редактора событий, сохранение проектов в форматы, совместимые с различными платформами, включая Android.
Платная Developer-версия программы недоступна для жителей РФ, но её лицензионный диск можно будет заказать с того же Amazon, облегчив личный бюджет в среднем на 100 долларов. Возможна русификация меню через сторонний русификатор.
Как работать с приложением, смотрим специальный видео курс:
Скачать на ПК с официального сайта разработчика (Clickteam)
Stencyl
Stencyl – ещё один отличный инструмент, позволяющий осуществлять разработку простых компьютерных 2D-игр без специальных знаний кодов, а также языков программирования для всех популярных платформ. Здесь предстоит работа со сценариями и схемами, которые представлены в виде блоков, а перетаскивать объекты или характеристики можно мышкой, что очень удобно.
Разработчик программы так же предлагает возможность прописать в блоках и свой код, но для этого конечно понадобятся знания в области программирования.
Наличие отличного графического редактора Scene Designer даёт возможность пользователю применить свою фантазию для рисования игровых миров.
Оптимальный набор функций поможет создать качественные игры разных жанров, но наиболее тайловая (плиточная) графика Stencyl будет актуальна для «стрелялок» или «бродилок».
Программа распространяется на бесплатной основе, но экспорт в десктопные форматы требует подписки, которая будет стоить 99$ на год, а лицензия для мобильных игр — 199 долл. В год.
Смотрим ускоренный курс по работе со Stencyl:
Game Maker
Программа существует в платной и бесплатной версии. Бюджетный вариант позволяет создавать добротные двухмерные игры под десктоп. В то время, как платная версия даёт возможность написать довольно «навороченные» 3D-игрушки для Виндовс, iOS и Андроид. Нас же пока интересует бесплатная возможность научиться реализовывать себя в игровой индустрии, а Game Maker – тот самый вариант, который позволит создавать игры с собственным сценарием без ограничений в выборе жанра.
Программа предлагает выбор готовых шаблонов локаций, объектов, а также, персонажей, звуков и фонов. Так что, вся творческая работа сводится к перетаскиванию в рабочую зону выбранные элементы и выбору условий – местонахождение и взаимодействие с другими объектами. Хоть знание языка программирования и не понадобится, но пользователи, которые «в теме» смогут использовать GML, чем-то схожим с JS и C++.
Game Maker распространяется на английском языке, поэтому тем, кто не владеет им в достаточной мере, понадобится скачать файл русификатора.
Кого заинтересовала эта программа, предлагаем посмотреть обучающее видео:
*Примечание: На видео представлена только первая часть обучающего курса, чтобы посмотреть вторую, жмём здесь, третья здесь и заключительная, четвёртая часть.
Unity 3D
Unity 3D – пожалуй, лучшее, что можно предложить, для создания качественного трёхмерного проекта. В программу интегрированы полностью готовые модели, а также текстуры и скрипты. Кроме того, есть возможность добавлять и собственный контент – звук, изображения и видеозаписи.
Игры, созданные с помощью Unity совместимы со всеми востребованными платформами от мобильных устройств на iOS или Android до SMART TV телевизионных приёмников.
Программа отличается высокой скоростью компиляции, простым в работе интерфейсом, гибким и многофункциональным редактором.
Все игровые действия и поведение персонажей базируются на добротном физическом ядре PhysX. Каждый объект, созданный в этом игровом конструкторе, представляет собой определённое сочетание событий и скриптов, управляющимися разработчиком самостоятельно.
Важно понять, что хоть программа и позиционируется, как конструктор игр, рассчитанный на новичков, определённый уровень знаний для работы с этим приложением всё-таки понадобится. Ну и работа с 3D-графикой предполагает наличие достаточно современного компьютера, оснащённого аппаратной видеокартой.
Серия занятий по созданию игр с помощью Unity 3D:
Итак, вы решили реализовать свою мечту создать свою, уникальную игру. Мы постарались дать информацию, которая может в этом помочь. Обратите внимание, если вы внимательно прочитали представленный материал, и, хотя бы бегло просмотрели видеоуроки по каждой программе, то, наверняка заметили, что работа с каждым игровым конструктором строится по одному принципу. Поэтому, вполне возможно, что вы сможете подобрать что-то, более подходящее именно под ваши запросы. Мы по крайней мере надеемся, что на данном этапе вопрос, как самому сделать игру на Андроид закрыт. Удачи!
grand-screen.com
Как создать игру на Андроид: с нуля на Unity 3D и других движках
Разработка мобильных приложений является одним из самых прибыльных занятий в компьютерной индустрии. Создание игры на Android обходится в несколько сотен или тысяч долларов, а прибыль может достигать и миллиона долларов. В связи с этим множество людей интересуется разработкой приложений на телефон. В этой статье вы узнаете о том, как создать игру на андроид с нуля через компьютер, какой движок и конструктор лучше выбрать.
Графическое оформление
Ни одна успешная игра не обходится без красивой графики, поэтому создание дизайна – один из важнейших этапов разработки. Дизайн на ОС Android реализовывается с помощью «дизайн-документа» или диздока. Начать создание игрушки нужно именно с его детальной проработки. В файле содержится:
- Объектные модели;
- Функциональные спецификации;
- Игровой контент;
- Интерфейс.
Рассмотрим каждый из пунктов более подробно.
Объектные модели
Это информация о функционале каждого предмета. Объектные модели отвечают за возможность покупки и продажи предметов, а также за улучшение игровых характеристик персонажей.
Функциональные спецификации
Здесь описывается геймплей, основные возможности каждого персонажа. Также здесь дается описание особенностей игровых предметов – оружия, аптечек, брони и других. По сути, функциональные спецификации – это правила, по которым происходит игровой процесс. Чем лучше будет проработан данный раздел, тем легче будет создать качественную Андроид-игру.
Игровой контент
Это текстовая начинка игры. Здесь описываются диалоги персонажей и то, из какого оружия можно наносить урон, сколько здоровья будет отнимать попадание, какие характеристики будут увеличиваться при использовании различного снаряжения. Также здесь содержится подробное описание каждого предмета.
Интерфейс
Интерфейс – это то, как пользователь будет взаимодействовать с игрой. Он включает в себя кнопки, с помощью которых можно управлять персонажем, и разделы меню: например, играть, счет, настройки, топ игроков, справка. Если вы не имеете опыта в создании приложений на Андроид, перед созданием собственного скачайте с Плей Маркета и проанализируйте популярные игры и перенесите лучшие решения в свой проект.
Игровой движок
Основой любой игры является движок. Это программное обеспечение, позволяющее разрабатывать и запускать ее. Он содержит целый комплекс программ, включающий движок рендеринга, физический движок, звук, анимацию и многое другое. Чтобы облегчить процесс написания программ, сторонние разработчики создают собственные игровые движки специально для Андроид-приложений.
Каждый из них предлагает различные функции: некоторые разработаны для 3D, другие для 2D, может поддерживаться мультиплатформенность. Таких движков есть огромное количество, но, если вы новичок, лучше выбрать один из самых популярных, так как там будут присутствовать все необходимые функции.
UDK
Unreal Development Kit – один из самых мощных движков для создания приложений на ОС Андроид. Для описания программной логики здесь используется скриптовый язык UnrealScrip. На сайте разработчика находится множество уроков, где описываются основные функции, возможности и процесс создания приложений.
Torque 2d/3d
Движок обладает всеми необходимыми редакторами и средствами отладки. Разрабатывая Torque, программисты уделили большое внимание удобству интерфейса и сделали утилиты очень простыми. На сайте разработчика можно скачать несколько исходников с готовыми играми, которые покажут, как использовать движок наиболее рационально.
Что такое конструктор игр?
Конструктор – это программа, объединяющая в себе игровой движок и интегрированную среду разработки. Конструктор делает процесс разработки доступным для людей, которые не обладают навыками программирования. Некоторые из конструкторов позволяют создавать игры определенных жанров, другие обладают максимальным функционалом, но стоят значительно больших денег. Для начинающего создателя мобильных приложений, выбор конструктора – один из самых ответственных моментов, ведь именно от его возможностей будет зависеть судьба будущего приложения.
Construct 2
Это один из самых известных конструкторов, который позволяет создавать игры на различных платформах. В программе есть множество различных инструментов и утилит, но она окажется очень легкой в освоении за счет простого интерфейса. Здесь можно создать любую 2D-игру: головоломку, бродилку карточную, квесты и другие. Для создания приложений не нужно приобретать лицензионный ключ, поскольку есть Free-версия, которая является урезанной редакцией с возможностью создания приложений для нескольких платформ. Чтобы открыть полный доступ ко всем возможностям, придется заплатить 129 $.
Clickteam fusion
Этот конструктор используется для создания приложений в формате 2D. Программа очень проста в освоении, работать с ней можно без знания программирования. Полная версия Clickteam fusion позволяет создавать не только экспериментальные, но и полноценные сюжетные игры на компьютер или телефон. Если вы новичок, рекомендуем начинать именно с этого конструктора: здесь можно научиться основам и понять логику создания игрушек.
Stencyl
Этот конструктор преимущественно используется для разработки бродилок и стрелялок. Одно из главных достоинств – простой редактор уровней, позволяющий поворачивать, заливать и осуществлять другие манипуляции с объектами и картой в режиме реального времени. Чтобы разработать игру на Андроид самому, пользователю придется заплатить 99 евро, так как бесплатная версия программы позволяет создавать только пиксельные и браузерные игры.
Game Maker Studio
Конструктор позволяет создавать игры различных жанров для Windows, Android и iOS. Предлагает большой выбор готовых локаций, объектов, персонажей и звуковых оформлений, поэтому создание первой Андроид-игры не займет много времени. Пользователи, знакомые с языками программирования JS и C++, могут использовать встроенный GML. Единственный недостаток заключается в том, что программа не переведена на русский язык.
Unity 3d
Через Unity 3d можно создавать игры любого жанра на платформы Windows, Android, iOS, Blackberry, Wii, Playstation и Xbox. Широкое распространение Unity3d обрел среди создателей онлайн игр. Данный конструктор имеет игровой движок, полностью использующий возможности DirectX и OpenGL, редакторы 3D моделей, различные программы для настройки шейдеров, ландшафтов, звуков. Единственный недостаток заключается в том, что здесь нужно писать программный код, поэтому Unity3d не подойдет для пользователей без навыков программирования.
Заключение
Создание игры на Андроид – не совсем простое, но очень прибыльное дело. Если вы решили разработать игру и зарабатывать на ней, сначала проработайте идею. Далее напишите «дизайн-документ» и определитесь с игровым движком, который сможет максимально раскрыть ее потенциал. После этого можно приступать непосредственно к созданию приложения в конструкторе.
Видео
Чтобы детальнее ознакомиться с процессом создания Андроид-игр, ознакомьтесь с серией видеороликов, посвященных этому занятию.
os-helper.ru
Создание игры на Android
Разработка мобильных приложений – это один из самых доходных сегментов в компьютерной индустрии. Создание приложения обходится в несколько сотен или тысяч долларов, но прибыль может достигать миллионов. В связи с этим, многие интересуются, как создать игру на телефон или планшет Андроид. Это вам вполне по силам (при должных знаниях и стремлении). Вам достаточно разработать концепцию, изучить язык программирования, поставить среду разработки, а потом приступить к созданию.
Разработка идеи
В первую очередь, необходимо выяснить, что вы собираетесь создавать. Если это какое-то приложение, то следует определиться с аудиторией, какие возможности оно будет предоставлять пользователю. Это может быть информационное приложение или программа, предоставляющая такие дополнительные функции, как видео или аудио проигрыватель.
Полезным шагом будет изучение потенциальных конкурентов. Просмотрите магазин приложений Google Play, при этом найдите похожие игры. Постарайтесь понять, почему эта игра пользуется такой популярностью, а что в ней можно улучшить. На основе этих наблюдений
Программы для создания игр на Android — скачать движки для разработки игр
Создание игр для мобильных устройств может быть не только интересным, но и весьма прибыльным занятием, которое способно обеспечить весьма ощутимый заработок для разработчика. У человека, интересующегося темой создания игр на Android в голове возникает множество вопросов и еще больше — сомнений в своих силах, ведь, для разработки игр нужны определенные знания, навыки и умения: в первую очередь, нужно знать языки программирования.
Из-за своих опасений и сомнений, люди чаще всего отказываются от реализации своих идей, а зря, ведь создание игр на Android не обязательно должно быть сложным. В современном мире множество процессов автоматизируется, чтобы облегчить жизнь человеку. Для примера, этот сайт создан с помощью системы управления содержимым, а если проще – то с помощью программы-конструктора. И для его запуска в работу не потребовались знания HTML, CSS, JS и PHP.
Для разработки игр также есть специализированные движки, которые помогут упростить множество задач. И в этой статье мы рассмотрим лучшие программы для создания игр на Android.
Уровень сложности создания Android-игр
Самое главное – это вполне реальная возможность создать свою игру самому, не тратя на нее тысячи долларов и обходясь без помощи опытных дизайнеров и программистов.
Да, огромные приложения с 3D-графикой делаются популярными и богатыми компаниями, где работают настоящие титаны с превосходными навыками. Но не всегда такие игрушки добиваются популярности, тогда как даже простое и элементарное приложение, разработанное новичком, имеет все шансы завоевать любовь миллионов пользователей со всего мира.
Что же необходимо знать и уметь человеку, решившему внести свое изобретение в игровую сферу? Для начала, это иметь хотя бы минимальные знания в языке программирования, которые с легкостью можно получить на курсах информатики или с помощью специальных учебников. Оптимальный вариант – язык Java. В виде альтернативы вполне можно представить программные коды, способные заменить конкретные действия в игре, но тогда вы должны хорошо владеть английским языком.
Также развеем заблуждение о том, что для создания приложения необходимо полностью знать Photoshop, иметь дизайнерский вкус и отлично рисовать. Но не стоит путать, например, новое приложение для общения с полноценной игрой. Если вы решили создать первое – там главное только текст и клавиши управления, но если настоящую игру – без художественных элементов не обойтись. И фишка в чем: эти элементы находятся в конструкторе. То есть, собственноручно рисовать вам придется очень редко.
Плавно переходим к конструкторам, поскольку они являются базой всей игры и только с помощью них новичок может создать свое творение. Выбор таких специальных программ огромен, о чем поговорим ниже.
Теперь подводим небольшие итоги. Если вы решили создать свою игру, то для этого требуется:
- Идея, образное представление, о чем будет игра, знание ее основного сюжета;
- Минимальное владение языком Java, ведь полностью без программирования (без нужных знаний) не обойтись;
- Установленная на компьютере программа для создания продукта;
- Свободное время, внимательность и желание трудиться.
Перспективы и направления
( 2 оценки, среднее 4.5 из 5 )
Наверняка любой пользователь смартфонов под управлением Андроид задумывался о создании…
Android Studio – официальная среда разработки приложений под ОС Андроид.…
Scratch — это удобное приложение, которое можно использовать для создания…
Каждому игроку под силу самому сделать простую игру! Популярные компьютерные…
Unity — отличный движок для создания многих прототипов: от игр…
Roblox Studio представляет собой инструмент для создания игр в мире…
Хотите делать компьютерные игры? Разработать игру для компьютеров и гаджетов под…
Практически каждому, кто начинает знакомиться с программированием, хочется написать свою…
В нынешнее время каждый может стать успешным разработчиком мобильных игр или приложений, не прилагая к этому титанических усилий. Примером такого случая является Донг Нгуен, разработавший Flappy Bird. В игре не было никакой сложной механики или графики, но это не помешало ей стать популярной и приносить своему создателю по пятьдесят тысяч долларов в день. Однако в игре не было ничего примечательного. Всё, что потребовалось для успеха, — оказаться в нужном месте в нужное время и немного удачи. Подобное может произойти и сегодня, вам просто нужна правильная идея.
Чтобы продемонстрировать, насколько легко написать что-то подобное, сегодня мы напишем свой Flappy Bird с помощью Unity всего за 10 минут.
Игровой персонаж
Сначала создайте новый проект и убедитесь, что выбрана опция 2D.
Загрузите свой спрайт птицы в сцену. Не забудьте включить фантазию!
Затем отрегулируйте размер спрайта как вам нравится, перетягивая его за угол в нужном направлении. Спрайт должен быть виден в окне иерархии (hierarchy
) слева. В нём видны все объекты в сцене, и на данный момент их должно быть всего два: камера и птица.
Перетащите камеру на птицу и отпустите. Камера должна оказаться под птицей, это будет значить, что камера теперь «ребёнок» птицы. Теперь позиция камеры будет фиксироваться относительно птицы. Если птица двигается вперёд, то камера делает то же самое.
Снова выберите птицу в сцене или в окне иерархии. Вы увидите список опций и атрибутов справа в окне под названием Inspector
. Здесь вы можете управлять различными переменными, привязанными к определённому объекту.
Теперь нажмите на Add Component
. Выберите Physics2D > Rigidbody2D
— это готовый набор инструкций для применения гравитации к нашему персонажу. Нажмите на Constraints
в этой панели и затем выберите freeze rotation Z
. Это позволит предотвратить вращение птицы вместе с камерой по кругу.
Таким же образом добавьте Polygon Collider
, который говорит Unity, где находятся границы персонажа. Нажмите Play
и увидите, как спрайт вместе с камерой бесконечно падает вниз.
Пока всё идёт хорошо!
Теперь пора заняться полётами персонажа, благо это будет несложно.
Сначала нужно создать C#-скрипт. Создайте для него папку (кликните правой кнопкой мыши где-нибудь в assets
и создайте папку «Scripts»), сделайте клик правой кнопкой мыши и выберите Create > C# Script
.
Назовём его «Character». Кликните по нему дважды, чтобы открыть его в вашей IDE, будь то MonoDevelop или Visual Studio. Затем добавьте следующий код:
public class Character : MonoBehaviour {
public Rigidbody2D rb;
public float moveSpeed;
public float flapHeight;
// Это нужно для инициализации
void Start () {
rb = GetComponent();
}
// Update вызывается один раз на кадр
void Update () {
rb.velocity = new Vector2(moveSpeed, rb.velocity.y);
if (Input.GetMouseButtonDown(0))
{
rb.velocity = new Vector2(rb.velocity.x, flapHeight);
}
if (transform.position.y > 18 || transform.position.y < -19)
{
Death();
}
}
public void Death()
{
rb.velocity = Vector3.zero;
transform.position = new Vector2(0, 0);
}
}
Этот код делает две вещи. Он заставляет персонажа двигаться вперёд со скоростью, которую мы определим в инспекторе, и создаёт ощущение полёта птицы. Метод Update()
вызывается повторно на протяжении игры, поэтому всё, что вы сюда поместите, будет выполняться непрерывно. В данном случае мы добавляем немного скорости нашему объекту. Переменная rb
является скриптом RigidBody2D
, который мы применили к нашему объекту ранее, поэтому когда мы пишем rb.velocity
, мы обращаемся к скорости объекта.
Тап по экрану интерпретируется Unity как клик мыши, если вы используете мобильное устройство. После нажатия мы заставляем персонажа немного подняться вверх.
Переменная moveSpeed
будет отвечать за скорость движения, а переменная flapHeight
— за увеличение высоты полёта птицы после каждого нажатия. Поскольку эти переменные объявлены как public
, мы сможем изменить их вне скрипта.
Метод Death()
тоже объявлен как public
, что значит, что другие объекты и скрипты смогут его вызвать. Этот метод просто возвращает положение персонажа в начало. Также он будет использоваться каждый раз, когда персонаж будет залетать слишком высоко или низко. Скоро вы поймёте, почему он объявлен именно как public
. Строка rb.velocity = Vector3.zero;
нужна, чтобы убрать импульс — мы же не хотим, чтобы после каждой смерти персонаж падал всё быстрее и быстрее?
Теперь можно выходить из IDE и добавлять скрипт как компонент к персонажу. Для этого нужно выбрать нашу птицу и нажать Add Component > Scripts > Character
. Теперь мы можем определять moveSpeed
и flapHeight
в инспекторе (для этого и нужны public
-переменные). Присвоим переменным значения 3 и 5 соответственно.
И ещё: в инспекторе нужно добавить тег к персонажу. Для этого кликните там, где написано Tag: Untagged
и затем выберите Player
в выпадающем списке.
Препятствия
Теперь добавим препятствия: трубы. Кто-то в трубах находит грибы, а кто-то — свою смерть.
Перетащите спрайт трубы в сцену в место, где должно быть первое препятствие, и назовите его pipe_up
.
Теперь создадим новый скрипт под названием Pipe
:
public class Pipe : MonoBehaviour {
private Character character;
// Это нужно для инициализации
void Start () {
character = FindObjectOfType();
}
// Update вызывается один раз на кадр
void Update () {
if (character.transform.position.x - transform.position.x > 30)
{
}
}
void OnCollisionEnter2D(Collision2D other)
{
if (other.gameObject.tag == "Player")
{
character.Death();
}
}
}
Добавьте этот скрипт к спрайту трубы тем же образом, что и раньше. Таким образом, труба будет возвращаться на экран после выхода за его левую границу. Мы тут ещё ничего не сделали, но ещё вернёмся к этому.
Метод OnCollisionEnter2D()
вызывается каждый раз при взаимодействии трубы с персонажем. После этого вызывается созданный ранее метод Death()
, возвращающий игрока в начальную точку.
Итак, у нас есть одна труба, которая время от времени будет исчезать и появляться на другом конце экрана. Врежешься в неё — умрёшь.
Перевёрнутые трубы
Сейчас у нас есть только один спрайт трубы. Давайте добавим ещё один. Для этого кликните правой кнопкой мыши в окне иерархии, нажмите New 2D Object > Sprite
и затем выберите спрайт, который хотите использовать. Ещё проще будет просто перетащить файл в сцену ещё раз.
Назовите этот спрайт pipe_down
. В инспекторе в части Sprite Renderer выберите опцию Flip Y
, чтобы перевернуть трубу вверх ногами. Добавьте такое же RigidBody2D
.
Теперь напишем новый C#-скрипт под названием PipeD
. В нём будет похожий код:
public class PipeD : MonoBehaviour {
private Character character;
//Это нужно для инициализации
void Start()
{
character = FindObjectOfType();
}
// Update вызывается один раз на кадр
void Update()
{
if (character.transform.position.x - transform.position.x > 30)
{
}
}
void OnCollisionEnter2D(Collision2D other)
{
if (other.gameObject.tag == "Player")
{
character.Death();
}
}
}
Префабы
Итак, нам достаточно этого кода, чтобы сделать всю игру. Мы могли бы передвигать трубы на правую сторону экрана каждый раз, когда они исчезают, или скопировать и вставить столько труб, сколько мы хотели бы встретить на протяжении всей игры.
Если пойти первым путём, то убедиться, что трубы стоят как надо после случайной генерации, и поддерживать честный ход вещей было бы сложно. После смерти персонажа они могли бы появиться в километрах от первой трубы!
Если пойти вторым путём, то всё закончится излишним потреблением памяти, с вытекающим из этого замедлением игры, и ограниченной реиграбельностью, т.к. всё стоит на одних и тех же местах каждый раз.
Вместо этого давайте воспользуемся префабами. Если говорить просто, то мы превратим наши трубы в шаблоны, которые потом сможем использовать для эффективного создания большего количества труб по желанию. Если тут есть программисты, то считайте скрипт Pipe
классом, а трубы — экземплярами этого объекта.
Для этого создайте новую папку «Prefabs». Затем перетащите pipe_up
и pipe_down
из окна иерархии в папку.
Каждый раз, когда вы перетаскиваете объект из этой папки в сцену, у него будут те же свойства, поэтому вам не нужно будет постоянно добавлять компоненты. Более того, если вы измените размер компонента в папке, это повлияет на все трубы в игре, и вам не придётся изменять каждую из них отдельно.
Как вы понимаете, это сильно сэкономит наши ресурсы. Также это означает, что мы можем взаимодействовать с объектами из кода. Мы можем создавать экземпляры наших труб.
Сначала добавьте этот код в условное выражение в методе Update()
скрипта Pipe
, которое мы оставили пустым:
void Update () {
if (character.transform.position.x - transform.position.x > 30)
{
float xRan = Random.Range(0, 10);
float yRan = Random.Range(-5, 5);
Instantiate(gameObject, new Vector2(character.transform.position.x + 15 + xRan, -10 + yRan), transform.rotation);
Destroy(gameObject);
}
}
Это нужно для создания экземпляра нашего gameObject
. В результате получается новая идентичная копия. В Unity всегда, когда вы используете слово gameObject
, оно ссылается на объект, к которому скрипт в данный момент привязан — в нашем случае к трубе.
Мы генерируем заново наши трубы в случайных вариациях, чтобы было повеселее.
Но вместо того, чтобы проделывать всё то же в скрипте PipeD
, мы генерируем оба объекта в одном месте. Таким образом мы можем легко устанавливать положение второй трубы относительно первой. Также это значит, что нам нужно меньше кода для PipeD
.
Создайте public gameObject
с именем pipeDown
. Затем обновите код следующим образом:
if (character.transform.position.x - transform.position.x > 30)
{
float xRan = Random.Range(0, 10);
float yRan = Random.Range(-5, 5);
float gapRan = Random.Range(0, 3);
Instantiate(gameObject, new Vector2(character.transform.position.x + 15 + xRan, -11 + yRan), transform.rotation);
Instantiate(pipeDown, new Vector2(character.transform.position.x + 15 + xRan, 12 + gapRan + yRan), transform.rotation);
Destroy(gameObject);
}
Мы добавили переменную gapRan
, которая позволяет слегка менять расстояние между трубами, чтобы было интереснее играть.
Возвращаемся обратно в Unity и перетаскиваем префаб pipe_down
из папки с префабами (это важно!) в место, где написано «Pipe Down» (заметьте, как наш camel case заменяется пробелом) на спрайт трубы pipe up
. Если вы помните, мы определили Pipe Down
как public gameObject
, что даёт нам возможность определять, чем является этот объект откуда угодно – в данном случае через инспектор. Выбирая префаб для этого объекта, мы убеждаемся, что при создании экземпляра трубы он будет включать в себя все атрибуты и скрипт, которые мы добавили ранее. Мы не просто создаём спрайт, но пересоздаём объект с коллайдером, который может убить персонажа.
Всё, что мы добавим в то же место в скрипте PipeD
— просто Destroy(gameObject)
, чтобы труба саморазрушалась при выходе за левую границу экрана.
Если вы сейчас запустите игру, то экран будет продвигаться дальше автоматически, и вы умрёте, если столкнётесь с любой из труб. Пролетите достаточно далеко, и эти трубы исчезнут и появятся снова впереди.
К сожалению, между трубами большое расстояние, и экран выглядит пустым. Мы могли бы исправить это, добавив несколько префабов в нашу сцену, чтобы создать конвейер постоянно появляющихся труб. Однако было бы лучше генерировать трубы в скрипте. Это важно, так как в противном случае после смерти персонажа трубы в начале пути уничтожатся, и снова образуется пустое пространство.
Таким образом, мы можем создавать несколько первых труб во время каждой загрузки игры и возвращать всё на свои места после смерти персонажа.
Бесконечный полёт
Теперь создадим public
-переменные pipe_up
и pipe_down
в скрипте Character
. Это даст вам возможность ссылаться на созданные объекты, перетаскивая префабы на объект персонажа, прямо как когда мы добавили pipe_down
в скрипт Pipe
.
Нам нужно добавить эти переменные:
public GameObject pipe_up;
public GameObject pipe_down;
Затем мы напишем такой метод:
public void BuildLevel()
{
Instantiate(pipe_down, new Vector3(14, 12), transform.rotation);
Instantiate(pipe_up, new Vector3(14, -11), transform.rotation);
Instantiate(pipe_down, new Vector3(26, 14), transform.rotation);
Instantiate(pipe_up, new Vector3(26, -10), transform.rotation);
Instantiate(pipe_down, new Vector3(38, 10), transform.rotation);
Instantiate(pipe_up, new Vector3(38, -14), transform.rotation);
Instantiate(pipe_down, new Vector3(50, 16), transform.rotation);
Instantiate(pipe_up, new Vector3(50, -8), transform.rotation);
Instantiate(pipe_down, new Vector3(61, 11), transform.rotation);
Instantiate(pipe_up, new Vector3(61, -13), transform.rotation);
}
Мы будем вызывать его один раз в методе Update()
и один раз в методе Death()
.
После начала игры вызывается Update()
, и наши трубы ставятся согласно заданной конфигурации. За счёт этого первые несколько препятствий всегда будут стоять на одном и том же месте. После смерти игрока трубы встанут на те же самые места.
Вернитесь в сцену в Unity и удалите две трубы, которые сейчас там находятся. Ваша «игра» будет выглядеть просто как пустой экран с птицей. Нажмите Play и трубы появятся, после нескольких первых их положение будет определяться случайным образом.
В заключение
Вот мы и сделали целую игру! Добавьте счётчик очков, попробуйте сделать его более оригинальным и увеличивайте сложность игры по мере продвижения. Также не будет лишним сделать меню. Ещё хорошей идеей будет уничтожать трубы на экране после смерти персонажа. Как только вы с этим закончите — считайте, что готовая к выпуску в Play Store игра у вас в кармане! Когда-то похожая игра сделала другого разработчика очень богатым, и это доказывает, что вам не нужно быть гением-программистом или иметь за своей спиной богатого издателя, чтобы достичь успеха. Вам просто нужна хорошая идея и десять минут!
Хотите писать приложения под Android, но не знаете, с чего начать? Тогда ознакомьтесь с нашей большой подборкой ресурсов для изучения Android-разработки.
Перевод статьи «Flappy Bird Unity tutorial for Android – Full game in 10 minutes!»
Многим любителям игр придётся по душе идея создать игру на андроид своими руками, не обращаясь к профессиональным разработчикам, и не расставаясь с определённой суммой. В статье разберем 2 варианта — это использование конструкторов и с применением программирования.
Эту задумку довольно просто сегодня осуществить при помощи специальных программ-конструкторов. Используя возможности такого приложения можно обойтись при создании игры не только без навыков программирования, но и даже без особого умения пользоваться Photoshop.
Дело в том, что эти конструкторы оснащены такими функциями, которые выполняют работу и программиста, и дизайнера. Разве что иногда требуется немного подрисовать какой-нибудь незначительный элемент.
Большинство из таких приложений в виде конструкторов не сложные в управлении, их очень много – есть из чего выбирать.
Однако неплохо иметь представление о том, что потребуется для воплощения в жизнь идеи сотворения игры, а именно, понадобится вот что:
- Уметь чётко представлять в виде образов сюжетную линию будущей игры.
- Хотя бы на начальном уровне владеть языком Java, минимальные знания о сути программирования всё же пригодятся.
- Наличие на домашнем компьютере нужного приложения.
Какой вариант игры выбрать для создания?
Эти конструкторы способны на многое: можно попробовать сначала что-нибудь попроще сделать, к примеру, карточную игру, потом создать квест, можно и стрелялки и бродилки и т.д. Наиболее широкими возможностями отличается программа Construct 2.
Неплохим стартом в этом деле будет попытка сделать платформер. Создать недлинный маршрут для соревнования с противником, добавив несложные единоборства с элементами рукопашного боя – такой вариант вполне подойдёт для начальной игры.
Простые карточные игры тоже очень неплохое начало для создателя игр с нулевыми навыками в этом деле. Такие игры с незамысловатым интерфейсом не отличаются какими-то специальными эффектами.
Потруднее придётся с созданием игр типа экшн, где достаточно щепетильная детализация с усложнённым применением трёхмерного пространства, с наличием разнообразных персонажей, закрученный сюжет и не один уровень.
Далее расскажу о специальных программах-конструкторах, кратко опишу возможности каждой из них. Все эти приложения несложно найти в интернете.
Construct 2 – игровой движок для двухмерных программ
Это приложение считается самым распространённым. Поддержка почти любой операционной системы, также и Android. Имеет поддержку эффектов HTML5, а это позволит использовать созданные игры для запуска в браузерах в режиме онлайн.
За начальную версию этой утилиты любому новичку не придётся ничего платить. Весь инструментарий данной программы автоматизирован – можно создавать что угодно без навыков использования командной строки и каких-то дизайнерских примочек.
Практически в наличии полный комплект элементов для автоматического сбора нужной игры: любые аудио эффекты, интересные графические придумки, можно будет выбрать готовый вариант красивого фона. Кто пожелает, может добавить свои наработки в дополнение к имеющимся инструментам в программе по умолчанию.
Процесс в основном заключается в перемещении компонентов и отладка их совместной работы. К примеру, для завершения уровня надо чтобы главный герой мог прыгнуть со скалы в воду, или подобрать комбинированный фон, состоящий из леса и моря, вставить специальные музыкальные моменты, соответствующие ситуации плюс разные шумовые эффекты. Вот из таких приблизительно шагов может состоять создание несложной игры.
Но бесплатная версия имеет подводные камни – созданные в ней игры можно переносить в браузеры, чтобы запускать в какой угодно операционной системе, однако сделать отдельную игру чисто для Android, в этой версии программы не дозволено. Для такой цели надо будет раскошелиться на платную версию, а это обойдётся в сумму чуть более 100 долларов.
После оплаты можно будет делать игру и отдельно для Android и для IOS, с сохранением возможности установки и запуска всего созданного на домашнем компьютере.
Game Maker – самый простой игровой движок
Для начинающих это самый подходящий вариант из всех подобных конструкторов. Любой новичок, не имеющий никаких знаний в программировании на Java, может сразу приступать к созданию двухмерных игр практически каких угодно жанров. От конструирующего пользователя потребуется лишь умение претворить воображаемые детали в игровую реальность силами этого достаточно удобного приложения.
В этой утилите также приличный выбор персонажей, разных предметов, красивых мест, разнообразнейших эффектов. Всё это превращает конструирование игры в очень занятное времяпровождение, ничего кроме сборки элементов делать не надо.
Польза в приобретении начального опыта в этом деле очевидна, вполне возможно у кого-то возникнет желание приобрести более глубокие знания.
Популярное приложение Unreal Engine 4
Это также бесплатное предложение для желающих попробовать свои силы в двухмерных и трёхмерных игр. Широкие возможности программы позволят сделать игру для телефона, компьютера и планшета с поддержкой как Android, так и IOS, и даже для AAA-проектов для консолей.
Такие легендарные игры как Mortal Kombat, Arkham City, Mass Effect были сделаны при помощи предшествующей версии – Unreal Engine 3.
О движке Clickteam fusion
В этом конструкторе удивительным образом сочетаются мощные возможности и простота использования. Это позволит всем желающим, абсолютно без специальных знаний программирования, сконструировать свою первую 2D игру для ПК или для мобильного устройства, используя только богатый инструментарий программы.
Конструктор игр Stencyl
Очень гибкий движок, подходит как для новичков, так и для людей имеющих определённые представления как делается настоящая игра. На нём получаются отличные шутеры с элементами бродилок.
В отличие от других похожих приложений здесь можно вносить дополнительные элементы с какими-то нюансами прямо в запущенную игру. В бесплатном варианте приложения не выйдет собрать игру для Android, для осуществления такой возможности придётся расстаться с 99 евро.
Фреймворк Cocos 2D-X
Эта утилита также не потребует оплаты для того, чтобы приступить к сборке игр. Ею любят пользоваться для специального конструирования игр для разных мобильных устройств. Программу удобно использовать как отдельному человеку, так и группе людей, занятых разработкой.
Еще есть приложения:
- Draw Your Game -простое приложение, всего за несколько простых шагов можно сделать свою первую игру.
- Apper — с помощью этой программы можно набросать приложение за 5 шагов без знаний программирования.
- AIDE- IDE for Android Java C++ — прямо на телефоне можно разработать приложение.
- STRUCKD – 3D Конструктор Игр — для создания 3D мира, потом можно обмениваться результатом с другими людьми в сообществе. Разные жанры: от гонок до Tower Defense.
- Sketch Nation Create — платформа для разработки многопользовательских игр в режиме реального времени.
Принципы создания несложной игры
Простой игрой можно назвать ту, где нет в первую очередь какого-то навороченного сюжета. Например, вот такой вариант популярного вида игр, когда персонажу надо дойти до определённой финишной черты, обогащаясь по пути при помощи сбора каких-нибудь знаков в виде монет и при этом обходить возникающие преграды. Такую игрушку несложно будет сделать силами того же Construct 2. Вот как это приблизительно будет делаться:
- Выбирается подходящий фон, вполне подойдут для такого вида игры зеленоватые тона.
- Затем надо собрать основного героя этих приключений – можно в виде человека или любого животного.
- Добавить бонусные знаки – равномерно расположить их в интересных местах локации, то же самое сделать с преградами – разбросать на пути брёвна, установить холмы и прочее.
- Далее надо будет наладить контакт героя с остальными элементами. Определить, что будет происходить, если он столкнётся с преградой или когда схватит монету – в каком случае игра завершится, и при каких условиях продолжится.
Разработка игры пошагово на Unity 3D
Загрузить графический редактор Unity 3D для Android и установить на компьютер.
Вы должны получить программу обработчика видео Java JDK по ссылке: https://www.oracle.com/technetwork/java/javase/downloads/index.html
В окне загрузок выбираете «загрузить JDK». Вам не нужно загружать движок JRE, он более сложен в работе и рассчитан на профессионалов.
Далее необходим инструмент отладчика Android SDK, его можно найти по следующей ссылке: https://developer.android.com/sdk/index.html
Выбираете в таблице загрузку для вашей установленной операционной системы.
Желательно прочитать пошаговую инструкцию по установке приложения на этом сайте.
В конечном итоге, еще необходимо выполнить следующие установки:
- Драйвер для андроид устройства.
- Устройство связи с Андроид ADB.
- Запустить USB отладку.
Драйвер для андроид устройства необходим, когда вы разрабатываете свою игру на компьютере.
Добавляйте его через пункт «Other devices» в окне «Device manager».
Если драйвера были уже установлены с вашего андроид телефона их нужно обновить, следуя по пунктам:
Android phone>Android composite ADB interface>Properties>Driver>Update driver.
Устройство связи с Андроид ADB дает возможность перекинуть приложение с компьютера на ваш андроид девайс.
Проходим по пути C:Program Filesandroid-sdk-windowsplatform-tools помечаем галочками файлы: adb.exe, AdbWinApi.dll, AdbWinUsbApi.dll, копируем их и вставляем в папку C:Program Filesandroid-sdk-windowsplatform-tools
Открываем командную строку Windows.
Проходим по адресу:
Если установленная утилита отображается, как показано, тогда все сделано правильно.
Иначе повторите пункт обновления драйвера для андроид устройства и копирования файлов ADB.
Запускаем USB отладку.
Настройка происходит на вашем андроид девайсе, нажимаем на вкладки по очереди:
Setting>Applications>Development>USB Debugging
Теперь все готово для запуска графического редактора.
Пользовательское меню программы Unity 3D на английском языке.
Создаем новый проект.
Даем ему название в окошке с адресом. Импортируем тип расширения приложения, достаточно поставить галочку в приведенном списке. Для android телефонов — Standard assets (Mobile).unityPackage
Перед созданием новой анимации, требуется настроить программу.
Нужно в настройках «Build settings» выбрать в списке целевую платформу «Android», дальше отметить «Debug build», и кликнуть «Switch platform».
Нажав в этом же всплывающем окне «Player settings», в боковом меню «Inspector» отобразиться:
- ранее данное вами название проекта игры на андроид;
- установленное разрешение видео;
- ориентация экрана по умолчанию;
- возможность выбора иконки для игры;
Немного о структуре главного окна программы:
В центре экрана представлено видовое окно — рабочая область.
В верхнем меню вкладки:
- «Scene» – здесь моделируем анимацию будущей игры.
- «Game» — позволяет просмотреть в движении образец игры.
Вкладки в нижней части экрана: - «Hierarchy» — отображает все ваши действия с моделью в порядке иерархии по времени.
- «Project» — содержит готовые модели для анимации.
Боковое меню «Inspector» позволяет осуществить: контроль над перемещением создаваемого объекта; настройку вида с камеры.
Подпункт «Main camera» вкладки «Hierarchy» включает, в отельном окне, вид с камеры.
Недавно мы делали веб-игру про сбор пирамиды. Там мы использовали 3Д-движок и симуляцию физики. И в целом получилась залипательная веб-игра. Вот предыдущие этапы:
- Сделали трёхмерную браузерную игру, где нужно ставить блоки друг на друга и набрать как можно больше очков.
- Адаптировали игру под мобильные телефоны, чтобы тачскрин нормально обрабатывал все нажатия и жесты.
Ключевое слово — веб: игра работает только в браузере и только при наличии интернета. На этот раз мы превратим страницу с игрой в полноценное приложение для Android. При этом мы не будем пользоваться онлайн-конструкторами, а сделаем всё по-настоящему — в среде разработки и с кодом на Java.
Наш план таков:
- Подготовить файлы для упаковки в игру: скачать скрипты из интернета, перепривязать их к нашей игре на компьютере.
- Сделать новый проект в Android Studio.
- В проекте сделать WebView — это виртуальное окно браузера внутри приложения. В нём будет работать игра.
- Настроить WebView так, чтобы он поддерживал нашу игру и все нужные функции.
- Упаковать получившийся проект в виде приложения для Android.
Результат можно скачать сразу: вот приложение, которое получилось у нас таким нехитрым способом:
⭐️ Скачать apk
Подготовка
Главное, что нам понадобится из инструментов, — официальная среда разработки Android Studio. У нас есть про неё отдельная статья: что это такое, зачем нужно и как установить. Качаем с официального сайта и устанавливаем.
Так как наша игра должна работать без интернета, то это значит, что все ресурсы тоже должны быть доступны локально, прямо с телефона. В HTML-файле мы подключаем два внешних скрипта — их тоже нужно будет скачать:
<!-- подключаем Three.js -->
<script src='https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js'></script>
<!-- подключаем Cannon.js -->
<script src='https://cdnjs.cloudflare.com/ajax/libs/cannon.js/0.6.2/cannon.min.js'></script>
<!-- подключаем наш скрипт -->
<script src="./script.js"></script>
Для этого копируем адрес скрипта из кода страницы, вставляем в браузер и сохраняем то, что открылось, как js-файл.
Скрипты кладём в ту же папку, что и остальные файлы с игрой. Вот что должно по итогу у нас получиться с файлами:
После этого исправляем пути к скриптам в html-файле, чтобы они подтягивались из той же папки, а не из интернета:
<!-- подключаем Three.js -->
<script src='three.min.js'></script>
<!-- подключаем Cannon.js -->
<script src='cannon.min.js'></script>
<!-- подключаем наш скрипт -->
<script src="script.js"></script>
Сохраняем страницу и открываем её в браузере. Если мы всё сделали правильно, то «Пирамида» запустится как обычно — с красивой графикой и реакцией на нажатия.
Создаём новый проект в Android Studio
Запускаем Android Studio и выбираем Empty Activity:
После этого выбираем язык Java, а всё остальное оставляем без изменений:
Если это ваш первый запуск, программа начнёт качать разные служебные файлы — это нормально, нужно просто немного подождать.
Когда всё загрузится и запустится, перед нами появится окно с новой программой в Android Studio.
Добавляем файлы
Чтобы программа смогла загрузить в себя все файлы от игры, нам нужно создать в проекте специальную папку — assets — и скопировать в неё всё, что у нас есть. Для этого нужно пройти несколько неочевидных шагов:
- Создать папку внутри проекта в Android Studio.
- Найти папку на диске.
- Скопировать в папку все нужные файлы.
Создаём папку так: в левой верхней части щёлкаем правой кнопкой мыши по папке app и в появившемся меню выбираем New → Folder → Assets Folder:
Перед нами появится окно, которое спрашивает, к чему будет относиться папка. Ничего не меняем и просто нажимаем Finish:
Теперь щёлкаем правой кнопкой мыши на появившейся папке и выбираем Open in → Explorer:
Перед нами появится окно проводника с нашей папкой assets. Заходим в неё и копируем туда все игровые файлы, которые мы собрали в самом начале:
Смотрим в панель файлов Android Studio, чтобы убедиться, что всё получилось и система увидела наши файлы:
Пишем код
Нам было бы здорово видеть и дизайн, и код, поэтому выбираем слева в колонке файлов res → layouts → activity_main.xml и переключаем вид в режим Split в правом верхнем углу:
В этом же файле activity_main.xml есть блок, который начинается с команды <TextView — удаляем весь блок (название и 7 команд ниже) и вместо него пишем <WebView>. Среда разработки умная, поэтому, как только мы начнём писать код, она автоматически предложит нам создать новый блок. Нажимаем энтер, когда появится подсказка:
Вот команды, которые нужно добавить в этот файл:
<WebView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/webview"></WebView>
В итоге у нас должен получиться такой блок:
Нажимаем ⌘+S или Ctrl+S, чтобы всё сохранить .
Теперь переходим к другому файлу — MainActivity.java — и добавляем в него такой код:
setContentView(R.layout.activity_main);
WebView webView=findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("javascript:addLayer(x, z, width, depth, direction)");
webView.loadUrl("javascript:generateBox(x, y, z, width, depth, falls)");
webView.loadUrl("javascript:addOverhang(x, z, width, depth)");
webView.loadUrl("javascript:cutBox(topLayer, overlap, size, delta)");
webView.loadUrl("javascript:init()");
webView.loadUrl("javascript:startGame()");
webView.loadUrl("javascript:eventHandler()");
webView.loadUrl("javascript:splitBlockAndAddNextOneIfOverlaps()");
webView.loadUrl("javascript:missedTheSpot()");
webView.loadUrl("javascript:animation(time)");
webView.loadUrl("javascript:updatePhysics(timePassed)");
webView.loadUrl("javascript:window.addEventListener()");
webView.loadUrl("file:///android_asset/index.html");
Смысл тут в том, что мы сначала создаём новый элемент — просмотрщик веб-контента, потом разрешаем ему выполнять скрипты, а затем перечисляем все функции, которые у нас объявлены в основном скрипте вместе с параметрами вызова. Это нужно для того, чтобы Java знала, что это можно выполнять.
Нажимаем Shift+F10, чтобы запустить приложение в эмуляторе, — видим, что справа появился виртуальный телефон с началом нашей игры, но ничего не двигается. Это связано с тем, что встроенный эмулятор плохо работает с трёхмерной графикой и не может показать всё, что мы от него хотим. Главное, зачем нам это было нужно, — убедиться, что программа нашла все наши файлы, загрузила их и скрипт тоже заработал.
Компилируем приложение
Если нам нужен apk-файл, который можно установить на телефон, чтобы проверить игру по-настоящему, нам надо скомпилировать весь проект. Для этого выбираем в верхнем меню Build → Build Bundle(s) / APK(s) → Build APK(s):
Когда всё будет готово, внизу появится уведомление, что файл готов. Нажимаем на locate, чтобы перейти к файлу в проводнике:
Этот файл можно скачать себе на телефон с Android, установить его и поиграть в «Пирамиду» даже без интернета.
Вёрстка:
Кирилл Климентьев