Создание игр 2d на unity: 🏓 Создаем 2D-игру на Unity: инструкция для новичка
Учимся делать 2D-игры с нуля
Курсы и туториалы по созданию двумерных игр — вторая статья из цикла «Разработка».
{«id»:47088,»url»:»https:\/\/vc.ru\/pixonic\/47088-2d-courses-tutorials»,»title»:»\u0423\u0447\u0438\u043c\u0441\u044f \u0434\u0435\u043b\u0430\u0442\u044c 2D-\u0438\u0433\u0440\u044b \u0441 \u043d\u0443\u043b\u044f»,»services»:{«facebook»:{«url»:»https:\/\/www.facebook.com\/sharer\/sharer.php?u=https:\/\/vc.ru\/pixonic\/47088-2d-courses-tutorials»,»short_name»:»FB»,»title»:»Facebook»,»width»:600,»height»:450},»vkontakte»:{«url»:»https:\/\/vk.com\/share.php?url=https:\/\/vc.ru\/pixonic\/47088-2d-courses-tutorials&title=\u0423\u0447\u0438\u043c\u0441\u044f \u0434\u0435\u043b\u0430\u0442\u044c 2D-\u0438\u0433\u0440\u044b \u0441 \u043d\u0443\u043b\u044f»,»short_name»:»VK»,»title»:»\u0412\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u0435″,»width»:600,»height»:450},»twitter»:{«url»:»https:\/\/twitter.com\/intent\/tweet?url=https:\/\/vc.ru\/pixonic\/47088-2d-courses-tutorials&text=\u0423\u0447\u0438\u043c\u0441\u044f \u0434\u0435\u043b\u0430\u0442\u044c 2D-\u0438\u0433\u0440\u044b \u0441 \u043d\u0443\u043b\u044f»,»short_name»:»TW»,»title»:»Twitter»,»width»:600,»height»:450},»telegram»:{«url»:»tg:\/\/msg_url?url=https:\/\/vc.ru\/pixonic\/47088-2d-courses-tutorials&text=\u0423\u0447\u0438\u043c\u0441\u044f \u0434\u0435\u043b\u0430\u0442\u044c 2D-\u0438\u0433\u0440\u044b \u0441 \u043d\u0443\u043b\u044f»,»short_name»:»TG»,»title»:»Telegram»,»width»:600,»height»:450},»odnoklassniki»:{«url»:»http:\/\/connect.ok.ru\/dk?st.cmd=WidgetSharePreview&service=odnoklassniki&st.shareUrl=https:\/\/vc.ru\/pixonic\/47088-2d-courses-tutorials»,»short_name»:»OK»,»title»:»\u041e\u0434\u043d\u043e\u043a\u043b\u0430\u0441\u0441\u043d\u0438\u043a\u0438″,»width»:600,»height»:450},»email»:{«url»:»mailto:?subject=\u0423\u0447\u0438\u043c\u0441\u044f \u0434\u0435\u043b\u0430\u0442\u044c 2D-\u0438\u0433\u0440\u044b \u0441 \u043d\u0443\u043b\u044f&body=https:\/\/vc.ru\/pixonic\/47088-2d-courses-tutorials»,»short_name»:»Email»,»title»:»\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043d\u0430 \u043f\u043e\u0447\u0442\u0443″,»width»:600,»height»:450}},»isFavorited»:false}
109 234
просмотров
Автор: Дмитрий Старокожев. Начал программировать на пятом курсе университета, влюбился в Objective-C и разработку под iOS, после чего попал в Pixonic. Работает ведущим разработчиком на проекте War Robots, а в свободное время преподаёт.
Вероятно, в ближайшее время кто-то из читателей этого цикла статей напишет первую строчку кода своего будущего прототипа. Потому что с движком мы уже определились и переходим к практике.
Учить программированию в одной статье нет смысла. К тому же, руководств в интернете множество. Многие наверняка будут делать свои первые прототипы в 2D — на этой теме и сконцентрируемся сегодня.
Если вы решили делать сразу в 3D, не спешите закрывать страницу — знания всё равно пригодятся. Приступим.
2D. Звучит олдскульно, правда? В наши дни разработка двумерных игр приобретает какой-то особый шарм. Чувствуешь себя ценителем, которому открылась недоступная другим истина. Но одного чувства прекрасного недостаточно — у разработки в 2D есть множество нюансов.
Очевидно, что главная особенность двухмерных игр — отсутствие третьего измерения. Как определить, кто ближе к зрителю: машина, куст или огромный боевой робот? Чтобы решить эту проблему, во всех 2D-движках предусмотрен механизм сортировки спрайтов — то есть двумерных графических объектов — по оси Z. Он может называться Z-order или Sorting Layers — в любом случае, с его помощью можно перемещать объекты со слоя на слой.
Другими словами, проблема уже решена за нас. Можно не тратить силы на изобретение велосипеда, а обратить свое внимание на особенности конкретных движков и жанров.
Звук и анимация
Для разработки прототипа звуки и анимация в большинстве случаев не так важны. Но нужно понимать, что работа с ними в 2D значительно отличается от 3D. В трёхмерном мире анимация скелетная: у каждой модели есть «скелет» (rig). Двигая его участки, разработчик анимирует модель.
А в 2D анимация создаётся покадрово: нужно создать атлас изображений, чтобы они стали последовательностью кадров анимации (sprite sheet). Уолт Дисней всё делал кистью и роллером, и это были шедевры (с). Этим же способом можно создавать очень красивых рисованных персонажей. Как в Cuphead, которая разрабатывалась на Unity.
Cuphead
А вот со звуком в 2D всё проще. Если при отрисовке мира отсутствие третьего измерения накладывает ограничения, то работа со звуком, наоборот, упрощается. Не нужно учитывать расстояние от слушателя (персонажа в игре) до источника звука — слушателем всегда будет выступать сам игрок.
Но нужна ли вообще прототипу музыка? Не думаю, что можно дать однозначный ответ (как и с анимацией). Давайте посмотрим на Hidden Folks. Это не просто 2D-игра, а настоящее произведение искусства.
Весь звук в Hidden Folks состоит из странных похрюкиваний и притопываний её разработчика, что само по себе USP — уникальное торговое предложение игры. Каждое прикосновение к экрану смартфона заставляет улыбнуться. Ладно, если запись похрюкиваний вам не подходит, в Asset Store Unity можно найти огромное количество платных и бесплатных ассетов для прототипа, а иногда и для релизной версии игры.
С чего начать
Рекомендации по выбору жанра можно прочитать в статье прошлого цикла. Здесь же мы будем говорить о некоторых путях, по которым можно пойти начинающему разработчику. Кому-то кажется, что вариантов не так много и обязательно надо закончить профильный университет с хорошей профессурой. Но если копнуть глубже, то обнаруживается бесконечный океан знаний, которые лежат прямо перед носом — остается только ухватиться за предоставленную интернетом возможность. Из доступного на ум сразу приходят:
- Туториалы.
- Онлайн-курсы.
Туториалы (tutorial) отличаются от курсов тем, что дают чёткий алгоритм действий для воспроизведения результата. Они не выходят за рамки поставленной задачи и отлично подходят, когда нужно сделать что-то конкретное, пока не пропал энтузиазм.
Туториалы
При первом поиске браузер выдаст миллионы ссылок с видеоуроками, статьями и готовыми проектами. Я подобрал несколько хороших вариантов по разным игровым жанрам. К тому же, среди других работ авторов можно найти ещё больше годного контента.
Есть YouTube-канал Brackeys. На нём — отличное вводное видео о том, с чего начать разработку платформера с плиточной графикой (tile based). Если сложно воспринимать на слух, можно включить английские субтитры.
Автор ролика приводит много примеров существующих проектов и объясняет, чем отличаются два различных подхода к созданию двумерных игр: sprite и tile based. В плейлистах канала можно найти староватый, но не потерявший актуальность туториал по созданию полноценного 2D-платформера с нуля — пошагово и со всем кодом, который можно повторить у себя и получить такой же результат.
На канале интересно практически каждое видео: даже если вы не планируете прямо сейчас врываться в разработку, стоит посмотреть хотя бы ролики о том, что нового появляется в Unity от версии к версии. Кстати, некоторые выпуски спонсирует сама Unity Technologies.
Еще один канал от энтузиаста — N3K EN. Можно найти ролики как по отдельным механикам или основам C # и Unity, так и плейлисты по разработке проектов с нуля. Например, создание прототипа Fruit Ninja за четыре часа в режиме реального времени со всем кодом.
Если учиться по видеороликам не очень нравится, есть хороший туториал в виде полноценной книги на английском языке. Она проведёт вас от установки Unity пятой версии до конца разработки двумерного скролл-шутера.
Наконец, есть официальные туториалы от Unity. Видео сопровождаются текстовыми описаниями и даже листингами программного кода. В процессе обучения создаётся roguelike RPG в tile based мире.
Чтобы в точности повторить результат, Unity сразу предлагает бесплатно скачать все ассеты этого проекта. Очень удобно и не надо ломать голову над тем, где взять симпатичные спрайты, а не разноцветные прямоугольники. В последнем ролике вы даже научитесь реализовывать управление персонажем под сенсорные экраны мобильных устройств.
Принимаясь за изучение нового туториала, не стоит волноваться о том, какую версию движка использует автор.
Unity везде ведёт себя похожим образом, а функции движка пятой версии доступны и в самой последней. Конечно, инструменты совершенствуются, но авторы обучающих материалов редко копают настолько глубоко, так что об этом можно не беспокоиться.
Курсы
Если нужно подтянуть навыки программирования, то на арену выходит старый и проверенный игрок — Code School. Всё происходит прямо в интерфейсе сайта, который выглядит свежо и удобно. И не чувствуешь на затылке укоризненный взгляд Лобачевского со старого портрета над доской с графиком дежурств. Точно стоит обратить внимание хотя бы на бесплатные курсы, чтобы понять, насколько удобен такой формат обучения.
Есть официальные курсы от Unity, не надо далеко ходить. Кажется, что они и дальше готовы инвестировать в это направление (а после курсов можно еще получить сертификат).
У GeekBrains есть два отличных курса, разбитых по уровням сложности. Раз уж мы говорим о 2D-играх, нас интересует первый. Оба курса требуют определенной алгоритмической подготовки, программированию там не учат, только разработке на Unity.
Вы научитесь делать игры в 2D буквально с нуля: на первом уроке установите движок, а на восьмом уже запустите проект на Android. Вы даже можете заметить меня в списке преподавателей и случайно попасть на мой поток.
Хотите узнать, насколько глубока кроличья нора? Я падаю, стул тоже падает, здесь всё в 2D, и мне это очень нравится. Присоединяйтесь.
Домашнее задание
Наступает время самостоятельной работы. Пора писать код своей первой игры!
- Определите главную механику. Например, у Tower Defence это строительство башен и волны врагов.
- Найдите туториал по главной механике или по жанру в целом.
- Реализуйте главную механику на практике, используя примитивную графику.
О нюансах 3D-игр и туториалах для них поговорим отдельно — в следующей статье.
Это статья из нашего большого проекта с vc.ru. Если выполнять все задания, можно — ни много ни мало — научиться делать видеоигры. И выиграть лимитированное издание PS4 Pro в конце каждого цикла статей.
Цикл «Разработка»:
Курс Разработка игр на Unity 3D
Этот движок поддерживают практически все платформы, возможности его безграничны. На нем можно разрабатывать 2D и 3D игры для Windows, Linux, iOS, Android, PlayStation, Xbox, Wii и даже Nintendo Switch. Он появился в 2005 году и с тех пор завоевал заслуженную популярность, став безусловным лидером в геймдеве. В этой среде работают как крупные международные игровые холдинги, так и маленькие студии или отдельные разработчики.
Вакансии Unity3D-разработчиков появляются не только в чисто игровой индустрии. Они востребованы при создании игровых рекламных форматов. Разработка игр на unity 3D сегодня очень востребована. Наш преподаватель выпустил не один игровой продукт, имеет широкий релевантный опыт и заточен на работу на результат. На обучении он детально знакомит с особенностями технологии, учит правильно пользоваться ее инструментами, дает основы объектно-ориентированного программирования.
После нескольких запусков нашего курса разработка игр на unity 3D мы обновили программу, добавив первый базовый блок по основам C#. Благодаря этому обучение разработке игр возможно с нуля.
Главное о Unity3D
- Игры на этом движке могут работать на всех известных платформах и операционных системах
- Unity3D имеет разные варианты с платным и бесплатным использованием. Внутри движка есть собственный магазин с игровыми элементами. Вы можете создавать собственные элементы (модели, эффекты и так далее), экспортировать их.
- Unity3D имеет внутри себя все необходимые инструменты для полного цикла разработки игрового приложения. При создании игры можно даже обойтись без дизайнеров и других специалистов.
- Unity3D постоянно обновляется и улучшает свою функциональность. Над этим работает специальная команда, а так же широко развитое комьюнити пользователей движка.
- Вы можете не только создавать игры, но и работать со встроенными в среду инструментами аналитики. Это увеличивает глубину понимания игровых механизмов и причин пользовательских реакций.
Курс по 2D и 3D
В нашем курсе, который можно назвать самым полным руководством по Unity 2D и 3D, вы освоите создание игр на C# с помощью Unity 3D. Вы также выучите основы дизайна и разработки игр применимые и для других платформ помимо Unity. Если вас всегда интересовал вопрос, как создавать игры на движке Unity, то наш курс — это именно то, что вам нужно.
В сети есть огромное количество уроков, которые утверждают, что могут научить вас как создать игру без каких-либо специальных знаний, но на самом деле они практически бесполезны. Они учат вас созданию 3D куба или какого-либо крошечного проекта, однако, создание игр это далеко не такой простой процесс. Поэтому вы не сможете узнать, как создавать игры, опираясь лишь на подобные источники. Научитесь созданию игр с помощью нашего обширного, интересного и практического курса!
Для кого полезен данный курс?
Данный курс подойдёт как для новичков, так и для опытных разработчиков. Курс по разработке игр на Unity является отличным началом для новичков и полезен даже для опытных разработчиков благодаря практическому подходу. Таким образом, вне зависимости от того, хотите ли вы освоить создание игр и улучшить ваши навыки в этом деле — наш курс — это правильный выбор.
Вы можете спросить, ‘Разве перед тем, как создать игру, мне не нужно выучить для этого некоторые языки программирования?’. И вы окажетесь правы! Перед тем как вы узнаете, как создавать игры, вы познакомитесь с основами программирования на C#. Благодаря такому подходу, у вас будет возможность получить все необходимые навыки и знания из одного источника, без необходимости поиска дополнительных материалов.
Так как наш курс начнёт ваше обучение с самых азов, то вполне закономерно возникает вопрос, насколько далеко вы продвинетесь в разработке. Если вас это интересует, то ‘Очень далеко’. Вы не только освоите создание игр, но и станете в этом профессионалом! Помимо базовых аспектов, вы познакомитесь с более продвинутыми техниками и темами, вроде освещения и настроек мультиплеерной составляющей игры.
Что вы узнаете из данного курса?
- Базовые принципы того, как создать игру
- Как сделать свою игру уникальной
- Как сделать игру на Unity 3D и Unity 2D
- Как писать программы на языке программирования C#
- Как найти работу младшего разработчика игр на Unity 3D
- Другие вещи, которые охватывает курс
- Установка и настройка
- Физика
- Поиск путей
- Базовый искусственный интеллект
- Освещение и карта освещения
- Анимация камеры и катсцены
- Анимация персонажа
- Скриптинг, скриптинг, скриптинг!
- Материалы и скайбокс
- Звуковые эффекты и музыка
- Мультиплеер через локальную сеть или Интернет
- FX частицы
- Система ближнего и дальнего боя
- Игра Tower Defense
- Приключенческая игра
- Зомби!
И многое другое…
Дополнительные материалы
Обучение тому, как создавать игры, проходит гораздо эффективнее в соответствующей среде. В сообществе нашего курса вы сможете не только получить ответы на интересующие вас вопросы, но и найти единомышленников для создания своей собственной игры.
Кому подойдёт данный курс?
Наш курс будет полезен для всех кому интересно создание игр!
- Людей, кто ищет способы создания игр
- Программистов без опыта работы с C#
- Новичков, что мечтают о карьере разработчика
- Людей, которые хотят освоить работу в программе Unity
- Тех, кто хочет создавать игры на Unity
Как создать игру на Unity, 2D
Из этой статьи вы узнаtте, как начать создавать игру с помощью Unity, начиная только с идеи. Кроме того, вы изучите хороший метод запуска для создания игр Unity 2d с нуля.
Важно отметить, что это руководство не сделает из вас полноценного разработчика Unity и не научит программировать. Однако это поможет вам быстро заставить что-то работать на экране.
Unity — один из самых популярных доступных бесплатных игровых движков. Он также имеет отличный 2D-движок, поэтому 3D-модели не нужны. Ещё одной привлекательной особенностью Unity является то, что он не требует обширных знаний в области программирования.
Разработка игр с помощью Unity хороша для создания вещей, которые уже созданы. Короче говоря, Unity идеально подходит для разработки небольших инди-игр.
Ниже приведено пошаговое руководство по созданию 2D-игры в Unity для начинающих.
Шаг 1. Идея
Шаг первый довольно прост. Вы легко можете сделать это в уме.
Перед тем, как начать, определитесь, какую игру вы делаете. Чтобы понять это, вы должны задать себе несколько вопросов по игровому дизайну:
- Это платформер, игра с видом сверху или, может быть, изометрическая?
- Какая будет тема и основная история?
- Как это будет выглядеть?
- Какой движок вы будете использовать?
- Главное, чем ваша игра будет выделяться? Какую новую механику или идею он представляет или что будет хорошо?
Хотя вам не нужны твёрдые или конкретные ответы на большинство из этих вопросов, вам всё же необходимо общее представление о том, что вы собираетесь делать, прежде чем начать. Вы можете расширить эту идею и создать её базовый прототип позже. Кому-то нравится делать это на бумаге, а кто-то может просто провести мозговой штурм.
Для начала сделаем платформер. В этом примере особое правило платформеров состоит в том, что игрок должен управлять двумя персонажами одновременно, чтобы решать головоломки, а персонажи должны встретиться, чтобы пройти уровень.
Как только у вас появится несколько идей о том, что делать, у вас будет руководство, с которого можно начать. Теперь можно переходить к прототипированию.
Шаг 2. Получите инструменты
Чтобы создать игру в Unity, вам понадобится Unity. Вы можете скачать персональную версию здесь . Имейте в виду, что личная версия необходима только в том случае, если вы не получили более 100 тысяч долларов для финансирования или дохода от своей игры.
Начните с загрузки Unity Hub. Затем откройте концентратор, выберите «Установить» и нажмите «Добавить». В этом руководстве будет использоваться версия Unity 2019.2.14f1. Вы можете установить любые пакеты, которые хотите или для которых есть место. В этом руководстве игра будет запущена в Windows, поэтому убедитесь, что установлен флажок «Поддержка сборки Windows».
Мы используем Unity версии 2019.2.14f1
Вы также можете создавать графику для своей игры. Поскольку Unity использует пиксельную графику , я настоятельно рекомендую использовать GraphicsGale . GraphicsGale бесплатна, проста в использовании и обладает множеством функций. Однако вы можете свободно использовать любой удобный вам редактор, будь то Photoshop, Blender или Windows Paint.
Шаг 3. Настройте свой проект
Пока Unity устанавливается, вы можете потратить время на подготовку некоторых своих ресурсов. Вам понадобится некоторая замещающая графика, называемая заполнителями, чтобы вы могли видеть, что вы делаете. Чтобы нарисовать все анимации вашего персонажа, врагов и окружающую среду, потребуется время, поэтому вы можете начать работу с простой графикой.
Для этого шага мы используем GraphicsGale, но вы можете использовать любой редактор, который вам нравится. Начните с того, что сделайте замену стен в игре. (Помните, вы всегда можете сделать больше позже.) Стены должны быть размером 100 на 100 пикселей.
Вот пример:
Сделайте что-нибудь быстрое и лёгкое, чтобы представить элементы нашей игры.
После завершения загрузки Unity вы можете открыть Unity Hub и начать новый проект. Назовите проект как хотите, но не забудьте выбрать 2D для настройки проекта.
Обязательно используйте 2D-шаблон.
Добро пожаловать в Unity! Теперь вы должны посмотреть на редактор Unity. Чтобы перемещаться по 2D-пространству в окне редактора, используйте среднюю кнопку мыши для панорамирования и колесо прокрутки для увеличения. Камера в центре поля представляет то, что увидит игрок.
В Unity есть невероятная функция под названием Unity Asset Store. Asset Store полон готовых фрагментов игры, таких как модели, текстуры, утилиты или программы AI. Они доступны для продажи, а некоторые даже предлагаются бесплатно. Из-за этого легко создать игру, не создавая слишком много ресурсов самостоятельно. Вы можете просто взять заранее запрограммированную игровую механику и прикрепить её к собственному арту.
Чтобы получить доступ к этим бесплатным базовым программным ресурсам, просто перейдите на вкладку «Asset Store» в верхней части окна просмотра. Отсюда перейдите в раздел «Лучшие бесплатные ресурсы» и загрузите пакет «Стандартные активы (для Unity 2017.3)». Возможно, вам придётся войти в систему или создать учётную запись.
Загрузите стандартные ресурсы из Unity Store.
После загрузки пакета нажмите «Импорт» (она заменяет кнопку загрузки после загрузки ресурсов), чтобы импортировать пакет в текущий проект Unity. Вам будет представлен длинный список флажков. Что вы добавляете из пакета, зависит от вас. Для этого руководства вам понадобятся только папка «2D» и папка «CrossPlatformInput» в разделе «стандартные ресурсы».
Вам также понадобятся некоторые инструменты для создания 2D-игр в Unity, которые вам немного помогут. Перейдите по этой ссылке и загрузите Git в виде zip-архива. Затем разархивируйте и перетащите папку внутри в обозревателя ресурсов. Возможно, вам придётся перезапустить Unity после этого, чтобы он работал правильно.
Теперь у вас должно быть всё необходимое для начала работы.
Шаг 4. Создайте карту
Чтобы начать создание карты, сначала вернитесь на вкладку «Сцена». В обозревателе ресурсов в нижней части экрана щёлкните правой кнопкой мыши и выберите создать папку. Назовите новую папку с ресурсами «Плитки».
Вы также захотите добавить свою иллюстрацию-заполнитель в браузер ресурсов. Просто перетащите всю папку из окон в обозревателя ресурсов.
Затем создайте палитру, которая будет служить блоками для вашего персонажа. Перейдите в Window> 2D> Tile Palette, чтобы открыть окно Tile Palette. Щёлкните «Создать новую палитру», чтобы создать новую палитру плиток. Назовите его «solid», но оставьте все значения по умолчанию и сохраните его в папке «Tiles».
Ваша новая палитра плитки, там ещё ничего нет.
Чтобы добавить искусство в палитру, просто перетащите свой заполнитель для блоков уровня в окно выше.
Затем создайте что-нибудь для рисования с помощью палитры. В окне Hierarchy щёлкните правой кнопкой мыши и выберите 2D Object> Tilemap.
Щёлкните здесь правой кнопкой мыши, чтобы создать карту листов.
Теперь у вас должна быть возможность рисовать на своём уровне. Постарайтесь пока держать его в пределах границ камеры и добавить несколько платформ, на которые можно прыгать.
Наконец, нужно позаботиться об одном последнем шаге. Прямо сейчас ваша карта — это только визуализация, и ваш персонаж не будет сталкиваться со стенами, которые вы построили. Фактически, ваш персонаж провалится прямо сквозь пол. Вы должны добавить свойство физики, чтобы игра знала, что эти квадраты имеют значение, и они созданы не только для того, чтобы красиво выглядеть.
Чтобы добавить физическое свойство, щёлкните карту тайлов в редакторе, а затем прокрутите вниз в окне инспектора (с другой стороны). Нажмите кнопку «Добавить компонент».
Компонент, который вам нужно добавить, называется Tilemap Collider 2D. Просто воспользуйтесь окном поиска, чтобы найти его и добавить на карту листов.
Шаг 5. Сделайте персонажа
Теперь, когда у вас есть карта, следующий шаг — создать кого-нибудь, кто будет перемещаться по ней. К счастью, Unity проделала большую часть тяжёлой работы на этом этапе. Если вы зайдёте в папку стандартных ресурсов> 2D> Prefabs в браузере ресурсов, вы увидите, что там есть маленький робот под названием «CharacterRobotBoy.prefab».
Вот он.
Помните, как к вашей тайловой карте был прикреплён компонент столкновения? Что ж, нашему персонажу нужно много компонентов, прикреплённых к нему, чтобы функционировать. Вместо того, чтобы каждый раз перестраивать каждый компонент, вы можете создавать префабы, которые будут служить игровыми объектами. Их можно использовать снова и снова.
Теперь перетащите мальчика-робота в свою сцену и щёлкните по нему в иерархии. Глядя на все компоненты, прикреплённые к нему, вы заметите, что у него есть система анимации, средство рендеринга спрайтов и несколько различных функций столкновения и управления.
У него есть система анимации, средство визуализации спрайтов и несколько различных функций управления столкновениями и контроля.
Хотя вы можете использовать его сейчас, вам следует создать собственного персонажа, который в итоге заменит его. Его спрайт и анимация будут служить вам заменой, пока вы продолжаете развиваться вокруг него.
Теперь, когда мальчик-робот находится в вашей сцене, вы можете играть за него. Нажмите кнопку воспроизведения в верхней части экрана, чтобы попробовать.
Поскольку идея игровой механики в этом уроке состоит в том, чтобы встретить двух персонажей, вам следует перетащить в сцену второго мальчика-робота, возможно, с другой стороны. Таким образом, каждый раз, когда вы играете в игру, вам придётся координировать свои действия, чтобы встретить двух персонажей.
Шаг 6. Дорожная карта и сборка
Дорожная карта — один из многих шагов, которые вы можете предпринять отсюда. Теперь, когда у вас есть прототип, вся трудоёмкая работа по настройке выполнена.
Создание дорожной карты — отличный способ спланировать инди-игру. Вы можете составить дорожную карту, продумав все функции, которые вам нужны в игре, разместив их на временной шкале и перемежая их со временем, чтобы внести улучшения и исправить ошибки.
Например, ваша дорожная карта может выглядеть примерно так:
- Добавить систему монет.
- Добавить здоровье и урон игрока.
- Основные враги.
- Проверка ошибок.
- Улучшить базовое искусство.
- Создавайте игровые сценарии и выигрывайте.
- Добавить элементы пользовательского интерфейса.
- Добавить систему меню.
Это начинает рассматривать возможности игры в перспективе и помогает увидеть, сколько работы осталось между этим прототипом и готовой игрой. Знать это расстояние важно, так как у вас не всегда есть неограниченное время и внимание, которые можно вложить в игру.
Дорожная карта также помогает контролировать ваши ожидания. После того, как вы создадите дорожную карту, следующим шагом будет следовать ей, продолжая улучшать свою игру.
Заключение
В этом руководстве вы познакомились только с началом создания игры. Остальное зависит от вас. У Unity есть активное сообщество, и существует множество обучающих ресурсов, которые выходят далеко за рамки этого простого игрового руководства. Некоторые из лучших учебных ресурсов включают в себя кодирование или дизайн игры Bootcamps. Путь к тому, чтобы стать разработчиком игр, начинается с вашей первой игры, какой бы простой она ни была.
Что надо знать о курсе
(педагогам, тренерам, родителям)
| |
|
Данный онлайн курс будет полезен и интересен детям от 10 лет и старше, и педагогам, которые:
|
|
Курс рассчитан на 4 недели обучения при учебной нагрузке:
|
|
Результатом курса станет создание своего проекта: 2D компьютерной игры-платформера на движке Unity и знакомство с азами профессии «разработчик компьютерных игр»
|
|
Навыки и знания, которые помогает развивать данный онлайн курс:
|
|
Для прохождения курса и работы с Unity участникам потребуется:
|
|
Для начала работы с курсом необходимо установить Unity на свой компьютер…
|
|
Рекомендации педагогам и тренерам по организации самостоятельного обучения и работы с курсом…
|
|
Для участников курса создана группа, где они могут общаться, задавать вопросы, помогать другу другу преодолевать возникшие трудности…
|
Полный курс. Создание 2D платформера на Unity | 2020
Общее
Свой путь в программировании я начал еще 17 лет и, увлекшись этой сферой, я учился и старался получить как можно больше знаний и опыта, которые в скором времени мне помогли стать Game и Front end разработчиком
Game developer
Более двух лет я являюсь частью фриланс команды игровых разработчиков и за это время я изучал сферу игровой разработки на практике, делая небольшие проекты. За это время, я изучил много хороших практик, которые помогают при создании игр и делают разработку проще и удобнее.
Создание игр для меня является не просто работой и изучением чего то нового, но еще и хобби, за счет которого, процесс программирования становится гораздо более интересным и познавательным занятием
Для себя я решил собрать все эти практики и, на основе своего опыта создавать курсы, которые помогут начинающим в игровой сфере программистам быстро пройти по правильному пути и перейти из базовых практик к более продвинутым как можно быстрее
Front end developer
Более 4х лет я являюсь Front end разработчиком. В самом начале этого пути мы с друзьями собрали команду и делали проекты на фрилансовой основе. Далее я сменял места работы ради накопления опыта и спустя несколько лет работы на этой должности, я узнал много нового и интересного касательно правильных практик верстки и заполнения функционалом всевозможных сайтов и веб приложений.
За то время, которое я посвятил программированию, я изучил Unity3D (на основе С#), который используется для разработки всевозможных игр. Изучал я обе сферы. Начал с изучения HTML, CSS и Javascript. После того, как я закрепил свои знания и приобрел достаточные навыки, чтобы двигаться дальше, передо мной встал выбор изучения Front end библиотек и фреймворков. Я выбрал ReactJS и Angular 2. После двух лет активного использования ReactJS в своих проектах, я получил огромное количество опыта в составлении правильной архитектуры веб приложений и правильного, грамотного и эффективного написания кода.
Учитель
Около года после того как я начал изучать веб программирование, я начал обучать студентов на бесплатной основе, чтобы в будущем взять их к себе в команду и многие остались довольны курсом, который я составил для них. Многие продолжили свой путь в этой сфере. Так же, через какое то время, после закрепления своих знаний и учитывая свои прошлые ошибки, я составил немного иную программу для индивидуального обучения студентов, чтобы лекции и практика проходили более эффективно для самих студентов.
За время обучения начинающих веб разработчиков, я составил список вещей, которые им даются с трудом, и это помогало мне с выбором метода обучения и более подробного объяснения тех или иных теорий и практик.
Нынешние курсы, которые я добавляю, содержат в себе самые эффективные методы обучения, к которым я пришел благодаря своему опыту обучения как группы людей, так и индивидуально каждого студента.
Создание простого 2D платформера в Unity3D
04.09.2020 Влад Сверчков
Тема компьютерных игр очень часто оказывается в эпицентре многих обсуждений. На сегодняшний день игры являются своего рода видом искусства, который имеет ветвистую классификацию и различные горизонтальные и вертикальные углубления, подобно другим видам творческой деятельности.
29.07.2020 Влад Сверчков
Full-stack разработчик (произносится “фулл стек”) — это некий мастер на все руки в мире веб-разработки. Ему под силу реализовать как клиентскую, так и серверную сторону приложения, которыми, обычно, занимаются FrontEnd и BackEnd разработчики раздельно друг от друга. Таким образом, Full-stack специалист способен в одиночку вести проект от начала до конца.
10.06.2020 Влад Сверчков
Должно быть, многие игроки мечтали стать частью геймдев-индустрии и применять всю глубину своей фантазии в разработке собственных игр. Пришло время узнать о специфике работы гейм девелоперов, о тех технологиях, которыми они должны владеть, а также получить ответ на вопрос — как стать разработчиком игр.
21.03.2018 Дмитрий Бобровников
И сегодня мы с тобой познакомимся с созданием игр на Unreal engine 4. Кто из нас не мечтал о создании собственной игры! Создание игр — это сложный и трудоёмкий процесс, давай поговорим об этом.
13.04.2016 Дарья Коновалова
Недавно в моей жизни начинающего разработчика игр появилась задача — сделать фон в игре, но не просто уныленький статичный бэкграунд, а параллакс. Да, эта чудо-красота применима не только в разработке сайтов, но и при создании игр. Попытка вдохновиться в гугле практически ничем не закончилась. Пришлось справляться с задачей собственными силами.
01.03.2016 Олег Загородний
Не так давно была популярной такая мобильная игра, как Flappy Bird. Причем по разным причинам из магазинов она пропала также неожиданно, как и появилась. Однако, учитывая ее популярность, сразу образовалось множество клонов. Не столь качественных, конечно. Но почему их было много? Все из-за того, что сама игра делается довольно просто и быстро.
23.02.2016 Алексей Мухняк
Данной статей начинается серия публикаций о создании панели умений (skills panel) для вашей игры. Панели умений встречаются во многих RPG играх и не только.
26.01.2016 Олег Загородний
Ни для кого не секрет, что в мобильных играх, в отличие от компьютерных, практически единственным “устройством ввода” является палец. То есть, все действия, которые пользователь выполняет в игре, совершаются благодаря прикосновениям к экрану, или же тачам (англ. touch – прикосновение). В этой статье мы с Вами рассмотрим, как можно правильно обработать тачи, разберем, в чем разница между глобальными и локальными тачами, а также реализуем обработку некоторых популярных жестов, которыми Вы оперируете не только в играх, но и в повседневном пользовании смартфоном – swipe и zoom. Разумеется, все это мы будем делать, используя исключительно встроенный функционал Unity3D, без внешних плагинов и ассетов.
29.09.2015 Антон Даниелян
Данная статья ориентирована на тех, у кого уже есть небольшой опыт работы с Unity. В первую очередь мы рассмотрим воссоздание механики управления главного героя игры Super Meat Boy. Также узнаем, как построить сцену, имея скриншот уровня оригинальной игры. Все материалы, использованные в данном примере, принадлежат разработчикам оригинальной игры.
14.04.2015 Александр Марченко
Продолжая серию статей о реализации анимации, которая реализуется без знаний Javascript, стоит отметить, что использование 2D зачастую не производит на пользователя должного впечатления. Несомненно, 2D-преобразования, реализованные с использованием каскадных таблиц стилей CSS3, освобождают нас от написания нескольких строк JavaScript кода, и тем более от подключения разного рода фреймворков. Но нельзя того же сказать и про 3D-преобразования, которые также реализуются без скриптов, но в то же время обеспечивают ощущение объемности объектов на странице, придавая им 3-х мерности. К тому же, на сегодняшний день большинство браузеров актуальных версий поддерживают эти эффекты.
2D Pixel Perfect: Как настроить проект Unity для ретро-8-битных игр. 2D 픽셀 퍼펙트: Unity 로 레트로 8 비트 게임 제작 하기 2D Pixel Perfect : レ ト ロ な 8 ビ ッ ト ゲ ー ム の 制作 に Unity プ ロ ジ
Ретро-игры с простой механикой и пиксельной графикой могут вызвать приятные воспоминания у опытных геймеров, но при этом доступны для более молодой аудитории. В настоящее время многие игры маркируются как «ретро», но для создания игры, действительно имеющей такой ностальгический вид, требуются усилия и планирование. Вот почему мы пригласили людей из Mega Cat Studios, чтобы они помогли нам поговорить на эту тему.В этом сообщении блога мы расскажем обо всем, что вам нужно для создания аутентичного арта для игр в стиле NES, включая важные настройки Unity, графические структуры и цветовые палитры.
Получите наш образец проекта и следуйте за ним!
Mega Cat Studios из Питтсбурга, штат Пенсильвания, превратила создание высокоточных ретро-игр в искусство. Настолько, что некоторые из их игр также можно приобрести в виде картриджа и воспроизводить на ретро-консолях, таких как Sega Genesis.
Маленькая Медуза и Кофейный кризис
Рабочие процессы Unity для максимального ретро-города
Недавние дополнения к рабочим процессам Unity сделали его хорошо подходящей средой для создания ваших ретро-игр. Система 2D Tilemap была сделана еще лучше и теперь поддерживает сетку, шестигранник и изометрические тайловые карты! Кроме того, вы можете использовать новый компонент Pixel Perfect Camera для достижения согласованного движения и визуальных эффектов на основе пикселей. Вы даже можете пойти дальше и использовать стек постобработки, чтобы добавить всевозможные классные эффекты ретро-экрана.Однако, прежде чем можно будет выполнить какую-либо из этих работ, ваши активы необходимо будет правильно импортировать и настроить.
Подготовка спрайтов
Наши активы сначала нуждаются в правильной конфигурации, чтобы они были четкими и ясными. Для каждого используемого ресурса выберите актив в представлении «Проект», а затем измените следующие настройки в инспекторе:
- Режим фильтра изменен на «Точка»
- Сжатие изменено на «Нет»
Другие режимы фильтрации приводят к слегка размытому изображению, что разрушает тот четкий стиль пиксельной графики, который мы ищем.Если используется сжатие, данные изображения будут сжаты, что приведет к некоторой потере точности по сравнению с оригиналом. Это важно отметить, так как это может привести к изменению цвета некоторых пикселей, что может привести к изменению самой общей цветовой палитры. Чем меньше цветов и меньше размер вашего спрайта, тем сильнее визуальное различие при сжатии. Вот сравнение нормального сжатия (по умолчанию) и его отсутствия.
Нормальное сжатие / Без сжатия выглядит точно так же, как оригинал
Еще одна вещь, о которой следует знать, — это установка максимального размера изображения в Инспекторе.Если размер вашего спрайтового изображения по любой оси больше, чем свойство «Максимальный размер» (по умолчанию 2048), он будет автоматически изменен до максимального размера. Обычно это приводит к некоторой потере качества и размытию изображения. Поскольку какое-то оборудование не может должным образом поддерживать текстуры более 2048 по любой из осей, рекомендуется попытаться не выходить за этот предел.
Максимальный размер установлен на 2048 / Теперь максимальный размер установлен на 4096
Выше показан спрайт из таблицы спрайтов, который был 2208 на одной оси с максимальным размером, установленным на 2048.Как видите, увеличение свойства Max Size до 4096 позволяет изменять размер изображения и избегать потери качества.
Наконец, при подготовке вашего спрайта или листа спрайтов убедитесь, что вы установили для режима сводной оси значение «Пиксели» вместо «Нормализованный».
Таким образом, точка поворота спрайта будет основываться на пикселях, а не на плавном диапазоне от 0 до 1 по каждой оси изображения. Если бы спрайт не вращался точно от пикселя, мы бы потеряли пиксельное совершенство.Повороты могут быть установлены для спрайтов в редакторе спрайтов, который можно открыть из инспектора, когда у вас выбран актив спрайта.
Установка пакета 2D Pixel Perfect
Подготовив ассеты, мы можем настроить нашу камеру на «идеальный пиксель». Результат с идеальным пикселем будет выглядеть чистым и четким. Яркими признаками пиксельной графики, которые не отображаются как идеальные по пикселям, являются размытость (наложение) и некоторые пиксели, которые выглядят прямоугольными, хотя должны быть квадратными.
Пакет 2D Pixel Perfect можно импортировать через диспетчер пакетов в Unity.Щелкните меню «Окно» на панели инструментов, а затем «Диспетчер пакетов». В новом окне нажмите «Дополнительно» и убедитесь, что вы включили «Показать пакеты предварительного просмотра». Выберите 2D Pixel Perfect из списка слева и выберите установить в правом верхнем углу окна.
Вот и все. Теперь вы готовы начать использовать компонент камеры с идеальной точностью до пикселя.
Высокий уровень идеального пикселя
Компонент Pixel Perfect Camera добавлен в компонент Unity Camera и дополняет его.Чтобы добавить его, перейдите к своей основной камере и добавьте к ней компонент Pixel Perfect Camera. Если параметр компонента Pixel Perfect Camera отсутствует, следуйте ранее указанным инструкциям, чтобы сначала импортировать его в проект.
Теперь давайте посмотрим на доступные настройки.
Во-первых, я рекомендую установить флажок «Запуск в режиме редактирования» и установить для соотношения сторон экрана в режиме просмотра игры значение «Свободный формат», чтобы вы могли свободно изменять размер окна игры. Компонент будет отображать полезные сообщения в игровом представлении, объясняющие, не является ли дисплей идеальным по пикселям при любом заданном разрешении.
Теперь вы можете просмотреть каждую настройку, чтобы увидеть, что они делают и как влияют на внешний вид вашей игры!
- Активов, пикселей на единицу — это поле относится к настройке, которую вы можете выбрать в инспекторе для каждого актива. Как правило, каждый актив, который будет использоваться в мировом пространстве игры, должен использовать одни и те же пиксели на единицу (PPU), и вы также должны указать это значение здесь. Если ваш игровой мир существует в виде сетки из тайлов и спрайтов, каждый из которых имеет размер 16 на 16 пикселей, PPU, равный 16, будет иметь смысл — каждый тайл сетки будет иметь 1 единицу в координатах мирового пространства.Убедитесь, что вы разместили здесь выбранный PPU.
- Справочное разрешение — Установите разрешение, при котором вы хотите, чтобы все ваши активы просматривались. Если вам нужен ретро-вид, обычно это означает очень маленькое разрешение. Например, родное разрешение для Sega Genesis составляет 320 × 224. При портировании игры с Sega Genesis мы использовали эталонное разрешение 320 × 224. Для общего использования 16: 9, 320 × 180, а также 398 × 224 (если вы хотите вместо этого сохранить вертикальное разрешение) должны работать хорошо.
- Текстура рендеринга с повышенным масштабом — Это заставляет сцену визуализироваться с максимально приближенным к эталонному разрешению, а затем масштабируется до соответствия фактическому размеру дисплея. Поскольку этот параметр приводит к заполнению экрана, мы рекомендуем его, если вы хотите получить полноэкранный режим без полей. «Улучшенная текстура рендеринга» также существенно повлияет на внешний вид спрайтов при повороте.
1. Исходный (не повернутый) 2. Без текстуры рендеринга Upscale (повернут на 45 градусов, точность пикселей теряется, поскольку размер пикселей меняется на диагональных краях) 3.С Upscale Render Texture (повернутой на 45 градусов, сохраняется идеальность пикселей, поскольку все пиксели имеют одинаковый размер, но спрайт выглядит менее точным по сравнению с оригиналом.)
- Pixel Snapping (доступно только с отключенной Upscale Render Texture) — если этот параметр включен, средства визуализации спрайтов будут автоматически привязаны к сетке мирового пространства, где размер сетки зависит от выбранного вами PPU. Обратите внимание, что на самом деле это не влияет на положение трансформации какого-либо объекта.В результате вы по-прежнему можете плавно интерполировать объекты между позициями, но визуальное движение останется точным и точным.
Привязка к пикселям отключена. С нашим фоном в позиции (0, 0) и нашим спрайтом нашего персонажа в (1.075, 0) мы получаем некоторые пиксели, не совпадающие правильно. Обратите внимание, что есть некоторые пиксели, которые только наполовину покрыты тенью. Привязка к пикселям включена. Те же позиции — фон (0, 0) и спрайт персонажа (1.075, 0). Пиксели идеально соединяются.
- Обрезка кадра (X и Y) — Обрезает просматриваемую область мирового пространства, чтобы точно соответствовать эталонному разрешению, и добавляет черные поля к дисплею, чтобы заполнить промежутки по краям экрана.
- Растянутая заливка — становится доступным, если вы включили и x, и y для кадрирования. Это заставляет камеру масштабироваться в соответствии с игровым представлением, чтобы соответствовать экрану с сохранением соотношения сторон. Поскольку это масштабирование не происходит только в целых числах, кратных эталонному разрешению, оно приведет к потере идеальности пикселей при любом разрешении, которое не является целым числом, кратным эталонному разрешению.Преимущество здесь в том, что даже если вы теряете идеальность пикселей для многих разрешений, у вас не будет полей с черными полосами, а вместо этого будет полностью заполненный экран. Обратите внимание, что, хотя размытие часто происходит из-за растягивающейся заливки, обычное предупреждающее сообщение не отображается.
Символ и фон размыты из растянутой заливки
Рекомендации по использованию Pixel Perfect Camera
Если вам нужен четкий и четкий дисплей, который будет работать в различных сценариях использования, я рекомендую:
- Используйте эталонное разрешение, которое никогда не будет больше, чем разрешение окна проигрывателя (например, 320 × 180).
- Включение или отключение текстуры высококлассной визуализации
- Включите его, если вы будете использовать вращение за пределами 90, 180 и 270, и если вы предпочитаете визуальный эффект, который он оказывает на повернутых спрайтах.
- Увеличенная текстура рендеринга может привести к получению неидеального по пикселям изображения при некоторых разрешениях, в зависимости от вашего эталонного разрешения. Поэкспериментируйте с этим и другими разрешениями экрана, используя «Запуск в режиме редактирования», включенный на Pixel. Компонент Perfect Camera, чтобы определить, является ли это проблемой для вашего разрешения.Если у вас получится получить изображение с идеальной точностью до пикселей при всех целевых разрешениях, это приведет к наилучшему полноэкранному воспроизведению с идеальной точностью до пикселей.
- Включите или отключите пиксельную привязку по своему усмотрению
- Это больше личное предпочтение, чем что-либо еще. Без привязки у вас будет гораздо более плавное движение, но пиксели могут быть не выровнены.
- Включить кадрирование кадра X и / или Y, если не используется текстура визуализации с повышенным разрешением
- Если вы не можете постоянно получать идеальный по пикселям результат с высококлассной текстурой рендеринга, обрезка X и / или Y обеспечит идеальное по пикселям изображение для любого разрешения, превышающего эталонное, но создаст большие поля по краям экран для некоторых разрешений.
- Отключить растягивающую заливку
Мы рекомендуем настроить камеру на оптимизацию для просмотра с соотношением сторон 16: 9, включая эталонное разрешение, если это возможно. На момент написания статьи большинство геймеров играли на мониторах с соотношением сторон 16: 9 и разрешением 1920 × 1080. Например, эталонное разрешение 320 × 180 составляет 16: 9, поэтому при воспроизведении с разрешением 1920 × 1080 или любым разрешением, кратным 320 × 180, например 1280 × 720, у него не будет полей с черными полосами.
На панели инструментов Unity вы можете перейти в меню «Правка»> «Настройки проекта»> «Плеер» и ограничить поддерживаемые в игре соотношения сторон.Если вы обнаружите, что определенная конфигурация работает так, как вы хотите в заданном вами соотношении сторон, но выглядит плохо в некоторых определенных соотношениях сторон, вы можете запретить отображение окна в этих соотношениях здесь. Однако имейте в виду, что не все пользователи будут иметь настройку дисплея, которая будет хорошо работать с вашими ограничениями, поэтому это не рекомендуется. Вместо этого включите кадрирование, чтобы у этих пользователей были поля, вместо того, чтобы играть с разрешением, не подходящим для их экрана.
Создание аутентичного изображения в стиле NES
Теперь, когда мы рассмотрели, как настроить Unity для создания пиксельной графики, давайте рассмотрим основы создания иллюстраций для игр, которые соответствуют ограничениям классической системы Nintendo Entertainment System.Это поколение консолей накладывает большое количество ограничений на художников, пытающихся создать аутентичный образ. Эти ограничения включают такие вещи, как используемые палитры, а также размер и количество объектов на экране. Кроме того, важно иметь в виду эталонное разрешение 256 × 240 при «нацеливании» на эту консоль.
Палитры
При создании произведений искусства, подлинных для NES, существует множество ограничений, которым художник должен следовать. Некоторые из них будут согласованы независимо от того, какую ретро-консоль пытается подражать исполнитель, в то время как многие другие специфичны для самой NES.Первое и, возможно, самое важное из этих ограничений связано с тем, как цветовые палитры используются в изображении. NES довольно уникальна, когда дело доходит до своей цветовой палитры, потому что полноцветная палитра консоли жестко запрограммирована в консоли. NES выбирает, какие цвета использовать в изображении, отправляя серию значений графическому процессору на NES, а затем графический процессор возвращает цвета, связанные с этими значениями. Ниже представлено изображение цветовой палитры NES:
Эти цвета нельзя изменить, так как они сами являются частью консоли.Каждая игра, которую вы когда-либо видели для этой консоли, использует комбинации этих цветов для создания их изображений.
Субпалитры
Для создания комбинаций, используемых в игре, создаются субпалитры, которые назначаются либо внутриигровым спрайтам, либо элементам фона. NES разбивает свою палитру на субпалитры, которые можно назначать спрайтам и фонам. Каждая субпалитра включает один общий цвет, который используется во всех субпалитрах, и три уникальных цвета.Он может загружать четыре субпалитры для фона и четыре субпалитры для спрайтов. В случае спрайтов общий цвет в начале каждой субпалитры рассматривается как прозрачность.
Это пример серии субпалитр, которые используются в игре. Верхняя строка представляет субпалитры фона, а нижняя строка представляет субпалитры спрайтов. В этом примере черный используется в качестве общего цвета для всех субпалитр.Поскольку общий цвет обрабатывается как прозрачность на спрайтах, необходимо сделать вторую запись черной палитры для субпалитр спрайтов, чтобы использовать его в качестве видимого цвета.
Назначение субпалитры
Ограничения на использование палитры становятся еще более жесткими по мере того, как художник переходит к тому, как палитры используются в игре. Чтобы объяснить это, необходимо продолжить обсуждение того, как ретро-консоли хранят, используют и отображают искусство. Обложки любой ретро-консоли хранятся в игре в виде плиток 8 × 8 пикселей.Использование этого подхода, основанного на плитках, позволяет художникам экономить место, повторно используя плитки для разных целей. (Например, фрагменты тротуара можно изменить и использовать для создания выступа на здании). Еще одна важная вещь, на которую следует обратить внимание при хранении на основе тайлов, заключается в том, что информация о цвете обычно не сохраняется вместе с графикой. Все плитки сохранены в монохромной палитре. Таким образом, всякий раз, когда плитка отображается в игре, ей может быть назначена субпалитра, позволяющая одновременно отображать одну и ту же плитку на экране с разными субпалитрами. Это важно при создании иллюстраций, которые соответствуют ретро-консоли. на современной платформе, потому что это влияет на то, как вы назначаете палитры графическому объекту.
NES по-разному назначает палитры спрайтам и фону. Он назначает субпалитры для спрайтов для каждой плитки. Это означает, что каждому тайлу 8 × 8 в спрайте может быть назначена одна из четырех субпалитр спрайта.
Этот персонаж ниндзя использует две субпалитры, чтобы придать ему большую глубину цвета. Справа вы можете увидеть, как он разделен на каждую отдельную плитку спрайта 8 × 8. С этим разделенным видом становится более очевидным, что светло-бирюзовый и самый темный красный, которые используются в мече и оголовье, уникальны для этих плиток, в то время как темно-фиолетовые и черные элементы контура используются в остальных трех плитках.
Фон, с другой стороны, гораздо более ограничен. Фоны распределяют свои палитры фрагментами 16 × 16. Назначения субпалитры для фона всего экрана называются таблицами атрибутов. Эти таблицы атрибутов являются причиной того, что большинство ретро-произведений искусства часто включают повторяющиеся сегменты плитки. Эти сегменты, как правило, состоят из плиток размером 16 × 16, так что они аккуратно вписываются в таблицу атрибутов. Несмотря на то, что это ответ на аппаратные ограничения, этот подход к фону на основе плиток 16 × 16 в конечном итоге стал определяющей характеристикой ретро-произведений искусства и абсолютно необходим при попытке их воссоздать.
Это пример красивого фона города в стиле ролевой игры, выполненного с учетом ограничений. На изображении справа показано, как оно аккуратно разбито на блоки размером 16 × 16 пикселей, и палитры выбираются для каждого блока. Такие вещи, как черепица, трава и кирпичи на мосту, состоят из повторяющихся сегментов этих блоков для экономии места. Все черепицы на меньших зданиях используют одну и ту же черепицу, но назначают им разные субпалитры, чтобы придать им уникальный вид.
Наслоение спрайтов
Хотя художники могут использовать разные субпалитры для каждой плитки спрайта 8 × 8, они могут оказаться в ситуации, когда они хотят иметь большую глубину цвета в спрайте, чем то, что уже доступно.Здесь может пригодиться наслоение спрайтов. Слои спрайтов просто разбивают спрайт на два отдельных спрайта и затем помещают их друг на друга. Это позволяет художникам обойти ограничение на одну субпалитру на каждый тайл 8 × 8. Это позволит художникам удвоить количество цветов, которые можно использовать в одной области 8 × 8. Единственный серьезный недостаток этого метода — ограничения рендеринга спрайтов. NES способна отображать на экране только 64 плитки спрайтов 8 × 8 одновременно и только 8 плиток спрайтов на одной горизонтальной линии друг с другом.Как только эти числа будут достигнуты, дальнейшие плитки спрайтов не будут отображаться на экране. Вот почему во многих играх для NES мерцали спрайты, когда их было много на экране одновременно. Таким образом, будут отображаться только определенные спрайты на чередующихся кадрах. Эти ограничения — это то, о чем художники должны помнить, когда они накладывают спрайты друг на друга, потому что, хотя это удваивает количество цветов, оно также удваивает количество спрайтов на одной горизонтальной линии.
Это пример наслоения спрайтов в действии.Слева — оригинальная трехцветная версия Призрачного пирата-спрайта. Затем художник разделил его на две части: тело / шляпу и лицо / руки, и назначил им разные палитры. Наконец, вы можете увидеть результат наложения двух частей друг на друга.
Наслоение спрайтов
также может быть выполнено с фоном, чтобы обойти ограничения таблицы атрибутов. Этот трюк обычно используется для статических изображений, таких как сюжетные экраны и портреты персонажей, чтобы придать им гораздо большую глубину цвета.Для этого художник рисовал часть изображения в качестве фона, а затем накладывал на нее спрайты, чтобы заполнить остальное.
В портрете Призрачного пирата также используется наложение спрайтов, чтобы придать ему большую глубину. Его зеленый череп отображается на экране как спрайт, а его воротник и шляпа — как часть фона. Это позволяет художнику использовать больше цветов в области 16 × 16, чтобы полностью обойти ограничение таблицы атрибутов.
Графические банки
Чтобы объяснить следующее серьезное ограничение NES, во-первых, нам нужно вернуться к тому факту, что графика хранится в тайлах.Графические плитки хранятся на 256 страницах плиток, и плитки с этих страниц не могут быть загружены во VRAM в разных местах, поэтому становится сложно смешивать и сопоставлять плитки с разных страниц на лету. Видеопамять NES способна отображать одновременно 512 таких плиток. Помимо этого ограничения, он разделяет плитки пополам для спрайтов и фона. Это означает, что в любой момент он способен отображать только 256 плиток спрайтов и 256 плиток фона. Это может стать очень ограничительным, если художник хочет отобразить большое количество спрайтов и элементов фона.
Это визуальное представление фона и тайлов спрайтов игры, загруженных во VRAM. Консоль аккуратно сохраняет фоны и спрайты на отдельных страницах.
Для борьбы с этим ограничением в NES есть функция, которая позволяет исполнителю разбивать каждую страницу на частичные страницы, называемые банками. Таким образом, хотя NES не может загружать отдельные плитки из разных точек графических данных, она способна загружать разные разделы страницы в разное время.Для большинства игр эти банки будут 1К или 2К. Банк размером 1 КБ составляет одну четвертую страницы или 64 плитки, а банк 2 КБ — половину страницы или 128 плиток. Художник должен решить, хотят ли они зарезервировать использование каждого типа банка либо для спрайтов, либо для элементов фона, потому что необходимо использовать оба типа банков. Это означает, что у вас не может быть 1К банков одновременно для спрайтов и фонов. Одна страница должна использовать 1 КБ банков, а другая — 2 КБ. Вообще говоря, в большинстве игр обычно используются банки размером 1 КБ для спрайтов и банки 2 КБ для фона, потому что фоновые тайлы обычно более статичны и требуют меньшего количества разнообразных «на лету».
Это показывает, как то же изображение выше было разбито на банки. Фоновая панель слева использует банки размером 2 КБ, что означает, что она разделена посередине, в то время как панель спрайтов справа использует банки размером 1 КБ. Каждый банк можно свободно менять на лету.
Полезность 1К банков для спрайтов весьма значительна. Если спрайт игрока имеет большой диапазон анимаций, которые не помещаются на одной странице вместе со всеми другими спрайтами, которые необходимо загрузить, отдельные действия могут быть сохранены в банках размером 1 КБ, а затем переключаться между ними в зависимости от того, какое действие происходит. экран.Это также позволяет использовать большее количество спрайтов в одной области игры. Например, если игроку предстоит столкнуться с шестью разными типами врагов в области игры, но страница спрайтов позволяет только игроку и трем другим типам спрайтов, то, когда один тип врага убирается с экрана, игра может поменять один из вражеских банков на новый тип врагов.
Одним из основных недостатков использования банков размером 1К для спрайтов и банков 2К для фона является то, как NES обрабатывает фоновую анимацию.Чтобы анимировать фоновый элемент для игры для NES, художник должен создать дублирующие банки анимированных фоновых элементов. Каждый новый дублирующий банк будет содержать следующий кадр анимации для каждого из анимированных элементов. Эти банки затем меняются местами по очереди, как книжка-книжка, для создания анимации. Если художник использует для фона банки размером в полстраницы, то хранение всех этих банков-дубликатов может занять много места. Один из способов обойти это — поместить все анимированные фоновые элементы для всей игры в один банк.Но это также оставляет художнику ограничение: для статических элементов для каждого фона остается только 128 плиток. Художник должен выбрать наилучший курс действий, решая, какие банки они собираются использовать для искусства.
Уловки наслоения
Во многих играх той эпохи использовались уловки для создания эффектов, таких как параллаксная прокрутка в фоновом режиме, но они тоже бросают вызов художникам и дизайнерам. В то время как более поздние 16-битные консоли позволяли использовать несколько фоновых слоев, это не вариант для NES.Все фоны представляют собой одно сплющенное изображение. Чтобы создать ощущение глубины и многоуровневости, использовались различные приемы программирования. Например, чтобы создать фон параллакса, разработчик может установить регистр, который может определять, когда на экране отображается определенная горизонтальная линия (известная как растровая линия). Затем они могут использовать этот регистр для управления скоростью и направлением прокрутки экрана. Используя его, они могут создать горизонтальный ряд фона, который прокручивается с другой скоростью, чем остальной фон.Уловка для художников и дизайнеров на этом этапе состоит в том, чтобы помнить, что фон по-прежнему представляет собой одно плоское изображение. Если платформа или любой другой элемент, который должен находиться «впереди» этого медленного движущегося фона, размещается в этой области, то он также будет прокручиваться медленнее, чем остальная часть изображения. Это означает, что дизайнеры должны помнить о том, где они размещают элементы фона в сцене, а художники должны создавать фон таким образом, чтобы эффект был бесшовным.
В этом примере экрана область, выделенная красным, может быть настроена на прокрутку медленнее, чем остальная часть фона, чтобы имитировать глубину.Проекционный дисплей над ним будет настроен таким образом, чтобы он никогда не прокручивался, даже если он также является частью сглаженного фонового изображения.
Есть еще одна уловка для художников, которые хотят, чтобы один из их фоновых элементов отображался на переднем плане. В NES разработчики могут установить приоритет спрайта меньше нуля. Когда это будет сделано, спрайт будет отображаться за любыми непрозрачными фоновыми пикселями. Приоритеты спрайтов также можно изменять и активировать «на лету», что позволяет некоторым элементам изменять приоритет спрайта по мере необходимости.
Заключение
Когда кто-то пытается создать проект, который является аутентичным для ретро-консоли, им нужно иметь в виду множество технических соображений, которые могут не вызывать беспокойства у современных разработчиков. Из-за того, что старые машины обрабатывали изображения и имели небольшое пространство для маневра с ЦП и ГП, дизайнерам приходилось творчески мыслить, чтобы обойти ограничения оборудования. В современную эпоху становится важным узнать об этих ограничениях и методах, чтобы по-настоящему воссоздать внешний вид и дизайн игр той эпохи.В следующем посте мы рассмотрим ограничения дизайна, наложенные 16-битной эпохой, а также работу Unity, необходимую для создания ощущения настоящего «старого телевизора». Руководство по 2D Pixel Perfect для 16-битных ретро-визуальных эффектов теперь доступно здесь.
–
Впервые разрабатываете уровни с помощью Tilemap? Изучите построение мира в 2D в этом руководстве для начинающих по Unity Learn.
Я попытался создать аналогичный прототип 2D-игры в React, Unity, Godot, Construct, Game Maker и Phaser. Вот что я нашел.
Я разработчик настольных игр. При разработке новой карточной игры я решил создать цифровой прототип, который поможет мне проводить симуляции и легко делиться доказательством концепции с соавторами.
У меня есть некоторый опыт работы с JavaScript и C #, и я изложил то же самое, что и многие: потратив чрезмерное количество времени на то, «какой фреймворк мне следует использовать», и чтение документации, фактически ничего не делая.
Перенесемся вперед на много месяцев, и теперь я провел больше времени, работая (и борясь с) над React, Unity, Godot, Construct 3, Game Maker Studio 2 и Phaser 3, пытаясь понять, что их движет.
По общему признанию, я думаю, что я потратил намного больше раза на каждую из них, чем необходимо для создания моей маленькой игры, и я, вероятно, мог бы просто придерживаться первой и ошибиться на своем пути через прототип. Я надеюсь, что приведенная ниже информация будет полезна всем, кто ищет движок или фреймворк.
Куча предостережений: я не пытаюсь продавать один движок или фреймворк по сравнению с другими, и я также не предполагаю, что один или любой из этих фреймворков будет работать для вашей игры лучше, чем другой.Я также не сравниваю цены, функциональность серверной части или развертывание платформы. Поэтому в зависимости от ваших требований приведенная ниже информация может иметь для вас различную ценность.
Кроме того, этот опыт основан на разработке 2D-карточной игры, поэтому я не буду обсуждать 3D-движки, физику и т. Д.
Вы также можете пропустить вниз, чтобы получить TL; DR.
Прототип
Моя игра, Entromancy: Hacker Battles , это соревновательная карточная игра в стиле киберпанк с механикой TCG-light.Вы можете прочитать больше на нашем сайте или посмотреть, как это должно быть воспроизведено, в этом видео. Но достаточно сказать, что как карточная игра, она требует потенциальной цифровой инфраструктуры для поддержки основных вещей, таких как управление состоянием, пользовательский интерфейс, перетаскивание UX и внутренние обработчики для реализации многопользовательской игры.
Учитывая эти требования, я исследовал следующие фреймворки и движки, чтобы увидеть, какой из них больше всего подходит для создания моей игры … вместо того, чтобы на самом деле создавать игру (я счастлив сказать, что теперь, когда я Я остановился на фреймворке, у меня гораздо больше прогресса).
Здесь вы можете получить доступ к игровой версии, и, хотя игра продвинулась дальше, чем можно было бы предположить на реальном прототипе, эта версия довольно стабильна (по крайней мере, в Chrome).
React
Я уже построил прототип генератора персонажей в React для настольной ролевой игры, которую я разработал, и подумал, что естественным шагом было бы дать фреймворку вращение для карточной игры. Я обнаружил, что управление состоянием — это легкий ветерок (в конце концов, это то, что делает React ), тогда как реализация простой функции перетаскивания для карточек оказалась кошмаром.
Есть несколько библиотек, которые могут помочь с базовым перетаскиванием (например, React DnD), но я обнаружил, что с карточной игрой мне нужно более элегантное решение для dropzones, поскольку Hacker Battles очень специфичны для карты можно играть где и когда.
Этот опыт побудил меня проверить boardgame.io, который может работать в тандеме с React. Но в конечном итоге это потребовало от меня изучения другого фреймворка поверх существующего, что было далеко не идеально для моих целей.
Unity
Из общего интереса я провел много времени в Unity, создавая учебные пособия и изучая, как использовать редактор, прежде чем попытаться переделать с его помощью прототип карточной игры. Хранилище ресурсов — отличный ресурс, и там так много документации, официальной и неофициальной, что я был уверен, что смогу найти ответ на любую проблему, с которой могу столкнуться.
Мой опыт работы с Unity до сих пор неоднозначен. Мне очень нравится работать на C #, и все, что связано с кодом, было относительно безболезненным.Однако Unity очень специфичен в своей реализации и временами может показаться нелогичным.
А вот с редактором тяжело работать. Чтобы использовать весь потенциал Unity, вам нужно потратить немало времени на борьбу с пользовательским интерфейсом, чтобы понять, где все находится и как его использовать. Он также отчаянно отстает от времени в разработке 2D-игр, явно пытаясь превратить преимущественно 3D-движок в 2D-плоскость, с неоднозначными результатами.
Честно говоря, мне очень нравится работать в редакторе Unity, каким бы неуклюжим он ни был.Но если вы ищете движок для 2D-игр, качество вашей жизни будет намного выше в другом месте (посмотрите видео о системе анимации Unity или о достижении совершенства пикселей, и вы поймете, что я имею в виду).
В конечном счете, Unity обрабатывает 2D-пространство немного сложнее, чем мне нужно для моего прототипа, но я вернусь к нему для других типов игр.
Кроме того, боковая панель, которая может быть полезна для некоторых: изначально я был очень взволнован магазином активов, с идеей, что я мог бы приобрести шаблон карточной игры, который значительно упростит мне процесс разработки.Не вышло. Большинство из них были MTG / Hearthstone и т. Д. клонов, которые потребовали бы от меня столько же времени на разработку, чтобы реструктурировать их для моей карточной игры, так и для того, чтобы начать с нуля.
Godot
Моей первой мыслью при встрече с Godot было: «Игровой движок с открытым исходным кодом, поддерживающий C #? Подпишитесь!» Затем я загрузил его, проработал пару базовых руководств, и он вылетел при сборке. Хурм.
Несколько поисков в Google, переустановок и позже вытащили волосы, я понял, что это как-то связано с моей версией VS Build (я так думаю?), Что привело меня в отдельную кроличью нору.По опыту я знал, что другие движки, среди которых главный Unity, могут вызывать критические проблемы вне вашего собственного кода, но это было досадным препятствием, которое, вероятно, окрашивало весь мой опыт работы с Godot.
Что касается редактора, мне очень понравилась реализация Godot на основе узлов, которая на самом деле показалась мне противоречащей интуиции, исходящей от префабов Unity, но в конце концов она понравилась. Я бы даже сказал, что его 2D-функциональность на лучше на , чем у Unity, но ему не хватает сообщества, хранилища ресурсов (см. Боковую панель выше) и особенно документации, которая есть в Unity.Например, если вы собираетесь работать на C # с Godot, будьте готовы искать ответы в пользовательском GDScript движка, а затем переводить их на C #.
Я слышал, однако, о людях, добившихся большого успеха с Godot при использовании GDScript, поэтому, если вы готовы потратить время на его изучение, вам может понравиться то, что Godot может предложить.
Construct 3
В оговорках, которые я перечислил выше, я упомянул, что я не включаю цены в качестве предмета обсуждения.Тем не менее, я чувствую, что мне нужно поднять этот вопрос с помощью Construct 3, поскольку в моем опыте это оказалось очень действенным.
В отличие от других перечисленных здесь игровых движков, которые, по большей части, бесплатны для использования (Game Maker Studio 2 имеет 30-дневную бесплатную пробную версию), подавляющее большинство функций Construct находится за пределами платной стены и подписки. плата при этом. Фу.
Мне правда, действительно нравится укороченная консоль Construct для простых 2D-игр. Редактор немного напоминает обновление MS Paint, но он очень хорошо обрабатывает спрайты и управление объектами и прост в использовании.Мне не нравится, что он использует стиль «визуального написания сценариев», но недавно они добавили функцию написания простого старого JavaScript, и, похоже, это более или менее работает.
Мне удалось развернуть очень элементарную архитектуру для прототипа за короткий промежуток времени, прежде чем закрыть демонстрацию Construct 3 (которая работает в браузере) … и затем снова попробовать все это позже с новой демонстрацией. Я чувствую, что, по крайней мере, для этой карточной игры, я мог бы многое сделать с Construct 3, но я просто не готов платить 99 долларов в год (или больше, как бизнес) за прототип.
Game Maker Studio 2
YoYo Games явно проделала большую работу, чтобы сделать Game Maker Studio 2 доступной и удобной для навигации, и это видно. Из всех движков, которые я использовал в этом проекте, мне больше всего нравится редактор GMS. Для небольшого проекта легко сориентироваться и заняться своими делами. Однако я подозреваю, что более крупный проект может довольно быстро выйти из-под контроля.
На это может повлиять собственный язык Game Maker Studio, GML (хотя GMS 2 поддерживает визуальные сценарии, которые я не использовал).Это работает, но если вы переходите к нему с другого языка ООП (или, действительно, с любого другого широко используемого языка), вы можете почесать голову при реализации или выяснить, как что-то делать. Если вы новичок или хотите потратить время на выяснение того, как GMS хочет, чтобы вы использовали GML, вы, вероятно, будете в порядке.
Я испытал некоторую причуду с функциональностью перетаскивания в Game Maker Studio, а именно: обнаружение указателя мыши при перетаскивании немного неудобно и требует некоторых строительных лесов для правильной работы.
Я думаю — и это полностью личное предпочтение и моя лень — что если бы GMS предложила возможность использовать другой, непатентованный язык программирования, я бы потратил время, чтобы нанести здесь больший ущерб. Я за то, чтобы повышать уровень нескольких навыков во время работы, в то время как тратить время на то, чтобы стать экспертом в редакторе GMS и GML, не имея возможности легко применить эти знания где-либо еще, не кажется целесообразным.
Тем не менее, это довольно работоспособный 2D-редактор, и хотя поддержка сообщества может быть не на одном уровне с поддержкой Unity, она все еще довольно хороша.Также помните, что по истечении бесплатного пробного периода вам придется заплатить, чтобы продолжить использование Game Maker Studio 2.
Phaser 3
Phaser — это легкая игровая среда на JavaScript с открытым исходным кодом. Есть несколько Phaser IDE, но если вы из тех, кто хочет работать в основном с кодом, вы можете закончить здесь, используя Atom, Sublime или ваш любимый редактор.
Phaser 2 был и широко используется и хорошо документирован с множеством руководств, на которые можно опираться. В Phaser 3 все наоборот.У него сравнительно высокая кривая обучения для начинающих, с множеством примеров и небольшим контекстом вокруг них.
Многие учебники поддерживают Phaser 2, и хотя обучение можно передавать, код — нет. Кроме того, разработчики недавно объявили, что они будут поддерживать Phaser 4 (и TypeScript, а не ES6), что не очень хорошо, если вы потратили время на Phaser 3.
Если вы не профессиональный программист ( Я не) и хорошо осведомлен о классах ES6 и передовых методах JavaScript (я не был), вы можете быстро разочароваться из-за отсутствия у Phaser поддержки и необходимости настраивать собственную IDE и рабочий процесс (я был) .
Тем не менее, я обнаружил, что это мощный и легкий фреймворк, который выполняет многие задачи гораздо более рационально, чем другие игровые движки. Функциональность перетаскивания для карточной игры была относительной легкостью, а возможность разделить типы карт на классы (вроде как сборные Unity) разделила некоторую когнитивную нагрузку, которую требует этот тип игры.
Если вы фронтенд-разработчик, вам может понравиться жесткое кодирование пиксельных координат для всего, или вам будет комфортно, но черт возьми, это кропотливая работа.Кроме того, если вы не в курсе всего, что касается JavaScript, вы, скорее всего, будете искать ответы в кругах, не относящихся к Phaser, а затем применять их к своему проекту, что, я полагаю, имеет свои преимущества.
Еще одно замечание на случай, если это неясно: у Phaser 3 действительно есть у довольно много официальной документации и примеров, но у нет ответов сообщества или Stack Overflow, которые нравятся многим другим игровым движкам. Если вы столкнетесь с проблемой или не можете что-то понять, вам придется найти собственное решение или опубликовать свой вопрос на сервере Phaser Discord, что, по моему опыту, было полезно.
Заключение
Учитывая все вышесказанное, прототип, который я придерживался и продолжаю повторять, — это тот, который я построил с помощью Phaser 3. Я понимаю, что это может быть антиклиматическим, поскольку Phaser не является изначально «лучше», чем другие фреймворки и движки при разработке 2D-игр (за исключением, возможно, React, который не пытается быть конкурентом в цифровом игровом пространстве).
Phaser, однако, похоже, более плавно обрабатывает перетаскивание и управление игровым циклом для Hacker Battles , и для моих целей это важно.Мне также нравится, что использование Phaser требует от меня более значительных инвестиций в экосистемы и сообщества JavaScript, но я все равно заинтересован в этом, так что это похоже на бонус.
Если вы больше похожи на «что я могу использовать для быстрого создания чего-либо и не заботитесь о контексте, в котором находится движок», напишите YMMV.
TL; DR
React: отлично подходит для фронтенд-разработки. Не стал бы использовать его для игр, особенно с перетаскиванием.
Unity: вы можете создать любой тип 2D-игры, если хотите бороться с редактором и лежащими в его основе особенностями 3D.Отличная поддержка сообщества, и C # великолепен. Хранилище активов существует, но может быть бесполезным для ваших целей.
Godot: с открытым исходным кодом и поддерживает GDScript, C #, даже C ++ и Python, если вы готовы выполнять большую часть тяжелой работы. Хорошие последствия для 2D, но не такая большая поддержка сообщества, как что-то вроде Unity. Кроме того, мой опыт был ошибочным.
Construct 3: действительно проста в использовании, высокий барьер для входа из-за платного доступа по подписке. Визуальные сценарии могут действовать вам на нервы, если вы хотите использовать или изучать код, хотя сейчас есть некоторая поддержка JavaScript.
Game Maker Studio 2: удобный редактор с хорошей поддержкой сообщества. GML или визуальные сценарии могут не быть вашей чашкой чая, если вы переходите с другого более популярного языка программирования, но эй, когда вы в Риме. Кроме того, требуется оплата после 30-дневной бесплатной пробной версии.
Phaser 3: ожидает, что все закодирует, и много ищет, чтобы выяснить, как заставить все работать. У меня это работает для этой конкретной игры и прототипа, но Phaser 4 уже на подходе, так что вот оно.
Надеюсь, этот пост будет полезен в вашем собственном процессе поиска и распознавания. Я также хотел бы услышать о вашем собственном опыте работы с любыми из этих фреймворков / движков или других!
Если вам понравилась эта статья, ознакомьтесь с моими играми и книгами, подпишитесь на мой канал YouTube или присоединитесь к Entromancy Discord.
Фарзан М.С., Ph.D. писал и работал для известных компаний, занимающихся видеоиграми, и редакционных сайтов, таких как Electronic Arts, Perfect World Entertainment, Modus Games и MMORPG.com и был менеджером сообщества для таких игр, как Dungeons & Dragons Neverwinter и Mass Effect: Andromeda . Он является креативным директором и ведущим игровым дизайнером Entromancy: A Cyberpunk Fantasy RPG и автором The Nightpath Trilogy . Найдите М. С. Фарзана в Twitter @sominator.
Amazon.com: Разработка 2D-игр с помощью Unity: Независимое программирование игр с помощью C #, электронная книга: Halpern, Jared: Kindle Store
Джаред Халперн — разработчик программного обеспечения с опытом работы в области компьютерных наук и более 12 лет опыта работы в широком спектре технологий.В последние годы он специализировался в основном на разработке iPhone и Unity. В прошлом Джаред создал множество приложений для iPhone, включая игры, дополненную реальность, фотографии, электронную коммерцию, видео и приложения в формате GIF. Его интересы включают Swift, Unity, дополненную реальность, разработку игр и творческое применение этих технологий. У него безмерная страсть к потенциалу игр как интерактивного средства рассказывания историй и передачи опыта способами, недоступными другим средам. В настоящее время ему нравится работать внештатным разработчиком iPhone и Unity.Джаред в Твиттере: @JaredEHalpern и его сайт: JaredHalpern.com
Выполните пошаговое руководство по Unity Engine и изучите важные 2D-ориентированные уроки по написанию сценариев, работе с изображениями, анимациями, камерами, обнаружению столкновений и управлению состоянием. В дополнение к основам вы изучите передовой опыт, полезные шаблоны архитектуры игры и научитесь настраивать Unity в соответствии с вашими потребностями в контексте создания работающей 2D-игры.
Хотя многие книги посвящены созданию 3D-игр с помощью Unity, самый простой рынок для независимого разработчика — это 2D-игры.2D-игры, как правило, дешевле в производстве, более удобны для небольших команд и с большей вероятностью будут завершены. Если вы живете и дышите играми и хотите их создавать, тогда 2D-игры — отличное место для начала.
Сосредоточившись исключительно на 2D-играх и постоянно расширяющемся 2D-рабочем процессе Unity, эта книга дает начинающим независимым разработчикам игр инструменты, необходимые для успеха. Различные реальные примеры независимых игр используются для обучения фундаментальным концепциям разработки 2D-игр в Unity с использованием самых последних инструментов обновленного 2D-рабочего процесса Unity.
Новые полностью цифровые каналы распространения, такие как Nintendo eShop, XBox Live Marketplace, Playstation Store, App Store, Google Play, itch.io, Steam и GOG.com, упростили поиск, покупку и продавать игры. Наступает золотой век независимых игр, и сейчас самое время проявить творческий подход, засучить рукава и создать игру, о которой вы всегда мечтали. Разработка 2D-игр с помощью Unity может указать вам путь.
— Этот текст относится к изданию в мягкой обложке.
Разработка 2D-игр с помощью Unity — Независимое программирование игр с помощью C # | Джаред Халперн
Выполните пошаговое руководство по Unity Engine и изучите важные 2D-ориентированные уроки по написанию сценариев, работе с изображениями, анимациями, камерами, обнаружению столкновений и управлению состоянием. В дополнение к основам вы изучите передовой опыт, полезные шаблоны архитектуры игры и научитесь настраивать Unity в соответствии с вашими потребностями в контексте создания работающей 2D-игры.
Хотя многие книги посвящены созданию 3D-игр с помощью Unity, самый простой рынок для независимого разработчика — это 2D-игры. 2D-игры, как правило, дешевле в производстве, более удобны для небольших команд и с большей вероятностью будут завершены. Если вы живете и дышите играми и хотите их создавать, тогда 2D-игры — отличное место для начала.
Сосредоточившись исключительно на 2D-играх и постоянно расширяющемся 2D-рабочем процессе Unity, эта книга дает начинающим независимым разработчикам игр инструменты, необходимые для успеха.Различные реальные примеры независимых игр используются для обучения фундаментальным концепциям разработки 2D-игр в Unity с использованием самых последних инструментов обновленного 2D-рабочего процесса Unity.
Новые полностью цифровые каналы распространения, такие как Nintendo eShop, XBox Live Marketplace, Playstation Store, App Store, Google Play, itch.io, Steam и GOG.com, упростили поиск, покупку и продавать игры. Наступает золотой век независимых игр, и сейчас самое время проявить творческий подход, засучить рукава и создать игру, о которой вы всегда мечтали. Разработка 2D-игр с помощью Unity может указать вам путь.
Что вы узнаете
- Глубоко погрузитесь в полезные 2D-темы, такие как спрайты, фрагменты плитки и совершенно новая функция Tilemap.
- Постройте работающую 2D-игру в стиле RPG по мере обучения.
- Создавайте гибкую и расширяемую игровую архитектуру с помощью специальных инструментов Unity, таких как Scriptable Objects, Cinemachine и Prefabs.
- Воспользуйтесь преимуществами оптимизированного 2D-рабочего процесса, предоставляемого средой Unity.
- Развертывание игр на рабочем столе
Для кого предназначена эта книга
Любители с некоторыми знаниями программирования, а также опытные программисты, заинтересованные в том, чтобы научиться создавать игры независимо от крупной студии.
Как мне создать свою первую 2D-игру-платформер с использованием игрового движка Unity3D? | автор: Аншуман Паттнаик
Введение
Forest Assassin — это приключенческий 2D платформер с простым управлением и увлекательным игровым процессом, который помогает каждому начать работу. Это классический платформер с чудесно оформленными персонажами и миром.Чтобы завершить игру, соберите все монеты и трофей, постарайтесь собрать все 100 золотых монет, чтобы стать лучшим бомбардиром в этой платформерной игре для авантюристов. На вашем пути вы встретите множество препятствий и врагов и используйте свой меч, чтобы сражаться с врагом.
Как играть в игру на настольном браузере?
Чтобы упростить пользователю задачу, я также опубликовал игру в браузере для настольных ПК, потому что люди всегда любят играть в браузерные игры, и причина в том, что это быстро и просто не требует каких-либо типов установки.
В настоящее время игра доступна по адресу https://games.hackbotone.com/forest-assassin/ и поддерживает все современные настольные браузеры.
- Для перемещения используйте [A] [D] или клавиши со стрелками
- Используйте клавишу [SPACE] для прыжка
- Используйте клавишу [W] для атаки
- Чтобы закончить игру, соберите все монеты и трофей
Как играть в игру на Android-устройстве?
Forest Assassin также доступна для устройств Android, а на смартфоне пользователь ощутит ощущения классической игры-платформеров.Так что, пожалуйста, скачайте игру и поделитесь своим опытом.
- Для перемещения используйте кнопки со стрелками [ВЛЕВО] и [ВПРАВО]
- Используйте кнопку со стрелкой [ВВЕРХ] для прыжка
- Используйте кнопку [МЕЧ] для атаки
- Чтобы закончить игру, соберите все монеты и трофей
Как создать 2D платформер с помощью Unity3D?
Игровой движок Unity3D — отличная платформа для создания 2D- или 3D-игр, поскольку он предоставляет множество основных компонентов, таких как физика, анимация, кроссплатформенная поддержка и многое другое.И прежде чем приступить к созданию игр любого типа, первое, что вам нужно сделать, это разработать теорию игры, что означает, что вам нужно построить идею, лежащую в основе игры, которая поможет вам разработать успешную игру, и всегда старайтесь помнить при разработке Теория игр упрощает и не усложняет, иначе вам будет довольно сложно закончить игру.
Если мы увидим пример легендарной игры T-Rex, в которую вы часто играете в браузере Google Chrome, когда у вас нет подключения к Интернету, и эта игра является лучшим примером 2D-платформерной игры, и если вы посмотрите на игру то вы заметили, что игра очень проста и в нее легко играть. Все, что вам нужно сделать, это нажать клавишу ПРОБЕЛ на клавиатуре, чтобы избежать препятствий и заработать очки.
Похожему подходу я придерживаюсь и при разработке этой игры. В самом начале моей целью было создать простую 2D платформерную игру, чтобы пользователи любого типа могли играть и получать удовольствие, а также это должно помочь мне при создании этой игры.
Forest Assassin Game Theory
Есть король, который охотится за сокровищами, и во время своей миссии он столкнется с множеством врагов, и для завершения игры будет 3 минуты.
И это вся теория, лежащая в основе моей игры, и вам также следует придерживаться аналогичного подхода при создании своей игры.
Итак, теперь давайте обсудим, какие инструменты и методы используются в игре Forest Assassin?
Инструменты и методы
В каждой 2D-платформерной игре есть много компонентов, которые нам нужно создать, чтобы закончить игру, и эти компоненты являются основными элементами каждой платформерной игры.
- Движение персонажа
- Смерть персонажа
- Атака персонажа
- Счетчик очков
- Таймер
Итак, теперь давайте обсудим, как я внедрил все эти компоненты в свою игру один за другим.
Движение персонажа
Чтобы перемещать персонажа в игре, вам нужен скрипт, который будет управлять персонажем, чтобы ходить, прыгать, ползать и т. Д., А также требует физики.
Для управления физикой Unity предоставляет компонент под названием Rigidbody, который обрабатывает множество фундаментальных вопросов физики, таких как сила и ускорение, и этот компонент вы можете использовать с чем угодно, что вы хотите взаимодействовать с физикой.
Наконец, для этого требуется этаж, по которому персонаж может ходить, и в Unity это называется компонентом Collider, и доступно множество различных типов коллайдеров, таких как Box Collider, Circle Collider и т. Д.
Когда у вас есть все эти элементы, вы можете перемещать своего персонажа.
Смерть персонажа — (Игра окончена)
В этой игре персонаж может умереть только тогда, когда он коснется врага или воды, и для обработки триггера между коллайдером Unity имеет API под названием OnTriggerEnter2D (триггер Collider2D) который будет обрабатывать триггер между коллайдером, а после коллайдера он отправит сообщение параметру Collider2D, которое мы можем использовать для принятия решения о смерти нашего персонажа.
И чтобы все было организовано, я назначил имя тега «Enemy», чтобы в будущем, если я добавлю еще одного врага, все, что мне нужно сделать, это присвоить это имя тега этому компоненту, и он будет обрабатываться через скрипт.
Атака персонажа
Атака персонажа — самый важный элемент в каждой игре, потому что именно так вы выигрываете игру, и при создании этого компонента вам нужно понимать две вещи, во-первых, это анимацию, а во-вторых, сценарий атаки.
Чтобы сделать анимацию в 2D, сначала вам нужно собрать все спрайты и добавить их в компонент анимации и создать свою анимацию, а затем вы можете использовать ее через скрипт.
При написании сценария атаки нам нужно знать несколько вещей, таких как дальность атаки и точка атаки, потому что очень важно, из какой позиции персонаж будет устанавливать свой вектор атаки, а в этой игре меч является нашим вектором атаки, поэтому, когда персонаж использует свой меч для атаки врага, тогда нам нужно знать дальность и точку атаки, чтобы мы могли успешно начать атаку.
Для вычисления диапазона атаки и точки Unity имеет API под названием Physics2D.OverlapCircleAll, он вернет список коллайдеров, которые попадают в круговую область, и когда мы получим все коллайдеры, все, что нам нужно сделать, это запустить цикл и в пределах цикл уничтожения вражеского игрового объекта.
И для большей ясности нашей атаки я создал систему частиц крови, которая будет появляться при каждой смерти врага.
Счетчик очков
Если вы понимаете две вышеупомянутые техники (смерть персонажа и атака персонажа), то реализовать функцию подсчета очков довольно просто, поскольку нам нужно следовать аналогичному подходу.Когда персонаж и золотые монеты сталкиваются друг с другом, я вычисляю оценку до +10 с помощью скрипта, и снова здесь я также использую API OnTriggerEnter2D (триггер Collider2D).
Для отображения счета в игре я использовал компонент Text UI, который входит в UnityEngine.UI.
И одна и та же переменная оценки используется во всех трех компонентах («Вы выиграли», «Игра окончена» и «Время окончилось»).
Таймер
Для реализации функций таймера Unity имеет API под названием StartCoroutine, который используется для создания параллельного действия и может приостановить текущее выполнение, а затем продолжить с того места, где оно было остановлено, и все функции сопрограмм объявляются с возвращаемым типом IEnumerator с оператором yield return.
В этой игре я установил таймер на 3 минуты, и когда игра начнется сразу же, она запустит функцию сопрограммы и вычислит таймер, а когда таймер достигнет нуля, он вызовет функцию StopCoroutine.
И снова я использовал компонент Text UI для отображения времени в игре.
Как опубликовать для WebGL?
Unity имеет опцию сборки WebGL, которая позволяет публиковать контент в виде программ Javascript, а внутри он использует HTML5 / JavaScript, WebAssembly, рендеринг WebGL.
В современных веб-браузерах по умолчанию включен WebGL, и очень полезно запускать приложение Unity WebGL в браузерах.
Чтобы запустить приложение WebGL, нам нужно запустить локальный сервер, и в этой игре у меня в качестве сервера используется Node.js, но вы также можете использовать любые другие языки сценариев.
Открытый исходный код
Я сделал полную разработку с открытым исходным кодом на моем Github, чтобы вы имели четкое представление о каждом компоненте этой игры, а также я надеюсь, что это подскажет вам идею создания собственной игры.
Итак, это общее объяснение игры Forest Assassin. Надеюсь, вы поняли инструменты и методы, лежащие в основе этой игры. Если вы обнаружите какие-либо проблемы, пожалуйста, не стесняйтесь поднимать вопрос на Github.
Наслаждайтесь игрой, а также поделитесь этой игрой со своими друзьями.
Спасибо и удачного кодирования 🙂
Full Unity 2D Game Tutorial 2019
Поделиться — это забота!
Unity 2D Game Tutorial
Это наша цель на конец проекта.
Unity 2D Game Tutorial — Tutorial Goals
Цель этого руководства — помочь вам создать 2D-игру в Unity 2019.Это будет охватывать все аспекты от настройки проекта, добавления сущностей, элементов управления игроком и до публикации игры на Itch.io. В этом руководстве мы будем использовать последнюю (на момент написания) версию Unity 2019.1.0a13.
Unity 2D Game Tutorial — Необходимые инструменты
Первое и единственное, что вам понадобится для этой части руководства, — это Unity Hub, который можно скачать здесь. Я скачал Unity Hub и установил версию 2019.1.0a13.
Unity 2D Game Tutorial — Настройка проекта
После того, как вы скачали единый хаб и установили единство, вы можете нажать кнопку + новый в правом верхнем углу единства хаба, чтобы создать новый проект.
Это приведет вас к окну настроек проекта, показанному ниже
Возможные варианты:
- Название проекта
- Это название проекта (Ду!)
- Расположение
- Здесь вы хотите создать папку, в которой будут размещаться файлы вашего проекта.
- Организация
- Это собственник проекта
- Версия Unity
- Здесь вы устанавливаете, какую версию единства вы хотите создать с помощью
- Здесь мы можем установить тип проекта
- 2D — плоская 2-мерная игра
- 3D — 3D игра
- 3D с дополнительными функциями — 3D с большим количеством перьев, уже настроенных
- High Definition RP — это идет с конвейером рендеринга высокой четкости
- VR облегченный RP — это для создания игр VR с конвейером рендеринга VR
- Здесь мы можем установить тип проекта
Шаблон
Для получения дополнительной информации о типах проектов посетите https: // docs.unity3d.com/Manual/ProjectTemplates.html
На данный момент мы создадим новый 2D-проект с настройками, показанными на изображении выше. После этого Unity должен открыться с макетом, как на изображении ниже.
Unity 2D Game Tutorial — Window Layout
Прежде чем мы продолжим, давайте посмотрим, что мы представили нам в Unity IDE при создании нового проекта.
На изображении выше мы видим, что первое окно — это окно иерархии. В этом окне есть SampleScene и основная камера.Это список всех объектов, существующих в нашем 2D-мире. Сцена (SampleScene) — это контейнер, в котором хранятся все объекты нашего мира. Думайте об этом как о главе в пьесе. Первая глава — это введение (наше меню), вторая глава — это этаж (наша игра), а третья и последняя глава — это финал (наш конечный экран).
В нашей сцене у нас есть камера. Нам нужна камера, чтобы представлять игрока за экраном или телефоном, или что-то еще, что они используют для игры. Без камеры у нас нет возможности представить мир игроку.По сути, это глаза человека, который будет играть в игру.
Далее у нас есть окно проекта, в котором есть папка с ресурсами и папка с пакетами. Здесь будут размещены все файлы для нашей игры. Все наши изображения, скрипты, префабы объектов, материалы, инструменты и т. Д.
Следующим окном является вид сцены. Это позволяет нам увидеть наш 2D-мир как разработчика. Здесь мы можем видеть все наши игровые объекты и взаимодействовать с ними, используя такие инструменты, как перемещение, захват и вращение.Сюда мы переместим игрока, декорации, камеру и т. Д.
Console — это следующее окно и ценный инструмент. Здесь мы увидим все проблемы, которые происходят в игре. Если мы забудем установить размер плеера или не добавим изображение для нашего плеера, мы получим здесь уведомление.
Последнее отображаемое окно — это инспектор. Это позволяет нам проверять свойства выбранного объекта. Если мы щелкнем по камере в режиме просмотра сцены, мы увидим все свойства камеры в режиме просмотра инспектора.Здесь мы также сможем изменить значения.
Последнее окно, которое не показано на изображении выше, — это окно игры. Это вкладка рядом с заголовком представления сцены. Это окно покажет нам игру такой, какой ее видит игрок. Мы не сможем ничего изменить, но мы сможем испытать проект, как это сделал бы игрок.
Unity 2D Game Tutorial — Project Download
Если вы хотите загрузить пустой проект, чтобы следовать вместе с будущими учебными пособиями, вы можете загрузить проект отсюда. Полное руководство по 2D-игре Unity Project
Часть 2 — Движение игрока
Поделиться — это забота!
Взгляды:
14 356
Создайте свою первую 2D-игру в Unity — Zenva Academy
Создайте свою первую достойную портфолио игру в Unity, исследуя мир 2D-платформеров! В этом курсе вам покажут, как создать платформер с нуля, одновременно улучшая свои навыки работы с Unity и C #.Вы не только узнаете, как настраивать игроков, предметы коллекционирования, врагов, уровни и многое другое, но и получите ключевые навыки, которые сможете использовать в будущих игровых проектах независимо от жанра.
Вы узнаете, как:
- Реализовать объекты игрока и врага
- Скрипт движений в стиле платформеров
- Создавать уровни с помощью 2D-плиток
- Настроить коллекционные предметы и набрать очки
- Управлять ходом игрового процесса с целями
- Создать пользовательский интерфейс для оценок и меню
… и многое другое!
Обучение с сертифицированными инструкторами
Эта учебная программа была разработана сертифицированным инструктором Unity в сотрудничестве с сертифицированными программистами Unity, , которые были отмечены Unity Technologies за продемонстрированное превосходство в навыках и обучении Unity.
Как авторизованный партнер по обучению , курсы Zenva соответствуют самым высоким стандартам как с точки зрения качества, так и с точки зрения актуальности.
Охватываемые фреймворки и инструменты: Unity 2020.1
Your Courses, Your Way
Все наши проектные курсы разработаны для обеспечения гибкости — вы можете получить доступ к курсам 24/7, чтобы они соответствовали вашему расписанию выберите учебные материалы, которые вам больше всего подходят.
Вы даже можете загрузить свои учебные видеоролики и смотреть их в автономном режиме с помощью приложения Zenva , доступного для iOS и Android.
Учитесь у инструкторов мирового класса
Наши преподаватели участвуют в элитных программах для разработчиков и были отмечены за продемонстрированное превосходство в разработке и обучении.
Таким образом, вы можете быть уверены, что изучаете самую последнюю информацию от отраслевых экспертов.
Интерактивные уроки с Codemurai
Наш пакет неограниченного доступа включает бесплатный доступ к всем курсам в нашем мобильном приложении Codemurai !
Доступный для iOS и Android, он полон интерактивных уроков и упражнений по программированию, так что вы можете продолжить обучение в дороге.
Достигайте реальных результатов
Наше сообщество, состоящее из более чем 1 000 000 учащихся и разработчиков, использовали полученные у нас навыки для публикации своих собственных игр и веб-сайтов, получения работы своей мечты и даже открытия собственного бизнеса — и у вас есть потенциал для этого. такой же!
Узнайте, что думают наши ученики, ниже:
Мне нравятся лекции, краткие цели курса и то, как они не только учат вас достаточно, чтобы начать работу, но и готовят к более сложным материалам в будущем.
⭐⭐⭐⭐⭐
— Михир Патель
С Zenva я начал изучать более точный способ подхода к проблемам и разработки решений. Он полон интересных тем, которые я люблю изучать вместе с моей работой.
⭐⭐⭐⭐⭐
— Моника Манкузи
Я выбрала Zenva из-за большого выбора тем и того факта, что я могу выбирать, какие курсы я хочу посещать, когда захочу.