Путеводитель по реализации 2д платформеров (начало)

Solar 2D

Бесплатный фреймворк (набор готовых функций для использования), разработанный в 2009 году. Ранее движок распространялся под названием Corona SDK. Основная цель — создание мобильных и десктопных приложений на базе скриптов Lua. В мае 2020 года в связи с закрытием компании Corona Labs Inc. произошёл ребрендинг, и теперь, как и в случае с Godot, поддержка и развитие движка осуществляется через пожертвования. Есть активное русскоязычное сообщество. Исходный код можно скачать с GitHub.


Game of Sultans — игра созданная на Solar 2D

Достижения:

  • за всё время существования движка на нём создано более  000 приложений на Android;
  • игру Bubble Ball (2010), созданную 14-летним подростком на Solar 2D, скачали два миллиона раз за две недели после релиза на iOS;
  • на Solar 2D также создана Game of Sultans, известная в России как «Великий Султан»: у неё более 10 миллионов загрузок, она лидер по продажам в 2019 году.

Преимущества:

  • возможность быстро разработать проект (скрипты Lua просто освоить);
  • небольшой объём приложений;
  • кроссплатформенность (iOS, tvOS, Android, Android TV, macOS, Windows, Linux, HTML5);
  • поддержка сторонних API и библиотек (C/C++/Obj-C/Java);
  • большое разнообразие плагинов для расширения функциональности.

Недостатки:

  • не поддерживает консоли;
  • позволяет работать только с 2D;
  • нет визуального редактора — только окно со строками кода;
  • не подходит для крупных проектов.

Игры на движке: CarMaker, Game of Sultans, The Lords of the Earth Flame, Incursion Defense: Cards TD, Edorium, Beasts Battle.

«Сообщество Solar 2D хоть и небольшое, но активное. Благодаря открытому исходному коду любой толковый программист может написать плагин к движку и развивать его. Solar 2D подходит для создания небольших казуалок, но при желании можно сделать что-нибудь сложнее. Если сравнивать с движками, которые под силу освоить даже художнику или сценаристу, то у Solar 2D порог входа выше, так как требуются навыки программирования».

Сергей Поморин, инди-разработчик (Beasts Battle, Necromancer Returns, Magicians Legacy)


Necromancer Returns

Что же из себя представляет «код» для Аперо?

Не пугайся слова код, никаких «010010» из матрицы здесь не будет.

Код для Аперо — это обычный текст, размеченный особым образом.

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

Для этого создай тестовую онлайн игру для обучения здесь, назови например «Обучение» и описание, например: «Это моя игра, в ней я научусь создавать свои текстовые игры онлайн на платформе Аперо». (Доступно только зарегистрированным пользователям)

Нажми кнопку «Создать!», и игра появится в твоем списке разработки здесь. После этого появится блок для редактирования исходного кода, туда ты будешь вводить свой код. Там уже есть базовый исходный код для примера, но его можно удалить.

После этого ты можешь нажать кнопку «Тестовый запуск игры!», и откроется страница твоей только что созданной новой текстовой онлайн игры, на ней ты можешь посмотреть, как будет выглядеть игра для игрока.

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

Что такое Unity

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

Наглядный пример игры, созданной на Unity, которая поддерживает разные устройства, — , успешный мультиплатформенный проект китайской студии miHoYo Limited. Более популярной стала ее мобильная версия, но пользователи могут войти в аккаунт, например, с компьютера и продолжить играть с того же момента, на котором остановились в мобильной версии. Кроме Genshin Impact, на Unity созданы такие известные проекты, как Hearthstone, Outlast, Cuphead, Pokemon GO и многие другие.

В игровой индустрии существуют десятки разных движков. Одни разработаны под конкретную игру, на других можно делать игры конкретного жанра (шутеры от первого лица, платформеры, гонки), а есть универсальные, вроде Unity, которые открывают разработчикам больше возможностей. Уникальность Unity заключается в сочетании нескольких факторов. Кроме того, что этот движок позволяет создавать проекты под разные устройства и не ограничивает разработчика конкретным жанром, он:

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

Изучение интерфейса Unity

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

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

Окно проекта (Project) показывает пользовательские библиотечные активы, которые доступны для использования, когда разработчик импортирует активы в свой проект.

Вид сцены (Scene View) позволяет разработчику осуществлять визуальную навигацию и редактирование. Он может отображать двухмерную или трехмерную перспективу, в зависимости от типа проекта, над которым работает.

Окно Иерархии (Hierarchy) представляет собой иерархическое представление текста для каждого объекта в сцене. Каждый элемент в сцене имеет запись в иерархии, так что два окна неразрывно связаны между собой. Иерархия структуры показывает, как объекты сгруппированы друг с другом.

Окно Инспектора (Inspector) позволяет просматривать и редактировать все свойства выбранного объекта. Так как объекты имеют различные свойства, макет (дизайн) и содержимое Окна Инспектора будут меняться.

Какие Ещё Навыки Вам Нужны?

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

Заметка: Не забывайте, что разные типы игры требуют различных знаний и навыков.

Как Использовать Различные Программы

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

Одной из самых популярных и известных многим программ является Unity – кроссплатформенный игровой движок, который позволяет создавать различные типы игр.

Преимущества

  • Огромное разнообразие курсов
  • Простая навигация
  • Нет технических проблем

Особенности

  • Огромное разнообразие курсов
  • Политика 30-дневного возврата средств
  • Бесплатные сертификаты об окончании

Посмотреть На Все Купоны Лучших Платформ Для Онлайн Обучения Преимущества

  • Простой в использовании
  • Предлагает качественный контент
  • Очень открытый в своих ценах

Особенности

  • Бесплатные сертификаты об окончании
  • Фокус на навыки науки о данных
  • Гибкое расписание занятий

Посмотреть На Все Купоны Лучших Платформ Для Онлайн Обучения

Навыки Дизайна

Создание игр самому возможно, но тогда вам придётся овладеть ещё несколькими важными навыками. Дизайн игр один из таких навыков

Создание концепта и идеи игры настолько же важно, насколько программирование – можно сказать, что программирование даже не начнётся, пока вы не придумаете дизайн вашей игры! Однако вы бы не читали эту статью, если бы у вас не было своих идей, ведь так?

Заключение

Я вновь повторю, обучение тому, как создать игру может быть интересным, полезным и очень сложным. Однако, если у вас есть неугасаемый интерес и должная мотивация, оно явно того стоит. Начните с самых базовых процессов, которые необходимо для создания игры. Даже самые простые игры требуют определённого концепта и видения. Этот концепт должен быть воплощен в проектный документ, способный помочь вам вести организованную разработку.

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

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

Запомните, обучение созданию игр это не простое занятие, оно может потребовать от вас много времени и сил, но в конце концов ваши усилия вознаградятся!

Где 2D и 3D перекрываются

Надеюсь, теперь вы лучше понимаете разницу между 2D и 3D играми

Мы рассмотрели несколько примеров жанров в каждом из них, но важно отметить, что это не всегда жесткие правила

Например, многие жанры работают как в 2D, так и в 3D – отличным примером являются платформеры. Хотя 2D-платформеры обычно просты, дополнительное измерение в 3D-платформах дает им гораздо больше возможностей. Трехмерные платформеры, такие как «Шляпа во времени», часто преследуют различные цели, например, сбор определенного количества определенных предметов.

Некоторые серии игр даже регулярно переключаются между 2D и 3D. Серия Metroid начиналась с 2D на NES и SNES, а затем перешла в 3D с Metroid Prime на GameCube. Но с момента выпуска Prime Nintendo разрабатывает игры Metroid как в 2D, так и в 3D. Sonic the Hedgehog – похожий случай.

Еще одна сложность в обсуждении – игры, в которых используется стиль «2.5D». Этот термин часто относится к играм с 2D-геймплеем и 3D-графикой (например, Donkey Kong Country: Tropical Freeze, Trine 2 или Street Fighter V).

В этих играх используются 3D-модели персонажей и других объектов, но вы можете управлять игрой только в двух измерениях. Сравните, как выглядит Donkey Kong и окружающая среда в Tropical Freeze:

Со спрайтом Линка из оригинальной игры The Legend of Zelda:

Обе эти игры имеют 2D-геймплей, но явно есть разница в методах отображения этой графики.

Окно редактора Unity

Окно редактора разделено на несколько разделов. Unity Game Objects — просмотр сцены: позволяет размещать и перемещать объекты GameObject в сцене и является основным строительным блоком проекта в игровом движке Unity. Все, что разработчик помещает на сцену в Unity, должно быть заключено в «игровой объект». Если у пользователя есть опыт веб-дизайна, он может использовать его в GameObjects, как элементы – контейнеры. Они легко расширяются для создания сложных функций или визуальных эффектов. Создание Иерархии происходит так же, как и в веб-разработке. Логика вложения игровых объектов во многом аналогична веб. Чтобы добавить контейнерам функциональности, прибавляют компоненты, которые, по сути, являются скриптами, написанными на C # или Javascript. Unity работает с моделью Actor Component, проще говоря, GameObjects — это актеры, а Components — сценарии.

Создание настраиваемого окна редактора заключается в следующем:

  • Создается сценарий, полученный из окна редактора.
  • Используется код, чтобы активировать окно.
  • Реализуется код GUI для пользовательского инструмента.

Для создания «Окна Редактора» пользовательский скрипт нужно сохранить в папке с именем «Редактор». Создают в этом скрипте класс, производный от «Окна Редактора». А после прописывают элементы управления GUI в функции OnGUI внутри.

Пример разработки простой 2D-игрушки Андроид

Наша игра Android Studio развивается по известному сюжету. Пользователь управляет космическим кораблем, уворачивающимся от метеоритов (астероидов). Последние падают с верхней части экрана, корабль – движется внизу вправо или влево, в зависимости от решений участника. При столкновении аппарата с космическим объектом объявляется Game Over.

Начнем с открытия проекта. Для этого последовательно выберем в меню программы File, New, New Project. Придумываем проекту название, вводим домен и место, где будет храниться папка. Окно, появившееся после нажатия Next, лучше оставить без изменений. В следующем выбираем Empty Activity и движемся дальше. Кликнув по клавише Finish, мы получим готовый проект.

Следующим шагом станет скачивание необходимых картинок и копирование их в папку drawable. Это изображения корабля и метеоров. После этого нужно создать layout. Открываем Text в activity_main.xml и вставляем следующий код:


Код для layout

MainActivity, GameView, SpaceBody

Для редактирования класса MainActivity меняем определение, придав ему следующий вид: public class MainActivity extends AppCompatActivity implements View.OnTouchListener {. После этого нужно задать перемены для нажатия левой (public static boolean isLeftPressed = false) и правой (public static boolean isRightPressed = false) кнопок. Следующие действия мы расписывать не будем. В итоге MainActivity должен принять следующий вид:


Код для MainActivity

Разобравшись с классом MainActivity, переходим к GameView. В определение добавляем extends SurfaceView implements Runnable. Теперь нужно задать разрешение. У современных гаджетов разные параметры. Дисплей старого мобильника не может сравниться с новым большим планшетом.

Чтобы добиться одинакового изображения на любом устройстве, поделим монитор на одинаковые «клетки» 20х28 (первый показатель – горизонталь). Если эти части будут распределены неравномерно, картинка получится сжатой или растянутой. Задаем переменные:


Переменные для «уравнивания» графики

Для метода run() устанавливается бесконечный цикл, стартующий с update(). Задачей последнего является вычисление новых координат космического корабля. По окончании расчетов на экране будет сформирован сам аппарат (draw()). Control() завершает цикл, обеспечивая паузу на 17 миллисекунд. Затем снова запускается run(). Выглядеть это будет так:


Бесконечный цикл для run()

Чтобы появился сам корабль и астероиды, нужен родительский class SpaceBody. Зададим переменные и методы:


Код для родительского класса SpaceBody

Теперь отдельный класс Ship для корабля:


Код космического корабля

После этого останется произвести компиляцию и запуск программы. На дисплее Android Studio должен возникнуть корабль, который можно кнопками перемещать вправо и влево. Следующим шагом станет добавление астероидов. Для этого разработаем class Asteroid, тоже являющийся дочерним для SpaceBody. Зададим переменные:


Код для метеоров

Суть в том, чтобы астероиды произвольно возникали в разных точках «потолка» экрана и двигались с непредсказуемой скоростью. Мы задали код, определяющий столкновение метеоров с кораблем. Добавим астероиды в GameView:


Вписываем астероиды в GameView

На этом изготовление элементарной 2D-игры можно считать завершенным. Остается скомпилировать и запустить программу. Ничто не мешает добавлять в нее новые опции. Например, стрельбу по метеорам или постоянное ускорение их движения. Но это уже тема отдельного разговора.

Panda 3D

Фреймворк, разработанный Disney для 3D-аттракционов в парке развлечений. Исходный код Panda 3D выложили в открытый доступ в 2002 году. Со временем инструмент оброс впечатляющей функциональностью для создания коммерческих продуктов с 3D-графикой. Для работы с движком требуется знание Python и C++. В настоящий момент движок используется в проектах, связанных с тренировкой ИИ, а также вычислениями на удалённых серверах.


Disney’s Pirates of the Caribbean Online (2007) — онлайновая RPG, созданная на Panda 3D

Преимущества:

  • большой набор инструментов и тулсетов (анализ производительности, конвертация моделей, плагин для браузера);
  • поддержка популярных физических движков (Bullet, NVIDIA PhysX, ODE);
  • наличие дополнительных возможностей (ИИ, процедурная анимация, графические ассеты, скелетная анимация и так далее);
  • низкий порог вхождения для тех, кто знает Python.

Недостатки:

  • отсутствие графического редактора, где можно расставить 3D-объекты: сцены заранее готовят в Maya или Blender, затем импортируют в Panda 3D с помощью кода;
  • устаревшее программное обеспечение для работы с ассетами;
  • нехватка наглядных примеров в официальной документации.

Игры на движке: Disney’s Toontown, Disney’s Pirates of the Caribbean Online, Autumn Moon Entertainment: Ghost Pirates of Vooju Island, Autumn Moon Entertainment: A Vampyre Story, SimOps Studios: Code3D, Angels Fall First: Second Antarean War, 7million.

Кроме того, на itch.io можно ознакомиться с подборкой игр от инди-разработчиков.

«Для меня меня этот движок оказался проще Unity или UE4. Он минималистичный — можно быстро разобраться, что к чему. Более масштабные технологии сразу заваливают функциями, и часто сложно понять, почему вдруг что-то сломалось. Например, у многих разработчиков возникают проблемы, связанные с переходом на новую версию движка. В Panda 3D такого нет».

Yonnji, инди-разработчик (KITSUNETSUKI project)


KITSUNETSUKI project

Программы для создания спрайтов и анимаций

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

Adobe Animate

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

Moho

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

Cinema 4D

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

Pencil2D

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

Дополняется множеством подсказок, фильтров и эффектов.

Совет: использовать программы без регистрации не рекомендуется, поскольку при достижении успеха регламентировано платить комиссионные, получать прибыль.

Игры, в которых можно создавать игры

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

Adventure Game Studio

Преимущества:

  • наличие демо-версии и демо-игры,
  • возможность импортировать видео- и аудиоматериалы.

Недостатки:

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

Применяется для создания игровых проектов в жанре «Квест». В программе реализовано множество инструментов, позволяющих: создавать уровни, загружать объекты, активировать скроллинг уровней. Присутствует множество справочных материалов, впрочем, недостатком станет реализация контента исключительно на английском языке.

Stencyl

Достоинства:

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

Недостатки:

  • интегрирован средний по релевантности язык программирования,
  • стоимость покупки полной версии.

Game Editor

Достоинства:

  • оптимизированный сценарий для создания приложений,
  • обилие шаблонов.

Недостатки:

необходимо обладать начинающими навыками программирования.

Универсальная программа, где процесс создания зиждется на разработке текстур, а после присвоения модели поведения. Синтаксис программирования обладает некоторыми схожестями с C++, что может рассматриваться базовым достоинством.

GameSalad

Достоинства:

  • удобство использования,
  • поддерживаются мобильные операционные системы.

Недостатки:

некоторая нестабильность работы приложения.

Применяется для создания игровых проектов на мобильных платформах.

Поставляется на рынок с пробным периодом в 15 дней, а стоимость платной подписки сильно снижена. Недостатком станет невозможность работы с 3D графикой. Снабжается внедренным помощником, который реализован на английском языке.

Как создать игру на Андроид с нуля без навыков программирования

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

Construct 2 — простая платформа для 2D приложений


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

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

Большая часть создания – это обыкновенное перетаскивание элементов и установка их взаимодействия. Например, персонаж цепляется за камень, и уровень заканчивается; одна часть фона представляет собой траву, другая, верхняя – небо, играет нейтральная музыка и характерные звуки. Вот и все, можно считать, самая простая и элементарная игра практически создана.

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

Видео-инструкция как сделать игру на Андроид с помощью Construct 2 и Construct 3

Unity 3D — мощный движок для разработки 3D проектов


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

Единственное требование – это достаточно мощный компьютер, поддерживающий 3D-форматы и навык программирования среднего уровня, поскольку новичкам будет все же немного трудно разобраться.

Видео-инструкция по созданию игры с помощью Unity 3D за 45 минут

Game Maker — самый легкий вариант для новичка


Именно здесь можно обойтись и без программирования, и без языка Java

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

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

Растровая графика[]

Растровая графика всегда оперирует двумерным массивом (матрицей) пикселей. Каждому пикселю сопоставляется значение яркости, цвета, прозрачности — или комбинация этих значений. Растровый образ имеет некоторое число строк и столбцов.
Без особых потерь растровые изображения можно только лишь уменьшать, хотя некоторые детали изображения тогда исчезнут навсегда, что иначе в векторном представлении. Увеличение же растровых изображений оборачивается «красивым» видом на увеличенные квадраты того или иного цвета, которые раньше были пикселями.
В растровом виде представимо любое изображение, однако этот способ хранения имеет свои недостатки: больший объём памяти, необходимый для работы с изображениями, потери при редактировании.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector