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

Unity *

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

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

Домино на Unity 3D

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

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

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

Читать далее

Учебные материалы для школы программирования. Часть 1

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

Наш век запомнится мне, как время стартапов. От школьника-активиста, до жителя Кремниевой долины - все делают своих единорогов. Как поняли - так и делают. Я тоже не прошла мимо тренда на безграничные возможности самореализации, и запустила школу программирования для детей Step to Science. Время жизни этого проекта было наполнено открытиями, борьбы со страхами, маленькими и большими победами, ошибками и много чем еще. Весной 2020 года команда столкнулась с сами знаете с чем, и, немного порефлексировав, я приняла решение закрыть проект.

За годы работы школы, был найден оптимальный алгоритм обучения ребят занимательной науке разработки игр на Unity 3D. Мы перебрали много тем, которые смогли захватить интерес школьников от 10 до 16 лет, опробовали десятки способов передачи информации, тренировки навыков и оценки заложенных знаний. Эта кропотливая работа принесла нам отличные результаты, в виде комплексной программы по созданию компьютерных игр на Unity 3D, и учебных успехов, которые достигали наши ребята!

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

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

Читать далее

Избавляемся от «мистических» строк в системе реактивного связывания на Unity

Время на прочтение15 мин
Количество просмотров3.8K
Любая система, которая часто используется в проекте, со временем обречена на эволюцию. Так случилось и с нашей системой реактивного связывания reactive bindings.

Что это за система? Она позволяет нам связывать данные на префабе с данными в коде. У нас есть ViewModel, лежащая на префабе. В ней есть некие ключи с разными типами. Соответственно, вся остальная логика, которая у нас привязана к UI, привязана к этим ключам и их изменениям. То есть, если у нас есть некая логическая переменная, меняя ее в коде, мы можем менять любые состояния UI автоматически.



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

Росла частота использования системы — росло число подобных сложностей.

Два основных неудобства, с которыми мы столкнулись:

  • Строковые ключи в коде;
  • Нет проверки соответствия ключей в коде и ключей в модели.

Эта статья — о том, как мы дополнили систему и тем самым закрыли эти потребности.
Читать дальше →

Связываем две мобильные платформы в едином коде на Unity

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


Для Unity-разработчиков уже привычно управление игровыми потоками и сервисами на таких платформах, как iOS и Android. Однако после того, как в экосистеме появились мобильные сервисы Huawei, теперь нужно поддерживать и еще одну версию игры, если вы хотите охватить игроков, у которых есть девайсы этой фирмы.

Эта статья — как раз о том, как минимальными усилиями управлять зависимостями между несколькими мобильными сервисами Android и Huawei в одной кодовой базе.

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

Перестаньте использовать UnityEngine.Random

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

Как часто вы используете конструкцию Random.value или Random.Range()? А как много эту конструкцию использовали разработчики фреймворков или плагинов, которые вы встроили в проект?

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

Почему?

Четыре приема быстрой разработки на Unity3D

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

Уже долгое время Unity3D — мой любимый инструмент разработки игр, которым я пользуюсь уже более 8 лет — и для профессиональных продуктов, и для личных проектов, и при обучении программированию и гейм-дизайну. Более того, я писал на Unity почти на всех гейм-джемах, в которых участвовал, благодаря чему получалось создавать основу игры всего за несколько часов.

Как вы, наверное, знаете, гейм-джем — это конкурс разработчиков игр, участники которого делают игру с нуля за короткий период времени. Гейм-джем обычно идет от 24 до 72 часов, но бывают и более длительные — например, GitHub Game Off, который длится весь ноябрь.

После участия в различных гейм-джемах, в том числе и с самодельным движком моей группы на C++ (к сожалению, он только на португальском языке), я составил список правил быстрого прототипирования, которые вскоре превратились в мой основной принцип разработки ПО: меньше кода — быстрее работа.

Основная идея — писать меньше кода (или, иначе говоря, держать меньшую кодовую базу) — решает две задачи:

Защита от ошибок: чем меньше размер кода, тем меньше вероятность сделать ошибку.

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

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

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

Читать далее

Реактивное программирование для разработчиков игр: Введение

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

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

Не отвлекайтесь на котят. Читайте о реактивном программировании!

Итак, я привлек ваше внимание?

Отлично! Я приложу все силы, чтобы не потерять его.

Читать далее

Представляем Owlcat Mono Profiler для Unity

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

Добрый день. Я работаю программистом в компании Owlcat Games, которая выпустила одну из самых успешных российских компьютерных RPG Pathfinder: Kingmaker и сейчас работает над её продолжением, Pathfinder: Wrath of the Righteous. В ходе портирование первой игры нашей студии на консоли, мы столкнулись с проблемой поиска утечек памяти. Штатные инструменты движка Unity и целевых платформ оказались по разным причинам не слишком удобны для борьбы с утечками, и поэтому мы решили написать свой инструмент, о котором я и расскажу ниже.

Owlcat Mono Profiler предназначен для исследования использования памяти Mono в играх на движке Unity. Он доступен всем желающим в виде собранных бинарных файлов (под Windows) и исходного кода на Github. В отличие от встроенного профайлера Unity, а также пакета Memory Profiler, он не требует снятия снимков состояния памяти, а производит постоянный мониторинг состояния Mono-кучи, что позволяет выявлять не только утечки, но и пики аллокаций, и избыточные повторяющиеся аллокации. По сравнению с платформо-специфичными инструментами, такими как Memory Analyzer для PS4, он корректно отображает события, происходящие с памятью, управляемой сборщиком мусора.

На этом покончим с формальностями, и перейдём к cool story.

Читать далее

Как статический анализ кода помогает в сфере GameDev

Время на прочтение8 мин
Количество просмотров3.5K
image1.png

Игровая индустрия не стоит на месте и с каждым днём развивается всё быстрее и быстрее. Вместе с ростом индустрии растёт и сложность разработки: кода становится больше и багов в нём тоже становится больше. Поэтому современные игровые проекты нуждаются в особом внимании к качеству кода. Сегодня мы расскажем об одном из способов сделать ваш код лучше – статическом анализе, а также о том, как PVS-Studio на практике помогает в разработке крупных (и не только) игровых проектов.
Читать дальше →

Реализация и оптимизация генератора уровней в Unity

Время на прочтение6 мин
Количество просмотров10K
В мае этого года мы обсуждали алгоритм, который используем для генерации внешнего мира в игре Fireside. Сегодня мы возвращаемся к этой теме. В прошлый раз нам удалось сгенерировать набор точек на текстуре с помощью фильтрации шума Перлина. Хотя это решение удобно, оно имеет две важные проблемы:

  1. Оно не особо быстрое
  2. На самом деле мы не создавали ассетов в Unity

Давайте устраним эти проблемы. Сегодня мы:

  1. Создадим в Unity фреймворк, который позволит нам использовать алгоритм генерации текстур
  2. При помоги сгенерированных текстур создадим ассеты в игровом мире
  3. Распараллелим генерацию текстур с помощью C# System.Threading.Tasks, чтобы ускорить процесс

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

Сильные стороны трассировки лучей с непрямым освещением

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

Привет Хабр! Представляю вашему вниманию перевод статьи «The Bright Side of Ray-Traced Global Illumination in Unity» автора Rubén Torres Bonet.

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

Читать далее

Расширяемая и удобная в сопровождении архитектура игр на Unity

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

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

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

Эта статья является обновленной версией моего выступления на GDC в 2017 году (“Data Binding Architectures for Rapid UI Creation in Unity”).

Читать далее

Создавайте игры из виртуальных блоков LEGOⓇ в LEGO Microgame

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

Последний шаблон серии Microgames предназначен для новых пользователей: они смогут поделиться своей первой 3D-игрой, на разработку и настройку которой уйдет не больше часа.

Мы уверены, что чем больше среди нас творческих людей, тем лучше становится мир. Наша цель — сделать разработку игр более доступной и простой для новичков. Именно поэтому мы запустили проект Microgames: пользователи научатся разрабатывать игры на Unity, а в процессе обучения смогут найти в сообществе новые идеи и пообщаться с другими разработчиками, которые тоже работают над своей первой игрой.

Если вы когда-то увлекались созданием миров из кирпичиков LEGO®, проект Microgame будет идеальным началом вашего творческого путешествия: для разработки собственной игры не требуется опыт программирования, к тому же это абсолютно бесплатно. Над созданием этого проекта мы работали вместе с LEGO Games, и у пользователей была возможность поучаствовать в открытом бета-тестировании. Глобальный релиз — это знаменательная для нас дата: впервые в редакторе Unity появились наборы LEGO System in Play и мини-фигурки LEGO.

 

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

Читать далее

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

Базовые концепции Unity для программистов

Время на прочтение7 мин
Количество просмотров19K
Привет, Хабр! При проработке темы Unity мы нашли интересный блог, возможно, заслуживающий вашего более пристального внимания. Предлагаем вам перевод статьи о базовых концепциях Unity, также опубликованный на портале Medium
Читать дальше →

Math Invasion. Мой долгострой

Время на прочтение2 мин
Количество просмотров3.1K
Привет, народ!

Расскажу я вам свою историю о том, как я разрабатывал игру. Идея о том, чтобы скрестить shoot em up с математикой, мне пришла ещё в студенческие годы (Где-то в 2008 году).

EventBus — Система событий для Unity

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

В этой статье я расскажу вам о том, что такое система событий применительно к Unity. Изучим популярные методы и подробно разберем реализацию на интерфейсах, с которой я познакомился, работая в Owlcat Games.


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

Разработка инди-киберпанка

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

Ты просыпаешься в витрине магазина. Все, что ты помнишь — яркий свет перед глазами. Опускаешь голову и видишь вместо своих рук роботизированные протезы. Медленно поворачиваешься, а вокруг стоят такие же людей с начинкой из микросхем. Какие мысли появятся в твоей голове: “Какой сейчас год?”, “Я попал в Детройт?”, а может “Как же права человека”?
Читать дальше →

Что такое Unity Asset Store и как на нем зарабатывать?

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

Доброго времени суток, Habr! Я являюсь паблишером Asset Store уже 4 года и хочу поделиться с вами своим опытом. Расскажу вам что такое Unity Asset Store глазами программиста и что нужно знать для создания ассета.


Итак, что же такое этот Unity Asset Store? Это магазин в котором можно приобрести ассеты для Unity, такие как 3D модели, звуки/музыка, наборы UI, шейдеры/частицы, наборы спрайтов, а так же инструменты. Asset Store был создан в 2010 году и не так давно ему исполнилось 10 лет! Практически в любом проекте Unity можно встретить ассеты, которые делают процесс разработки более комфортным и быстрым. Если вы знакомы с Unity, у вас есть идея и желание, то вы можете стать паблишером и увеличить свой пассивный (но это не точно) доход.

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

Как мы переосмыслили работу со сценами в Unity

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

Unity как движок имеет ряд недостатков, но которые благодаря возможностям для кастомизации и инструментам для кодогенерации можно решить.

Сейчас я вам расскажу о том, как мы написали плагин для Unity на основе пост-процессинга проектов и кодогенератора CodeDom.

Читать далее

Jungle town: как мы хотели изменить мир к лучшему, создавая детскую игру

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

image




История нашей игры началась в 2016 году с покупки приставки Apple TV. Это был очень желанный девайс, на котором я обнаружил несколько игр, в том числе детских. Одна из них была от знаменитой студии, и она настолько мне понравилась, что я сказал своей супруге и музе: «Дорогая, я хочу сделать игру для нашей дочери!» Она меня поддержала.


Мысль о создании своей игры или приложения появлялась у меня и раньше, но мне казалось это нереальным, просто запредельным. А в тот момент загорелся огонь, и я решил идти только вперед. «Нужны ведь деньги и единомышленники, чтобы создать игру», — скажете вы. Да, все верно. На тот момент я был топовым видеографом и хорошо зарабатывал, поэтому наивно думал, что мы с супругой найдем команду и будем просто финансировать и руководить проектом.

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