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

Unity *

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

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

Невангеры: Feed for speed

Время на прочтение5 мин
Количество просмотров6.7K
Доброго дня! Который к концу декабря так похож на ночь.

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


Процедурная генерация многоэтажных 3D-подземелий

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

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

Код примера выложен в репозитории Github. Для демонстрации я использую Unity3D, но эти концепции, разумеется, применимы к любому другому движку.

Два измерения


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

Сцена для этого примера называется Dungeon2D. Код для него находится в папке Scripts2D.

Алгоритм


Мир разделён в виде прямоугольной сетки. Я предполагаю, что 1 единицы будет достаточно для обозначения коридора. В полной игре 1 единица измерения Unity может соответствовать например 5 метрам. Для сетки я выбрал размер 30×30.

Физика в Unity-проекте на примере мобильного файтинга

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

Физика стала неотъемлемой частью любой современной игры. Будь то простая симуляция ткани или полноценная физика движения транспорта. Не являются исключением и мобильные игры. Однако, настраивая физику для них, нужно оглядываться на ограничения, связанные с относительно низкой производительностью поддерживаемых устройств старого поколения. Ведущий технический 3D-художник Banzai.Games Роман Терский рассказал, как его команда интегрировала физику в игровой процесс мобильного файтинга Shadow Fight 3, какие приемы использовала для оптимизации и как переписала “с нуля” физику для персонажей для достижения ее полной детерминированности в синхронном PVP.
Читать дальше →

WTF per Hour

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

Душа поэта не вытерпела безвестности, и он щедро делится своими высокими идеями. (с) анонимус


WTF per hour
Некоторое время назад я написал три статьи «Архитектурные решения для мобильной игры» посвящённые архитектуре моей мечты:
Часть 1: Model
Часть 2: Command и их очереди
Часть 3: View на реактивной тяге

Я даже думал сделать из этого продукт на ассетсторе, но в ходе голосования выяснилось, что людям идеи и обсуждения гораздо важнее готового кода. С тех пор я поработал в двух игровых конторах, одна занимались и одна до сих пор занимается десктопными играми, но идеи организации User Interface через реактивности в обоих случаях пришлись очень кстати, в разы ускорили некоторую часть работы над сложными интерфейсами, и сделали возможным реализацию интерфейсов, которые до того казались слишком уж сложными. Всё это показало, что даже стадия первых закрытых бетта-тестов ещё не слишком поздно, чтобы сделать проекту сильно лучше.
Читать дальше →

Свой CI/CD для Unity

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

Сейчас я расскажу, как выглядит процесс разработки на Unity в маленькой gamedev компании и как мы его улучшаем и автоматизируем. Всё-таки 2020 год на дворе, хватит уже мышкой водить…
Читать дальше →

Основы работы с Shader Graph в Unity

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

Шейдер — это небольшая программа, содержащая инструкции для GPU. Она описывает способ вычисления экранного цвета для определённого материала.

Хотя у Unity есть Standard Shader, иногда требуется реализовать эффект, на который не способен стандартный шейдер.

Раньше для этого необходимо было знание особого языка шейдеров, такого как Cg или HLSL, а подходы в них немного отличаются от обычного создания скриптов геймплея. Для многих людей написание шейдеров — это непопулярная сторона разработки игр, потому что требуется освоение дополнительной кривой обучения.

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

В этом туториале вы создадите свой первый шейдер для Unity!
Читать дальше →

MVC в Unity со Scriptable Objects. Часть 3

Время на прочтение5 мин
Количество просмотров10K
Завершение цикла статей от Cem Ugur Karacam о реализации MVC в Unity с помощью Scriptable Objects. Прочитать предыдущие части вы можете здесь и здесь.

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

Knight's life — онлайн Aрена с элементами RPG

Время на прочтение5 мин
Количество просмотров3.3K
Всем доброго времени суток!

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

Немного про классы


У каждого класса есть 4 вида способностей и 3 основные характеристики (сила, ловкость, интеллект). Помимо способностей и характеристик у каждого класса имеется свое оружие. У воина щит и меч, маг двигается с посохом а у разбойника клинки в обеих руках. У воина основной атрибут в характеристиках — это сила. У мага — интеллект. У разбойника соответственно ловкость.

Оптимизация интерфейса в Unity без кода

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


В этой статье ведущий UI/UX художник Никита Кандыбин и технический UI художник Ольга Кинчак поделятся эффективными базовыми практиками по оптимизации Unity UI, которые используются в компании Banzai Games при создании игровых интерфейсов, а также укажут на подводные камни тех или иных решений в дизайне и верстке. Практически во всех перечисленных ниже пунктах можно обойтись без кода, настраивая компоненты непосредственно в редакторе, а что-то даже предусматривая заранее на стадии проектирования макетов интерфейса.
Читать дальше →

Unity, ECS, Actors: как поднять FPS в своей игре в десять раз, когда оптимизировать уже нечего [с правками]

Время на прочтение7 мин
Количество просмотров9.7K
Что такое ECS
Что такое Actors

Не раз слышал, как хорош шаблон ECS, и что Jobs и Burst из библиотеки Unity — решение всех проблем с быстродействием. Чтобы не добавлять каждый раз слово «наверное» и «может», рассуждая о быстродействии кода, решил проверить всё лично.

Моей целью было непредвзято разобраться, насколько это быстрый инструмент разработки, и стоит ли использовать распараллеливание для вычислений. И если стоит, то лучше использовать Unity.Jobs или System.Threading? Заодно выяснил, какова польза от ECS в реальных задачах.
Читать дальше →

Кнопки нестандартной формы в Unity UI

Время на прочтение2 мин
Количество просмотров15K
Недавно у меня возникла необходимость использовать в своем проекте кнопки нестандартной формы. Однако эта на первый взгляд тривиальная задача вызвала у меня некоторые затруднения.

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


Спустя некоторое время поисков в интернете и курения документации ко мне пришло следующее, при этом довольно простое, решение:
Читать дальше →

Процедурные дороги в Houdini и Unity

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

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

Раньше, когда не знал о Houdini, я писал на C# собственные инструменты процедурной генерации мешей для Unity. Добавление новых функций было очень долгим процессом, и когда я однажды услышал, что Houdini предназначен для подобных задач, то сразу перешёл на него. Я поэкспериментировал с разными способами генерации городов и улиц, и в этой статье я вкратце расскажу о методике, которая в конечном итоге была использовала для игры.

Сначала я создал инструмент для генерации сети улиц, которые можно было бы использовать в городе. Моё решение основано на изложенных здесь концепциях, а также на использованной по ссылке статье. Там много говорится о тензорных полях и собственных векторах, и всё написано очень технически, но вкратце это можно объяснить так: для моего случая (генерации дорожной сети на рельефе) мне нужно было сгенерировать контурные линии рельефа, а также линии, перпендикулярные им.
Читать дальше →

MVC в Unity со Scriptable Objects. Часть 2

Время на прочтение4 мин
Количество просмотров7.4K
Продолжение цикла статей от Cem Ugur Karacam (часть 1 можно прочитать здесь).

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

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

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

Исследование шейдера песка игры Journey

Время на прочтение19 мин
Количество просмотров14K
Среди множества инди-игр, выпущенных за последние 10 лет, одной из самых любимых для меня определённо является Journey. Благодаря своей потрясающей эстетике и красивому саундтреку Journey стала примером превосходства практически в каждом аспекте разработки.

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


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

Невангеры: Spice must flow

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

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



Часть первая: Невангеры
Часть вторая: Road is changed
Продолжение, часть четвёртая: Feed for speed

MVC в Unity со Scriptable Objects. Часть 1

Время на прочтение5 мин
Количество просмотров13K
MVC (Model-View-Controller) — это схема, предполагающая разделение данных приложения, пользовательского интерфейса и управляющей логики на три отдельных компонента, чтобы каждый из них можно было независимо модифицировать. Разработчик Cem Ugur Karacam поделился своим опытом программирования в Unity и коротко рассказал о Scriptable Objects. Мы представляем перевод его статьи, опубликованной на сайте dev.to.

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

Shader — это не магия. Написание шейдеров в Unity. Вертексные шейдеры

Время на прочтение8 мин
Количество просмотров16K
Всем привет! Меня зовут Дядиченко Григорий, и я основатель и CTO студии Foxsys. Сегодня мы поговорим про вершинные шейдеры. В статье будет разбираться практика с точки зрения Unity, очень простые примеры, а также приведено множество ссылок для изучения информации про шейдеры в Unity. Если вы разбираетесь в написании шейдеров, то вы не найдёте для себя ничего нового. Всем же кто хочет начать писать шейдеры в Unity, добро пожаловать под кат.


Уничтожение врагов прыжком, как в «Марио» Unity 2D

Время на прочтение2 мин
Количество просмотров9.8K
Здравствуйте! В этой статье хотел бы поделиться как реализовать, уничтожение врагов прыжком, как в Марио. Сам, еще учусь, так что если буду какие-нибудь полезные советы или подсказки пишите в комментарии обязательно прочту. Ну что же, после многочисленных просмотров туториалов, и прочитанных статей было найдено всего два интересных, и наверное проще всего в исполнение вариантов:

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

Для начала напишем функцию которая будет отнимать жизнь у игрока, и необходима для обоих вариантов:

public int health = 3; 
void Hurt()
    {
        health--;
        if (health <= 0)
            SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
    }
Читать дальше →

BlessRNG или проверяем ГСЧ на честность

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


В геймдеве часто нужно что-нибудь завязать на рандоме: у Unity для этого есть свой Random, а параллельно с ним существует System.Random. Когда-то давно на одном из проектов сложилось впечатление, что оба могут работать по-разному (хотя должны иметь равномерное распределение).

Тогда в детали углубляться не стали — хватило того, что переход на System.Random исправил все проблемы. Сейчас решили разобраться подробнее и провести небольшое исследование: насколько «предвзяты» или предсказуемы ГСЧ, и какой выбрать. Тем более, я не раз слышал противоречивые мнения об их «честности» — попробуем разобраться, как реальные результаты соотносятся с заявленными.
Читать дальше →

Shader — это не магия. Написание шейдеров в Unity. Введение

Время на прочтение5 мин
Количество просмотров43K
Всем привет! Меня зовут Дядиченко Григорий, и я основатель и CTO студии Foxsys. Сегодня хочется поговорить про шейдеры. Умение писать шейдеры (и в целом работать с рендером) очень важно при разработке под мобильные платформы или AR/VR, если хочется добиться крутой графики. Многие разработчики считают, что шейдеры — это магия. Что по ним мало хорошей информации, и что чтобы их писать нужно иметь, как мимимум, звание кандидата наук. Да, разработка шейдеров по своим принципам сильно отличается от клиентской разработки. Но основное понимать базовые принципы работы шейдеров, а так же знать их суть, чтобы в этом не было ничего магического и поиск информации по этой теме был простой задачей. Данная серия статей рассчитана на новичков, так что если вы разбираетесь в программировании шейдеров, данная серия вам не будет интересна. Всем же кто хочет разобраться в этой теме — добро пожаловать под кат!