Всем привет! Меня зовут Григорий Дядиченко, и я технический продюсер. А вот и второй выпуск дайджеста для Unity разработчиков. Интересные инструменты, красивые проекты, и всё что попалось мне на глаза за эту неделю. Если вам интересна Unity разработка — добро пожаловать под кат!
Unity *
Инструмент разработки 2D/3D-игр
Гайд по устранению зависимостей в Addressables
Привет.
Это перевод моего поста
Когда вы переносите проект с использования Resources на Addressables или на чистые AssetBundles, вы определенно столкнётесь с проблемой фантомных (скрытых, устаревших, неиспользуемых) ссылок на ассеты, которые могут при работе игры привести к дублированию ассетов в памяти.
В этом посте вы найдете встретившиеся мне случаи и как я их разрешил.
Интересное из мира Unity #1 (27.01.23 — 2.02.23)
Всем привет! Меня зовут Григорий Дядиченко, и я технический продюсер. Я решил вести дайджест новостей по Unity, отбирая интересные посты из того, что произошло за неделю. Красивые проекты, интересные ролики и многое другое. Если вам интересна Unity разработка — добро пожаловать под кат!
Что такое тексел?
Всем привет! Меня зовут Григорий Дядиченко, и я технический продюсер. Сегодня хочется поговорить о текстурах. О том, что такое тексель и о других базовых понятиях компьютерной графики. Что такое тексел или тексель? Если вам интересна эта тема — добро пожаловать под кат!
Истории
Unity advanced или Awaitable компоненты-промисы
Приветствую! Сегодня я хотел бы поделиться своей наработкой, которую я создал около двух лет назад и использую в проектах и сегодня.
Оговорюсь, что все что описано ниже - придумано мной, так что идею я нигде не украл. Также в результате поисков в интернете ничего подобного не нашел. Если для вас это актуально - пользуйтесь на здоровье =)
Все описанное ниже будет основано на понятии промиса для компонентной ориентированного подхода - простыми словами в данном случае мы будем создавать не класс промиса, а компонент.
А в силу того, что на дворе 2023 год, мы в след за js-ом сделаем этот промис awaitable.
Я не буду останавливаться на работе async/await, по этому поводу и так достаточно много написано, не только на официальном сайте, но и много где в интернете. Обозначим только основные пункты.
Для обеспечения работы этого механизма от нас требуется в типе:
Подключаем SignalR к Unity
Часто в играх необходимо получать обновления игрового баланса, обновлять профиль игрока, сохранять достижения и выдавать награды. Если хранить данные прямо в клиенте, то придется ждать публикации нового патча командой. Как более гибкое решение - получать конфигурацию и ресурсы для игры с внешнего сервера. В посте рассмотрим как можно из клиента Unity подключиться к простейшему сервису для получения от него сообщения. Для реализации сервиса возьмем библиотеку SignalR.
Создание WEBGL приложения Вконтакте на Unity
В нашем уроке мы создадим свой проект на Unity, и подключим его к html странице с помощью Javascript. И затем научимся обмениваться данными между Javascript браузера и скриптами Unity. И в заключение создадим новое приложение Вконтакте и научимся работать в связке Api Вконтакте – Javascript – Unity .
Вы узнаете, как написать простой скрипт, как добавить события пользователя. Как из скрипта Unity обращаться к скрипту Javascript на стороне браузера. И также как пройти путь от нажатия кнопки в среде Unity до вызова метода Api Вконтакте с полным контролем всех событий.
Wave Function Collapse для процедурной генерации в Unity
Wave Function Collapse – это алгоритм, c помощью которого можно реализовать генерацию чего угодно, что можно было бы описать с помощью правил или конкретным примером. В этой статье мы рассмотрим, как использовать WFC для генерации карты в Unity.
Tenebris: 7 кругов ада инди-разработки
Друзья, меня зовут Пётр, и в этой статье я попробую рассказать о нашем уже трехлетнем опыте в разработке инди-игры — Tenebris: Terra Incognita. Через какие сложности мы прошли и чего добились.
Работа над игрой началась в мае 2019 года, про старт я написал ранее в первой статье. Сегодня мы имеем на руках Альфа-версию игры и работаем над сборкой для раннего доступа.
Спросите: почему так долго?
Отвечу: потому, что это наша первая игра, мы не имеем инвестиций и работаем на энтузиазме, в свободное от работы время.
UI Роутер в Unity
Всем привет! Меня зовут Григорий Дядиченко, и я технический продюсер. Обсуждая по работе архитектуру речь зашла про UI. Есть много разных подходов к тому как работать с графическим пользовательским интерфейсом в Unity. Хотелось предложить один вариант реализации переходов по интерфейсу плюс заодно показать пример использования атрибутов и рефлексии в C#.
Использование архитектуры Composition root в Unity. Часть 2. Переход на зависимости ссылочного типа
Всем привет ещё раз, пришло время продолжить обсуждение применения Composition root в Unity. В прошлой статье я описал основные положения данной архитектуры, способы проброса зависимостей и организацию примитивной логики в рамках проекта. А также, обещал рассмотреть замену контекстных структур на интерфейсы глобального класса. Вот этим и займёмся.
Мой опыт разработки программы для игры в шашки с помощью алгоритма минимакс
В Интернете можно откопать сотни и тысячи статей о разработке алгоритмов и ИИ для игры в шахматы. Однако шашки почему-то не привлекают такого интереса.
Мне захотелось написать программу, которая будет играть в шашки на относительно высоком уровне. Для этого я использовал алгоритм минимакс и Unity.
Unity3d: Запись файла на Yandex диск на C#
К моему удивлению, на столь популярный сервис, как Яндекс диск, не нашлось примеров записи файла на диск на языке программирования C#. На PHP же ситуация обратная, примеров вдоволь, например: https://snipp.ru/php/disk-yandex
Я, как человек, который практически не изучал веб, потратил сутки, чтобы разобраться, что к чему. Надеюсь, эта статья поможет кому-нибудь сэкономить время.
Ближайшие события
Модульная архитектура в Unity
В процессе развития юнити разработчики проходят путь от “god обжектов” до проектирования сложных, гибких, абстрактных систем. Со временем эти системы обрастают своими уникальными особенностями, стандартами и инструментами. Образуя из себя фреймворк или даже движок.
Такие фреймворки зачастую имеют излишний функционал для конкретно взятых задач. Документации становится все больше и больше, да просто тонны документации! Не смотря на это, порог вхождения для вновь прибывшего на проект разраба неуклонно растет. А также есть те кто сразу же отказывается от работы на таких фреймворках, со словами “А зачем мне лезть в это абстрактное болото!?”. И я их прекрасно понимаю.
И что же получается, пытаясь избежать проблем с хард кодом мы обрели другие проблемы, так особо и не повысив скорость разработки!? Проблемы, для устранения которых, необходимо ооочень много времени. Т.е. мы прошли путь от крайности к крайности от “хард кода” к фреймворку.
Вот и мы столкнулись с той же проблемой. Но нам пришла идея пойти по другому пути. Так возникла концепция новой модульной архитектуры. Ну ладно, может не такая уж и новая, но она имеет свои уникальные особенности. И это не совсем то что вы можете найти в интернете на тему модульной архитектуры, речь пойдет немного о другом.
Задачка «Вооружимся архитектурой»
Всем привет! Меня зовут Дядиченко Григорий, и я технический продюсер. В своём блоге в телеграм я периодически публикую задачки по Unity. Решение одной задачки получается слишком длинным, чтобы писать про него в блог. Поэтому я решил это оформить в статью. Задачка звучит так.
Вы решили сделать с друзьями свой скайрим. У вас пока в игре есть два вида оружия: молот и меч. Они отличаются уроном, прочностью и скоростью атаки. Плюс логикой атаки. Атака молота аое в круговой зоне. Атака меча бьёт до 3 ближайших противников. К вам пришёл катжит и за лунный сахар предложил купить у него схему архитектуры на картинке выше. Предложите решение лучше. В чём проблема данной схемы?
Как использовать функции столкновений в Unity: OnCollisionEnter/Stay/Exit, OnTriggerEnter…
Столкновения (Collisions) играют важную роль в компьютерных играх. Это объемный пласт взаимодействия между игровыми объектами.
В этой статье разбирается, как работать со столкновениями в Unity, как ловить и обрабатывать их в коде.
Дельта компрессия и квантизация объектов в C#
Cтатья затрагивает тему сериализации данных, которые передаются по unreliable каналам.
В первую очередь это касается реалтайм игр, которые критичны к сетевым задержкам, имеют активное общение клиента и сервера, например, 10 - 60 раз в секунду и используют UDP протокол.
В статье вы узнаете, как с помощью дельта компрессии и квантизации можно уменьшить размер объектов и, тем самым, уменьшить размер сериализованных данных. Попутно мы познакомимся с библиотекой для битовой сериализации данных NetCode.
Как сделать билд минимального размера в Unity?
Всех с Новым Годом! Меня зовут Григорий Дядиченко, и я технический продюсер. Размер билда. Сегодня хотелось бы поговорить о нём и составить некий чек-лист, который полезно проходить перед выкладкой проекта. Если вам интересно, как можно инструментами Unity уменьшить вес сборки — добро пожаловать под кат!
2022. Год из жизни CTO в GameDev
Доброго времени, Хабр!
Сначала немного представлюсь. Меня зовут Сергей. В IT я уже более 13 лет из них в GameDev более восьми. Так вышло, что до написания статьи на хабр дошел только сейчас. И дошел только благодаря подписчикам моего небольшом канала по разработке игр в telegram.
К одному из моих постов читатели задали очень много хороших вопросов. Спрашивали они о том что поменялось за этот год, как выглядели собеседования на позицию технического менеджмента и CTO в GameDev. Когда я начал отвечать количество текста становилось все больше и больше. Поэтому пришла мысль оформить все это в отдельную статью. Надеюсь, что материал окажется кому-то интересным, а может даже полезным.
Сколько я заработал на Яндекс играх? Моя история выпуска игры
Добрый день, Игроделы. Я InterestingPerson. В этой статье я опишу как создал свою игру и залил её на Яндекс.
Вклад авторов
BasmanovDaniil 909.0ThisIsZolden 598.0DyadichenkoGA 484.0soulburner 463.0nightrain912 371.0Plarium 356.6Darina_PL 321.4fischer 291.0barrettdesign 268.0FrozmatGames 268.0