Как стать автором
Поиск
Написать публикацию
Обновить
33.68

Unity *

Инструмент разработки 2D/3D-игр

Сначала показывать
Порог рейтинга
Уровень сложности

Передача данных между сценами в Unity — применение мультисценности в разработке простых игр

Время на прочтение2 мин
Количество просмотров47K
Данная статья будет полезна начинающим разработчикам игр. В ней я расскажу о собственном опыте реализации мультисценного взаимодействия и проблемах с которыми я столкнулась.

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

Особенности работы с Mesh в Unity

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

Борьба с подобными трудностями навела нас на мысли об автоматизации и написании статей на эту тему. Большая часть материала коснется работы с Unity 3D, поскольку это основное средство разработки в Plarium Krasnodar. Здесь и далее в качестве графического контента будут рассматриваться 3D-модели и текстуры.

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

Читать дальше →

Книга «Unity в действии. Мультиплатформенная разработка на C#. 2-е межд. издание»

Время на прочтение8 мин
Количество просмотров38K
image Привет, Хаброжители! Второе издание «Unity в действии» было полностью переработано, чтобы познакомить вас с новыми подходами и идеями, позволяющими максимально эффективно использовать Unity для разработки игр. Больше внимания уделено проектированию двумерных игр, фундаментальные концепции которых читатель может применить на практике и построить сложный двумерный платформер. Эту книгу можно смело назвать введением в Unity для профессиональных программистов. Джозеф Хокинг дает людям, имеющим опыт разработки, всю необходимую информацию, которая поможет быстро освоить новый инструмент и приступить к созданию новых игр. А учиться лучше всего на конкретных проектах и практических заданиях.

Unity зачастую представляют как набор компонентов, не требующих программирования, что в корне неверно. Для создания успешной игры необходимо многое: великолепная работа художника, программистские навыки, интересная история, увлекательный геймплей, дружная и слаженная работа команды разработчиков. А еще нельзя забывать про безупречную визуализацию и качественную работу на всех платформах — от игровых консолей до мобильных телефонов. Unity объединяет мощный движок, возможности профессионального программирования и творчества дизайнеров, позволяя воплотить в жизнь самые невероятные и амбициозные проекты.
Осваивайте Unity и быстрее приступайте к созданию собственных игр!
Читать дальше →

Управление персонажем с помощью SharedEvents

Время на прочтение10 мин
Количество просмотров6.1K

Ссылка на проект

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

Добро пожаловать под кат!

Уведомление об изменении общего состояния SharedState в компонентах

Время на прочтение3 мин
Количество просмотров2K
В качестве продолжения к предыдущей статье об общем состоянии для компонентов, дальше развиваю тему и хочу реализовать фичу, которая позволит отлавливать и обрабатывать в каждом компоненте событие по изменению состояния (когда данные в общем состоянии изменяются в каком-то компоненте).

Ссылка на проект

Обычно для того, чтобы отследить изменение данных, в каком то компоненте, создается прямая связь, то есть мы, либо в методе Update проверяем, не изменились ли там данные


Пофреймовая проверка данных через метод Update
Читать дальше →

Мой путь начинающего разработчика игр

Время на прочтение4 мин
Количество просмотров11K

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


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

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

Что ж, начнем, пожалуй.

Наступил 2019 год, и я решил: «Пора заняться чем-то новым!» Сел на диван первого января, открыл YouTube, как обычно, и включил фоном какой-то видос, параллельно размышляя чем бы заняться. И вот мне в голову пришла великолепная мысль, которой я решил сразу же заняться. Я решил выучить новый язык программирования! До этого знал только Python (о нем чуть позже) и pascal, который никому был не нужен, только для решения того же ЕГЭ. Вот сел я значит за ноутбук и думаю «Какой бы язык выбрать?». Мой выбор пал на Java.
Читать дальше →

Управление состоянием и событиями между компонентами в GameObject

Время на прочтение5 мин
Количество просмотров9.4K

Управление состоянием и событиями между компонентами в GameObject


Ссылка на проект

Как известно всем, более или менее знакомых с платформой Unity, каждый игровой объект GameObject состоит из компонентов (встроенных или пользовательских, который обычно называют «скрипт»). Компоненты наследуются от базового класса MonoBehavior.



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



Т.е. в одном компоненте, для получения данных другого компонента, мы получаем последний с помощью метода GetComponent<…>(), например так:



В данном примере в переменную someComponent будет помещена ссылка на компонент типа SomeComponent.

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

Под катом много картинок
Читать дальше →

Релиз Unity 2019.1 beta

Время на прочтение4 мин
Количество просмотров8K
Вышла beta-версия Unity 2019.1, которая знаменует собой начало новейшего TECH стрима с множеством новых функций и возможностей. Это включает в себя больший контроль над редактором и улучшения как потенциальной скорости итерации при разработке для Android, так и рабочего процесса в целом.
Читать дальше →

Перемещение объекта по нажатии кнопки в Unity3d на C#

Время на прочтение2 мин
Количество просмотров93K
Доброго времени суток.

Сегодня поговорим про движение объекта по нажатию кнопки на экране в Unity3D. Эта тема очень проста, но часто используется в разного рода играх.
Читать дальше →

Оптимизируем производительность игры параметрами импорта звука Unity

Время на прочтение12 мин
Количество просмотров25K
image

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

Этот документ разделён на пять частей:

  1. Как звук влияет на производительность
  2. Разбираемся с параметрами импорта
  3. Рекомендуемые мной параметры для PC и консолей
  4. Рекомендуемые мной параметры для мобильных платформ
  5. Предостережения и замечания

Оптимизация параметров импорта звука Unity — один из простейших способов оптимизации. В случае небольшого проекта у вас может уйти меньше часа для достижения значительных улучшений во времени загрузки, занятой ОЗУ и других аспектах производительности. Надеюсь, это руководство окажется полезным для вас. Информация актуальна для Unity версии 2018.3
Читать дальше →

Профилируем Unity проект с Android Studio

Время на прочтение5 мин
Количество просмотров21K
Всем день добрый! Это статья о том, как профайлить Unity игры на Android с Android Studio. Я расскажу о том, как настроить Android Studio и получить максимальное кол-во данных. Вопросы анализа и выводов на основе полученного результата находятся вне рамок данной статьи.
Читать дальше →

Создаём эффект распространения цвета в Unity

Время на прочтение8 мин
Количество просмотров12K

На этот эффект меня вдохновил эпизод Powerpuff Girls. Я хотела создать эффект распространения цвета в чёрно-белом мире, но реализовать его в координатах мирового пространства, чтобы видеть, как цвет закрашивает объекты, а не просто плоско распределяется по экрану, как в мультике.

Эффект я создала в новом Lightweight Rendering Pipeline движка Unity, встроенном примере конвейера Scriptable Rendering Pipeline. Все концепции применимы и к другим конвейерам, но некоторые встроенные функции или матрицы могут иметь другие названия. Также я воспользовалась новым стеком постобработки, но в туториале опущу подробное описание его настройки, потому что о ней достаточно хорошо рассказывается в других руководствах, например в этом видео.
Читать дальше →

Просто о внутренних и внешних настройках для приложения в Unity3D

Время на прочтение15 мин
Количество просмотров8.8K

Введение


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

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

Примечание: весь описанный ниже код применим к версии Unity 2018.3+ и использует компилятор Roslyn (версия языка C# 7+).
Читать дальше →

Ближайшие события

Генератор подземелий на основе узлов графа

Время на прочтение11 мин
Количество просмотров29K
image

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

Введение


Алгоритм был написан как часть работы на получение степени бакалавра и основан на статье Ma et al (2014). Целью работы было ускорение алгоритма и дополнение его новыми функциями. Я вполне доволен результатом, потому что мы сделали алгоритм достаточно быстрым, чтобы использовать его во время выполнения игры. После завершения бакалаврской работы мы решили превратить её в статью и отправить на конференцию Game-ON 2018.

Алгоритм


Для создания уровня игры алгоритм получает в качестве входных данных набор полигональных строительных блоков и граф связности уровня (топологию уровня). Узлы графа обозначают комнаты, а рёбра определяют связи между ними. Цель алгоритма — назначить каждому узлу графа форму и расположение комнаты таким образом, чтобы никакие две формы комнат не пересекались, и каждая пара соседних комнат могла соединяться дверьми.

Архитектурные решения для мобильной игры. Часть 3: View на реактивной тяге

Время на прочтение11 мин
Количество просмотров4.8K


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

Вообще-то в ассетсторе есть готовая очень навороченная библиотека UniRX реализующая реактивность и инверсию контроля для unity. Но о ней мы поговорим в конце статьи, потому что этот могучий, огромный и соответствующий стандартам RX инструмент для нашего случая довольно таки избыточен. Делать всё что нам нужно прекрасно можно и не подтягивая RX-а, а если вы им владеете, вам не составит труда делать всё то же самое с его помощью.

Архитектурные решения для мобильной игры. Часть 1: Model
Архитектурные решения для мобильной игры. Часть 2: Command и их очереди
Читать дальше →

Создание игровых 3D-моделей «для бедных»: путь инди

Время на прочтение13 мин
Количество просмотров47K
Вы когда-нибудь задумывались о том, как работает небольшая инди-студия, занимающаяся разработкой видеоигр?

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

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


Сегодня мы расскажем о процессе создания персонажей для нашей игры «The end of the Sun». Имейте в виду, что показанные в статье скриншоты взяты из проекта, который пока находится в разработке.

Этот текст посвящён только статичным элементам персонажей: мы расскажем, как сканировали персонажа и одежду, как создавались дополнительные элементы, а также о том, как мы настроили движок Unity, чтобы получить такие скриншоты:
Читать дальше →

Работа с внешними ресурсами в Unity3D

Время на прочтение19 мин
Количество просмотров67K

Введение


Здравствуйте уважаемые читатели, сегодня речь пойдет о работе с внешними ресурсами в среде Unity 3d.

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

  • Текстовый файл
  • Файл текстуры
  • Аудио файл
  • Байт-массив
  • AssetBundle (архив с ассетами проекта Unity 3d)

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

Примечание: далее в статье используется код с использованием C# 7+ и рассчитан на компилятор Roslyn используемый в Unity3d в версиях 2018.3+.
Читать дальше →

Математика в Gamedev по-простому. Кривые и рябь для эффекта дождя в Unity

Время на прочтение6 мин
Количество просмотров16K
Всем привет! Меня зовут Гриша, и я основатель CGDevs. Продолжим говорить про математику что ли. Пожалуй, основное применение математики в геймдеве и компьютерной графики в целом – это VFX. Вот и поговорим про один такой эффект – дождь, а точнее про его основную часть, требующую математики – рябь на поверхности. Последовательно напишем шейдер для ряби на поверхности, и разберём его математику. Если интересно – добро пожаловать под кат. Гитхаб проект прилагается.


Архитектурные решения для мобильной игры. Часть 2: Command и их очереди

Время на прочтение23 мин
Количество просмотров7.9K


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

Архитектурные решения для мобильной игры. Часть 1: Model
Архитектурные решения для мобильной игры. Часть 3: View на реактивной тяге
Читать дальше →

Архитектурные решения для мобильной игры. Часть 1: Model

Время на прочтение20 мин
Количество просмотров16K
Эпиграф:
— Как я тебе оценю, если неизвестно что делать?
— Ну там будут экранчики и кнопочки.
— Дима, ты сейчас всю мою жизнь описал в трёх словах!
(с) Реальный диалог на митинге в игровой компании




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

В нашей суровой реальности каждый, кто хоть раз архитектурил крупный проект хотя бы в своих мыслях, имеет свои представления о том, как надо делать, и часто готов отстаивать свои идеи до последней капли крови. У окружающих это вызывает улыбку, а менеджмент часто смотрит на всё на это как на огромный чёрный ящик, который никому углом не упёрся. Но что если я скажу вам, что правильные решения помогут сократить создание нового функционала в 2-3 раза, поиск ошибок в старом в 5-10 раз, и позволят делать многие новые и важные вещи, которые раньше были вообще недоступны? Достаточно лишь впустить архитектуру в сердце своё!
Архитектурные решения для мобильной игры. Часть 2: Command и их очереди
Архитектурные решения для мобильной игры. Часть 3: View на реактивной тяге
Читать дальше →