Григорий Дядиченко – Telegram
Григорий Дядиченко
2.82K subscribers
395 photos
160 videos
7 files
1.2K links
Разработчик игр, интерактивных стендов и интерактивной рекламы. Эксперт в области интерактивов и XR.

100+ проектов за 5 лет.

По вопросам сотрудничества писать: @it_bizdev
Реклама в канале: https://vk.cc/cNhGLE
Download Telegram
Как работать с графикой в Unity 6
https://unity.com/blog/unity-6-graphics-learning-resources

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

#новости
🔥18❤‍🔥11
TIme Ghost | Unity 6
https://www.youtube.com/watch?v=o1JIK5W3DRU

Что-то я пропустил этот синематик от Unity. Выглядит неплохо, но при этом как-то недоработанно. Наверное я просто слишком люблю синематики от того же близзарда. Проблема тут не в технической части. Условно технологически движок позволяет всё что надо. А в контентной. Анимации персонажей топорненькие и с косячками. Какие-то VFX-ы недоработаны. Вроде ролик чтобы "поиграть мышцами". В том же моменте где персонаж снимает куртку и шлем, и там можно посмотреть на волосы, на кожу (но всё это уже было в релизе ролика Enemies. Но чисто артовые косяки сбивают всё ощущение. Ну и технически я ничего особо нового не увидел. Сложные природные ландшафты были в Book Of The Dead. Разве что тумана, год реев и другой волюметрии навалили на все бабки. Красиво, но будто бы это уже всё было.

#интересное
🔥61
Произведите революцию в своей игре Unity с помощью опций и монад
https://www.youtube.com/watch?v=3xIB6zowVDM

Любопытное видео про монады. Монады штука весьма полезная особенно в мнопоточном или асинхронном написании кода, а рано или поздно к этому приходят все. Как когда-то майкрософт шутили в своём видео про C# 6 если не ошибаюсь: "Пишем тут async, мы же не животные". Когда async только появился.

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

#новости
🔥5❤‍🔥3
Электрическая дуга за минуту
https://youtu.be/bpBxZKFp_6E?si=F-mlm2Z6o-I3Gd5

Коротенький туториал по довольно полезному VFX. Вообще из электрических эффектов делается очень много вариаций магии. «Подкрасил и готово» :)

#новости
🔥7
Media is too big
VIEW IN TELEGRAM
🎉 Крупный новогодний розыгрыш: 13 механических клавиатур!

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

📌 Условия участия просты:

1. Подпишись на 6 каналов:
💋 GameDev. Путь Самурая
💋 Baxx Studio
💋 Unity Architect
💋 Kozlov Dev
💋 Сазонов о Web
💋 Григорий Дядиченко

2. Нажми кнопку «Участвую».

🗓 Результаты будут объявлены 31 декабря в 20:00 в канале Baxx Studio. Победителей выберет RandomGodBot.

За арт спасибо @hellbrush_art

🎄 Желаем удачи и с наступающим Новым годом! 🎄
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥722
Сделаем риплей в игре
https://youtu.be/Bb8Rdivmx8U?si=Xlg71ojVNdw3e1Af

Довольно простой туториал по созданию системы риплеев. Вообще задачка с риплеями это штука довольно интересная. Потому что подходов там довольно много. Можно как в видео хранить состояние объектов. Можно писать видосы (но это самый дорогой и бесполезный вариант). А вот самое интересное — это писать инпуты.

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

И самый легковесный вид риплеев — это сохранение пользовательского ввода. Почему же не всегда можно просто сохранять что нажимал пользователь для честного риплея? Есть такая вещь которая называется — детерминированность. Что при одинаковом вводе у нас будет всегда происходить одно и тоже. В не в каждом виде геймплея добиться её так уж и просто. Самый банальный пример — это физика. Кто-то скажет «а как сохранить рандомные события?», и вот это как раз просто с псевдогсч. Сид рандома сохранил, и будет тот же результат. Но добиться полной детерминированность бывает весьма сложно.

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

#новости
🔥22
Про 2024

Под конец года подведём его итог. Скоро уже праздники, ёлка, мандарины. У меня то сейчас вообще за окном новогодняя сказка, так как главное изменение за этот год — я уехал из Москвы. И живу теперь в горах. А в снегопад, когда вокруг много хвойных деревьев — тут очень красиво.

Год прошел в целом отлично. Как всегда было много приключений и событий. Но начнём с рабочих моментов. В этом году получилось сделать 22 проекта. Из любопытного, что это чуть поменьше чем в прошлом (там было 25), но при этом зато проекты были все крупнее. Мои любимые за год (из тех о которых можно рассказывать) — это игра Добрый Дети и игра для Betboom. Над ними было интересно работать и они получились классными. Чуть позже будет шоурильчик, можно будет в нём глянуть всё не NDA-шное.

В следующем году хочется чуть больше выбираться обратно в конференции и общение в рынке. Я чёт в целом вылетел из тусовок, конференций и личного общения по проектам после ковида, и никак не вкачусь обратно. Может я конечно не один такой, но раньше у меня была пара выступлений и 7-8 походов на конфы в год. В этом году я выступил один раз. А на каких конфах я был — я даже и не помню если был. В прошлом году тоже хотел этим заняться, но чёт как-то жизнь сделала ещё один крутой поворот.

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

Я месяц пропутешествовал по Европе. Рим-Милан-Флоренция-Барселона-Париж мой маршрут. И она мне вообще не понравилась. Не, в культурно-историческом плане — кайф. Чисто туристом побродить по Собору Святого Петра, Лувру и тому подобному — кайф. А вот в остальном — всё в два раза дороже и не лучше, чем в той же Москве. Сервис Москвы приучает к хорошему, и по сравнению с ней в Европе за в два раза большие деньги ты получаешь хуже уровень обслуживания.

В общем год был интересный. У меня целиком сменился образ жизни. И при том, я рад что получилось очень много сделать. Переезд конечно пока накладывает отпечаток, что нормальное рабочее место я себе сделал месяц назад, и теперь нужно с ним вкатиться в нормальный ритм работы. Потому что по работе я всё успеваю, но с точки зрения какого-то маркетинга и продаж можно было бы делать и побольше. Ну и про блог не забывать. А то я пока обустраивался что-то вообще перестал писать. Буду исправляться!

#итогигода
❤‍🔥31🔥911
Про снег в играх
https://habr.com/ru/companies/serverspace/articles/869100/

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

#новости
🔥22
Baxx Studio | Unity GameDev
🎉 Крупный новогодний розыгрыш: 13 механических клавиатур! Мы, совместно с шестью каналами по разработке игр, решили устроить для вас настоящий новогодний сюрприз! Вместо стандартных поздравлений мы решили организовать масштабный розыгрыш с крутыми призами…
Дружеское напоминание, что мы тут с ребятами новогодний розыгрыш запустили. У кого как с новогодним настроением? В общем отличным акцентом будет новогодний подарок тому, кто в этом розыгрыше выиграет. Я уже во всю готовлюсь к праздникам и думаю над планами по блогу в том числе в новом году 💡💡💡🥛
Please open Telegram to view this post
VIEW IN TELEGRAM
13
С новым 2025 годом!
https://youtu.be/SVLu9eu20Ok

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

Лучше поздравить поздно чем никогда. Из-за смеси авралов, интересных событий в моей жизни и праздников, только сейчас добрались руки залить новый шоурил. А ведь хочется похвастаться чем мы занимались последние годы. Тут конечно далеко не все наши проекты, так как иногда мы работаем под NDA.

В общем это мне пора возвращаться в рабочий режим. Как "Продюсеру на вольных хлебах". Надо бы наверное продолжить подобную серию постов. А многие сейчас ещё на заслуженном отдыхе. Так что хороших праздников и пусть этот год будет лучше всех предыдущих.

#showreel
🔥19❤‍🔥1
Разбор рендеринга в Unity: Built-in
https://habr.com/ru/articles/873050/

Немного неудобно читать статью с точки зрения структуры, но в целом материал интересный. Мне немного не хватило разделов или чего-то подобного, как и я не понял, как без прелюдий мы перешли к инструментам профайлинга рендера. Но в целом материал любопытный. Обзор того как работает Built-in рендер с разными любопытными деталями.

#новости
🔥27
Как сделать цилиндрический кодовый замок в Unity, Часть I
https://marianpekar.com/blog/how-to-make-a-cylindrical-combination-lock-in-unity-part-i

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

Тут на мой вкус реализация такого замка переусложнена. Я приверженец принципа KISS (Keep it simple stupid) И когда в конструкции реализации замка появляются сериализованные списки для хранения и смены материалов. Ну как бы это логичное стремление к обобщению будто бы, но я приверженец более частных решений. В общем интересный тутор. Пусть тут полежит.

#новости
🔥12
Автоматизация сборки Unity с помощью GitHub Actions
https://dev.to/virtualmaker/automating-unity-builds-with-github-actions-1inf

Рано или поздно все приходят к CI&CD. Это удобно и позволяет проще перемещаться между версиями для понимания того в каком коммите что-то сломалось и почему. В статье разбирается то, как это настроить на Github с помощью GitHub Actions.

#новости
🔥11❤‍🔥2
5 способов нарисовать обводку
https://ameye.dev/notes/rendering-outlines/

Обводка — это задача с которой я встречаюсь на каждом втором проекте. В статьие описаны 5 методов нарисовать обводку: метод экструзии вершин, метод размытия по Гауссу (мой любимый), алгоритм Jump Flood, метод определения границ и пользовательский источник прерывистости. Такая статейка под рукой точно всегда пригодится.

#новости
🔥17
Дженерики или наследованиe. Когда что использовать в разработке игр?
https://www.youtube.com/watch?v=HqUTF6lIp-E

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

#новости
🔥8
Анимация шейдеров для магии: Создание системы заклинаний в Unity
https://www.youtube.com/watch?v=rJXSRWP3Hic

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

#новости
🔥8
This media is not supported in your browser
VIEW IN TELEGRAM
Текстовые эффекты для Unity
https://github.com/LeiQiaoZhi/Easy-Text-Effects-for-Unity

Репозиторий с различными текстовыми эффектами для UI и TextMeshPro. Много достаточно симпатичных эффектов. Это нам нада!

#интересное
🔥48❤‍🔥1
Помогите Даше понять в какой мы системе координат...

Давно чёт ничего не писал. Но я исправлюсь. Наверное я немного охладел к разработке и лучше писать про бизнес и так далее, чем я по большей части занимаюсь. Но сейчас у меня появилась задачка, которую надо сделать. И боже мой, Unity UI придумывал злой гений. Тут столько неочевидных приколов. И в основном они связаны с тем: "А в какой системе отсчёта мы находимся?"

Базовые условия. Экран у нас настроен 720 х 1280. Канвас скейлер 375 х 812. Мы пытаемся найти левый нижний угол и размеры рект трансформа в координатах экрана.

И что я пока накопал?

1. Метод GetWorldCorners в RectTransform зависит от настроек анкоров


Вот кто бы мне объяснил почему? Вообще ещё частью задачи является то, чтобы у меня ещё скриншот этого дела делался, поэтому мне нужно чтобы мне возвращало размеры и левый нижний угол в координатах экрана. Но то что считается мировой позицией угла зависит от настроек анкоров. Почему? Загадка юнити. Зависимость хотя бы понятная. Если анкор настроен на левый верхний угол то это начало системы координат. И так далее. Удобно ли это? Ну если пытаться решить задачу "нормально" и в абстрактном случае, то тут надо прям думать как приводить одно к другому

2. RectTransform.rect.size плевать хотел в режиме stretch на CanvasScaler


При режиме растягивания рект трансформа его размер возвращается не в размерах канваса и канвас скейлера. А в размерах экрана. Логично? Весьма. Единая система координат для слабаков. Сильные пляшут с бубнами неочевидно меняя размерности и системы. Ну чтобы разрабатывать было веселее. Почему так сделано? Пошел я нахрен, вот почему.

3. Забавный баг с CaptureScreenshot

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

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

#оработе
🔥14
Григорий Дядиченко
Помогите Даше понять в какой мы системе координат... Давно чёт ничего не писал. Но я исправлюсь. Наверное я немного охладел к разработке и лучше писать про бизнес и так далее, чем я по большей части занимаюсь. Но сейчас у меня появилась задачка, которую надо…
UPD: Вообще говоря второе работает ещё круче. Казалось бы. Вот поставили мы отступы от краёв 10. Но потом мы поставили в канвас скейлере "смотри за высотой". rect.size нам вернёт что? Правильно 700. У нас же отступ 10. А какой реальный размер ширины ректа в координатах экрана? Правильно 688. А как это посчитать в общем случае. Пожалуй этим вопросом сегодня я задаваться не хочу
🔥3
Мофринг спрайтов
https://github.com/V0odo0/Sprite-Swap-Morph

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

Так что выглядит прикольно, надо отложить — вдруг где-то пригодится.

#интересное
🔥18
LINQ без аллокаций
https://dtf.ru/gamedev/3671537-optimizatsiya-linq-v-dotnet-s-pomoshchyu-zlinq-bez-allokatsii-pamyati?from=rss

Охота на ведьм продолжается. На самом деле забавно, что это у меня вызвало ностальгию. Когда-то давным давно меня не взяли в гейминсайт (и как показала история жалеть не о чем). А не взяли меня, так как лид на собесе меня замучал какими-то узкими кейсами по памяти. Типа вопроса "чем отличается string.Concat от "+"" в строках. И убеждал что там много лишних аллокаций. На самом деле очень сильно зависит от контекста и платформ. В общем случае шарповый сахар оптимизирует себя лучше, чем вы напишете.

Я в те времена имел слабое представление о том что такое куча, а что такое стек. Но уже работал больше года разрабом и программировал сутками. В те времена я даже на выходных на работу ездил чтобы делать свой пет проект, так как денег на VR шлем и хороший комп у меня не было. Откуда они у парня с Волгограда только закончившего универ. Поэтому в офисе я был 7 дней в неделю и с практикой всё было неплохо. Но теорию я знал весьма посредственно. Собственно благодаря тому собесу я разобрался в теме. Причём объяснить работу сборщика мусора и памяти без тонких нюансов я смогу кому угодно часа за 4. Зачем так мучать этим на собесах для меня всегда была загадкой. Я тоже конечно по приколу кошмарил людей вопросами про вертексные параметры, про то за что в Unity отвечает UV3 в стандарт шейдере и так далее. Но эти вопросы никогда ничего не решали. Чисто любопытство на сколько человек углублялся. Ладно, Остапа понесло - не суть.

Так вот, к чему я это. Битва с мелкими аллокациями вещь конечно достойная была, до Unity 5.6 если не ошибусь. А после этого в Unity появилась малая куча и тащить подобные либы стало относительно бессмысленно. Могу быть не прав. Но я с фризами из-за кучи аллокаций с объектами меньше 65к байт не сталкивался оооочень давно.

Это очень узкий кейс когда может пригодится NonAlloc LINQ. Да, в Unity мы обделены всеми прелястями .Net (а он оптимизирует себя просто космически, в особенности весь сахар). Но на интеграцию подобной либы, которую ещё нужно дебажить, поддерживать и у неё будет неочевидное поведение - я бы время не тратил.

#новости
🔥14