Как создать игру на unity, 2d

Замена элементов 1

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

Но для этого нужна дополнительная работа со скриптами. Вначале нужно выбрать элемент.

Откройте Tile.cs в редакторе кода. Для удобства скрипт уже содержит несколько переменных и два метода: Select и Deselect.

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

Чего недостает, так это возможности для игрока взаимодействовать с элементами.

Левый клик мыши представляется подходящей опцией управления.

В Unity присутствует встроенный метод MonoBehaviour: OnMouseDown.

Добавьте следующий метод в Tile.cs,  ниже метода Deselect:

void OnMouseDown() {// 1
if (render.sprite == null || BoardManager.instance.IsShifting) {
return;
}

if (isSelected) { // 2 Is it already selected?
Deselect();
} else {
if (previousSelected == null) { // 3 Is it the first tile selected?
Select();
} else {
previousSelected.Deselect(); // 4
}
}
}

  1. Удостоверьтесь, что игра позволяет выбирать элементы. Пользователям не всегда это нужно, например, когда игра заканчивается, или когда элемент пустой, это лишнее.
  2. Оператор if (isSelected) определяет, когда выбирать или не выбирать элемент.
  3. Проверьте, выбран ли еще какой-то элемент. Когда у компонента previousSelected нулевое значение, он — первый, поэтому выберите его.
  4. Если он не первый, отмените выбор всех других элементов.

Сохраните скрипт и вернитесь в редактор.

Теперь у вас должна быть возможность выбора/отмены элементов кликом левой кнопки мыши.

Теперь можно добавить механизм замены.

2017

Это год двух самых ярких платформеров последнего десятилетия: Cuphead и Hollow Knight. Оба создавались на Unity небольшими независимыми командами. Игры продались тиражом 5 и 1 млн копий соответственно.

В этом же году случился ошеломительный дебют российской команды Owlcat Games — они выпустили Pathfinder: Kingmaker после успешной Kickstarter-кампании. Это проект, после которого заговорили о «восставшем из пепла» отечественном геймдеве. Последним заметным российским проектом можно было назвать разве что «King’s Bounty. Легенду о рыцаре» и «Космических рейнджеров» от почившей Katauri Interactive.


Игроки настольных ролевых игр знают, что все хорошие истории начинаются в таверне
В игре есть всё, что нужно ролевику по D&D: детальное создание персонажа, вручную нарисованные портреты, выбор между Lawful Good и Chaotic Evil

По данным App2Top, игра продалась тиражом 500 000 копий только в Steam. У Pathfinder: Kingmaker крепкое комьюнити и хорошая репутация — это позволило студии провести вдвое более успешную кампанию на Kickstarter для разработки сиквела и собрать $2,3 млн против $900 тысяч за первую часть.

Что такое Unity

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

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

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

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

Создание новых игровых объектов

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

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


Одинаковые деревья-шаблоны

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

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

Окно редактора разделено на несколько разделов. Мы расскажем об этом очень кратко, так как будем постоянно к нему обращаться на протяжении всей статьи. Если вы уже знакомы с этим, пропустите мимо!

Просмотр сцены: позволяет размещать и перемещать игровые объекты в сцене.

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

Инспектор: предоставьте подробную информацию о выбранном GameObject в сцене.

Assets / Project: здесь хранятся все префабы, текстуры, модели, скрипты и т. Д.

Иерархия: позволяет вложение и структурирование игровых объектов внутри сцены.

Теперь мы готовы начать!

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

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

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

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

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

2016

Unity сохраняет за собой звание самого популярного движка для создания платформеров и повествовательных игр: в этом году появляется стильная Inside от авторов Limbo, выходит Oxenfree — очень атмосферная мистическая история о подростках. Российская компания Alawar делает Beholder — необычную стратегию, где вы, играя за управляющего многоквартирным домом, должны собирать компромат и писать доносы на жильцов.

Но одним из самых коммерчески успешных проектов года стал выход Superhot — необычного шутера, в котором время двигается только вместе с движением героя. Игру сделала небольшая команда из Польши. Поначалу это был прототип, созданный на гейм-джеме 7 Day FPS Challenge. Когда разработчики поняли, что их игрой интересуются, они запустили кампанию на Kickstarter и набрали нужную сумму за 24 часа. Кстати, сумма была относительно небольшой, всего $100 000.

Superhot — головоломка, которая при этом остаётся шутером

CryEngine

Движок, созданный немецкой студией Crytek, автором Far Cry и Crysis. С 2004 года CryEngine обзавёлся несколькими итерациями, и его технические возможности улучшаются до сих пор. Чтобы в этом убедиться, достаточно сравнить первую часть Far Cry и современный MMO-шутер Hunt: Showdown. После выхода Crysis фотореалистичные шутеры от первого лица стали визитной карточкой технологии, однако движок подходит и для разработки игр в других жанрах, а также для неигровых проектов.

Разработчики CryEngine практикуют подход What You See Is What You Get — «что видишь, то и получишь». Когда разработчик создаёт в редакторе CryEngine Sandbox сцену и переносит её в игру, она выглядит и работает так, как задумано, и ей не требуются дополнительные правки. В 2016 году Crytek открыла доступ к исходному коду движка, чем воспользовались многие студии. Например, Warhorse Studios сильно модифицировала CryEngine для разработки ролевой игры Kingdom Come: Deliverance. Известно, что все актуальные части серии Far Cry, права на которую сейчас принадлежат Ubisoft, сделаны на движке Dunia Engine, а в его основе находится как раз CryEngine.

Презентационный трейлер движка


Скриншот из Hunt: Showdown — игры, созданной на CryEngine. Скриншот: Hunt: Showdown / Steam

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

  • мультиплатформенность (Windows, Linux, PlayStation 4, Xbox One, Oculus Rift, OSVR, PSVR, HTC Vive), в будущем возможно портирование на Android — сейчас идёт бета-тестирование;
  • огромный выбор инструментов «из коробки»;
  • подходит для масштабных игр AAA-уровня, особенно для игр с видом от первого лица;
  • у перспективных проектов (в том числе неигровых) есть возможность получить кастомную лицензию.

Недостатки:

  • не так популярен, как его конкуренты Unity 3D и UE4;
  • сложно найти специалистов по движку из-за небольшого размера комьюнити;
  • если проекту требуется функциональность, расширенная в сравнении с той, что есть в «коробке», большинство сетевых модулей и инструментов придётся создавать с нуля: по словам разработчиков, то, что представлено в GameSDK, либо устарело, либо перегружено лишними функциями.


Скриншот из Kingdom Come: Deliverance — игры, созданной на CryEngine. Скриншот: игра Kingdom Come: Deliverance / Steam

Игры на движке: Kingdom Come: Deliverance, Deceit, Evolve, Prey, Hunt: Showdown.

«С CryEngine тяжело работать, если нужно создать динамичный шутер. Его физический движок не подходит для такой концепции. Также не стоит делать на его основе сложные RPG. Инструменты разработки недостаточно гибкие, и вам потребуется много ресурсов, чтобы построить все основные системы с нуля. <…> На данный момент сообщество CryEngine совсем небольшое, но очень отзывчивое. Большинство специалистов хорошо осведомлены о различных аспектах разработки, так как сами знакомы с движком ещё со времён моддинга Crysis. Кроме того, разработчики технологии часто делятся своими знаниями в Discord и тематических статьях

Дмитрий Шевченко, тимлид студии TALLBOYS (Pandemic Express).

«What is the best game engine: is CryEngine right for you?», январь 2020 года


Скриншот из Pandemic Express — Zombie Escape — игры, созданной на CryEngine. Скриншот: игра Pandemic Express / Steam

«Ключевая механика Deceit — смена дня и ночи в игре. С наступлением тьмы роли игроков меняются: „плохие парни“ становятся ещё ужаснее, что может напугать и ввести в замешательство „хороших“. CryEngine отлично подчёркивает эту атмосферу с помощью освещения и теней. <…> Динамика движка хорошо сочетается с итеративной разработкой, что помогает при нелинейных пайплайнах. В этом плане CryEngine значительно выделяется на фоне конкурентов. Арт-отдел тесно сотрудничает с отделом геймдизайна на всех этапах проекта, чтобы настроить освещение и разместить объекты по ходу разработки. Это преимущество помогает тестировать различные идеи и стирать границы между концепцией, дизайном и фазами препродакшна.

<…> CryEngine отлично работает с рендерингом в реальном времени, позволяя изменять огромное количество визуальных эффектов на лету. Параллельная работа наших технических специалистов со SpatialOS (технология симуляции действий) даёт нам понимание того, что наиболее релевантно для игрока. Всё это помогает добиться в игре детализированности окружения без лишних нагрузок на «железо»».

Сэм Хиллс (Sam Hills), бывший комьюнити-менеджер Automaton Games (Deceit).

«Why Developers Choose CryEngine?», сентябрь 2018 года


Скриншот из Deceit — игры, созданной на CryEngine. Скриншот: игра Deceit / Steam

Лучшие бесплатные пакеты в Asset Store

Как уже было упомянуто в начале, разработчики Юнити добавляют новые модули, которые изначально отсутствуют в базовой версии. Скачать их можно из Asset Store, многие пакеты бесплатно. И с их помощью будет проще делать игры в формате 2D. Итак, список лучших бесплатных пакетов в Unity:

  • TextMesh Pro. Этот модуль предназначен для редактирования текстовых элементов. В Юнити вам придется много работать с такими элементами, без них мало какая игра обходится. Среди достоинств этого модуля для Unity – улучшенный рендеринг, множество динамические визуальные стили, оптимизированные инструменты для верстки. Если в вашей версии Unity этого модуля нет, смело скачивайте, при работе с 2Д игрушками он точно пригодится.
  • 2D Sprite Pack. Пакет представляет собой набор спрайтов, которые пригодятся в разработке прототипов в 2Д. В Юнити спрайты – основа практически каждой игры, поэтому стоит скачать пакет для упрощения работы.
  • Anima 2D. Если ваша игра содержит скелетную анимацию, этот пакет для Unity поможет ускорить работу с ней. В последних версии программы утилита включена в базовый набор, но если вы установили более старую версию Unity, стоит скачать пакет дополнительно.
  • Post Processing Stack. Если вы хотите игрушку создать как профи, не обойтись без этого стека. Он покажет свои возможности при постобработке игры. С его помощью вы сможете применить полный набор эффектов, и ваша 2Д разработка станет по-настоящему зрелищной и интересной. Но нужно учитывать, что при добавлении эффектов в проект Unity для смартфонов и планшетов, устройства снижают производительность. Тут главное – найти баланс между зрелищностью и потреблением ресурсов.
  • Standard Assets. Обязательный пакет для новичков, осваивающих разработку 2D игрушек. Содержит большой набор скриптов, ассетов и сцен для Unity, которые точно пригодятся при изучении возможностей программы.

Это не полный перечень бесплатных пакетов для Юнити, которые используют и новички, и более опытные разработчики 2Д игрушек. Но перечислены наиболее полезные. Конечно же, зайдя в Asset Store, хочется скачать вообще все, что там есть, потому что каждый пакет по-своему интересен. Но остановитесь вовремя, осваивайте новые возможности постепенно. Что же касается установки других утилит – сделать это можно в любой момент.

Управление игровыми объектами

Когда у нас есть пользовательский ввод, мы хотим, чтобы GameObject в нашей сцене отреагировал. Мы можем рассмотреть несколько типов ответов:

  • Перевод, вращение, масштаб
  • Создать новые GameObjects
  • Отправка сообщений существующим GameObject / компонентам

Трансформации

Все GameObjects имеют свойство transform, которое позволяет выполнять различные полезные манипуляции с текущим игровым объектом.

Вышеупомянутые методы довольно понятны , просто обратите внимание, что мы используем gameObject в нижнем регистре для ссылки на GameObject, которому принадлежит этот конкретный экземпляр компонента. В общем, рекомендуется использовать локальное , а не глобальное положение / поворот объекта. Обычно это упрощает перемещение объектов разумным образом, поскольку ось локального пространства будет ориентирована и центрирована на родительском объекте, а не на мировом начале координат и направлениях x, y, z

В общем, рекомендуется использовать локальное , а не глобальное положение / поворот объекта. Обычно это упрощает перемещение объектов разумным образом, поскольку ось локального пространства будет ориентирована и центрирована на родительском объекте, а не на мировом начале координат и направлениях x, y, z.

Преимущества локального пространства станут немного более очевидными с диаграммой!

Если вам нужно преобразовать между локальным и мировым пространством (что часто бывает), вы можете использовать следующее:

Как вы понимаете, за этим стоит довольно простая линейная алгебра, на которую намекает «Обратный» в имени метода.

Создание новых игровых объектов

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

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

Как выглядит префаб на вкладке Asset

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

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

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

Затем мы можем выполнить «создание экземпляра» префаба и манипулировать им в желаемом месте сцены и установить необходимые родительские отношения.

Настройка триггеров

Для понимания сути триггеров важно усвоить, что такое коллайдер (Collider). Это компонент, который присваивается объекту в пространстве игры, задает форму и делает его твердым, недоступным для прохождения сквозь него

Например, если мы разместим монетку в 2D-пространстве и захотим сделать так, чтобы она упала на платформу, то без использования компонента Collider ничего не получится — монетка пролетит сквозь платформу.

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

Так объекты обязательно соприкоснутся и монета встанет на платформу.

Триггер (Trigger) — это пространство на карте, при попадании объекта в которое происходит действие; он тоже обводит объект или область в пространстве по краям. По сути, это тот же коллайдер, только триггер позволяет объектам проходить внутрь этой области. Представьте, что на ту же самую платформу вместе с коллайдером наброшен триггер, и при попадании персонажа внутрь триггерной области активируется телепорт — персонажа перебрасывает в другую точку карты.

Чтобы создать триггер, нужно накинуть тот же самый компонент коллайдера, но поставить галочку Is Trigger.

Триггеры распознают три варианта взаимодействия области на карте и объекта:

  • OnTriggerEnter — объект зашел в зону;
  • OnTriggerStay — объект находится в зоне;
  • OnTriggerExit — объект покинул зону.

Настройка среды в Unity

Начнем с самого простого: загрузки и настройки Unity.

Загрузите последнюю версию с официального сайта или торрента и запустите установочный файл.

Полезно знать: невозможно использовать отладчик Visual Studio 2013 Express с Unity. Вы должны иметь Pro версию Visual Studio и купить плагин. С версией Express, вы будете иметь лучший редактор кода, но отсутствие отладчика сведет на нет все его достоинства.

Mac OS X

— существенно лучше, чем старый MonoDevelop 2 в предыдущих версиях Unity. Он, конечно, далек от совершенства, но ничего лучшего под на Mac не придумано.

На каком языке программировать в Unity?

Unity позволяет кодировать на трех языках: JavaScript, C# и Boo. Рекомендую использовать C# — он более мощный и проще.

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

Вот несколько ссылок, которые могут быть вам полезными:

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

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

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

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

Как стать разработчиком на Unity

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

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

Это важно как и на протяжении самой работы, так и при изучении C#.. К тому же, владение языком программирования это как раз-таки самый сложный этап в освоении профессии

Пошаговый план действий:

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

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

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

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

Переменные инспектора (Inspector)

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

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

2019

Последний год, по которому можно подвести итоги. Вышла Phoenix Point — игра от создателя серии тактических стратегий X-COM, сделанная в том же жанре. Игра собрала нужный бюджет ($765 тысяч) с помощью краудфандинга, а сделка на годовую эксклюзивность с Epic Games Store, по слухам, принесла разработчикам $2 млн — это деньги без учёта прибыли от продаж.

Но наиболее заметным проектом стала не игра от культовых фигур геймдева, а неожиданный проект японского актера Маси Ока и его студии Mobius Digital — инди про исследование космоса Outer Wilds.


Маси Ока известен по роли Хиро Накамура в фантастическом сериале «Герои: Возрождение»

Игру называли удачным сочетанием исследований неизведанного космоса в духе No Man’s Sky и детективного расследования, как в Return to the Obra Dinn.

Трейлер игры с демонстрацией геймплея: каждая планета миниатюрной Солнечной системы, в отличие от No Man’s Sky, была создана вручную

Hollow Knight

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

Первые концепты 2D-платформера Hollow Knight появились на геймджеме Ludum Dare 27. Австралийские разработчики — Ари Гибсон и Уильям Пеллен — стали развивать свои идеи, зародившиеся на хакатоне, и запустили кампанию на Kickstarter. Собрав 57 тысяч долларов, они основали студию Team Cherry.

PC: 87

PS4: 85

XONE: 90

NS: 90


Скриншот: игра Hollow Knight / Team Cherry

Hollow Knight — метроидвания, события которой происходят в подземном городе жуков. Вымышленный мир устроен как большой лабиринт со множеством секретов, неожиданных проходов и постоянных препятствий. Геймплей жанра завязан на бэктрекинге: главный герой изучает мир, приобретает новые способности, а затем возвращается в старые уровни, чтобы найти этим способностям применение.

«Мы не задумывались о жанре нашей игры, не хотели загонять себя в жанровые рамки. Некоторые механики были взяты из Metroid и Mega Man, система амулетов — из Paper Mario. Мы не слишком беспокоились о том, чтобы Hollow Knight была именно метроидванией, просто пытались создать захватывающее приключение. Мы наполняли мир интересными персонажами в непривычном сеттинге, добавляли точки интереса и связи, сюрпризы и неожиданные события».

Ари Гибсон,создатель Hollow Knight

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


Скриншоты: игра Hollow Knight / Team Cherry
Скриншоты: игра Hollow Knight / Team Cherry
Скриншоты: игра Hollow Knight / Team Cherry

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

«Главный герой — самый обычный жук, посвящённый в рыцари. Внешность персонажа состоит из множества технических ограничений, которые иногда полезны для творчества. Надев на жука маленький плащ, игрок не сможет увидеть его конечности. Мы просто попытались создать что-то простое, потому что, каким бы ни был ваш герой, вы будете рисовать его тысячу раз. Минимализм — безусловно — помогает разработке».

Уильям Пеллен,создатель Hollow Knight

Team Cherry создала отличительный визуальный стиль из нарисованных от руки рисунков и традиционной анимации, сделанной в Photoshop. Вместо сложных 3D-систем освещения разработчики использовали мягкие прозрачные формы. Команда создавала уровни с помощью 2D-активов, наложенных на 3D-среду, используя двухмерную физику, упаковщик спрайтов и систему частиц из набора инструментов из магазина ассетов.


Ассеты Unity, нарисованные Ари Гибсоном. Скриншот: PCGamer

Студия активно использовала Unity Asset Store — внутренний магазин, в котором разработчики выкладывают в общий доступ бесплатные и платные ассеты. Движок поддерживает большинство популярных форматов файлов. Модели, звуки, текстуры, материалы и скрипты можно запаковывать в формат .unitypackage и передавать другим разработчикам или выкладывать в магазине ассетов.

Трейлер Hollow Knight: Silksong

С момента релиза в 2017 году Hollow Knight продалась тиражом свыше трёх миллионов копий. Team Cherry развивают франшизу: вышло четыре бесплатных DLC, анонсирован сиквел с подзаголовком Silksong. Главным героем продолжения станет Хорнет, которую игроки уже встречали в оригинале.

Cities: Skylines

Cities: Skylines — градостроительный симулятор, разработанный студией Colossal Order, до этого известной по двум транспортным симуляторам Cities in Motion. Издателем выступила Paradox Interactive, специализирующаяся на глобальных стратегиях — например, Europa Universalis и Crusader Kings.

Игровой процесс Cities in Motion основан на строительстве и менеджменте транспортных сетей. Опыт разработки подобных симуляторов оказал влияние на Cities: Skylines. Colossal Order детально проработала системы проектирования дорог и городской трафик. Всё как в жизни: скажем, пробки — одна из главных трудностей виртуальных и реальных градостроителей.

PC: 85

PS4: 81

XONE: 81

Проектировщик городов строит свой город в Cities: Skylines

Разработчики создали сложную систему имитации передвижения горожан с учётом имеющихся дорог и общественного транспорта. Система определяет наиболее быстрый маршрут и позволяет с большой точностью анализировать эффективность городского транспорта. Cities: Skylines стала инструментом градопланирования.


Скриншоты: игра Cities: Skylines / Colossal Order
Скриншоты: игра Cities: Skylines / Colossal Order
Скриншоты: игра Cities: Skylines / Colossal Order

Игра открыта для модификаций — встроенный интерфейс API позволяет создавать моды на языке С#. Подробнее про моды мы писали в другом нашем материале.

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

Мариина Халликайнен,CEO Colossal Order

За первые четыре года с момента релиза Cities: Skylines купили свыше шести миллионов игроков. К игре вышло 33 платных и бесплатных DLC. Команда Colossal Order энергично поддерживает сообщество — часть дополнительного контента разрабатывали его активные участники. Например, Content Creator Pack: Art Deco создал известный моддер Мэтт Shroomblaze Круз. Часть прибыли от продаж дополнения получает его создатель.

Геймдизайнер Каролина Корппо показывает созданные игроками города в Cities: Skylines

«С помощью Frame Debugger в Unity Editor мы быстро выявляем и устраняем проблемы с нашим рендерингом, построенным поверх пайплайна рендеринга Unity. Контроль над плагинами движка и дополнительными сборками помог нам навести порядок в структуре проекта, ведь с его помощью можно „пометить“ их платформу и архитектуру».

Дамьен Морелло, программист Cities: Skylines

обложка: официальный арт к игре Hollow Knight / Team Cherry

Доступ к другим игровым объектам и компонентам

Часто нам нужно взаимодействовать с другими GameObject, а также с их ассоциированными компонентами. Если у вас есть ссылка на игровой объект, это довольно просто.ComponentName comp = some_game_object.GetComponent <ComponentName> ();

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

Доступ через переменную инспектора

Это самый простой способ. Просто создайте общедоступную переменную для GameObject, как мы продемонстрировали ранее с префабами, и вручную перетащите ее на компонент через инспектор. Затем перейдите к переменной, как указано выше.

Доступ через теги

Мы можем пометить GameObjects или prefabs через инспектор, а затем использовать функции поиска игровых объектов, чтобы найти ссылки на них.

Это просто делается, как показано ниже.GameObject some_game_object = GameObject.FindGameObjectWithTag («Кирпич»);

Доступ через преобразование

Если мы хотим получить доступ к компонентам в каком-либо родительском объекте, мы можем легко сделать это с помощью атрибута transform.ComponentName comp = gameObject.transform.parent.GetComponent <ComponentName> ();

Доступ через SendMessage

В качестве альтернативы, если мы хотим отправить сообщение многим другим компонентам или хотим отправить сообщение объекту, который находится далеко вверх по вложенной иерархии, мы можем использовать функции отправки сообщения, которые принимают имя функции, за которым следуют аргументы.gameObject.SendMessage («MethodName», параметры); // Трансляция сообщениеgameObject.SendMessageUpwards («ИмяМетода», параметры); // Получено только компонентами, вложенными выше.

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

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

Adblock
detector