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

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

По вопросам сотрудничества писать: @it_bizdev
Реклама в канале: https://vk.cc/cNhGLE
Download Telegram
Григорий Дядиченко
Задача "Шейдер энергии" Давайте ещё потихоньку начнём играться с шейдерами. Поставим задачку на казалось бы простой, но довольно важный эффект. Напишите шейдер, который позволяет пускать градиент такого вида, как на видео. В нём должна быть возможность регулировать…
This media is not supported in your browser
VIEW IN TELEGRAM
Решение "Шейдер энергии"

Чтож, иногда задачи должны быть относительно простыми. Такой шейдер это отличное базовое упражнение на работу с шейдерами. А теперь обоснование.

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

Aresult = A * cos(2 * PI *(x / waveLength – t * frequency));

где:
Aresult – амплитуда в точке x, в момент времени t
А – максимальная амплитуда
wavelength – длина волны
frequency – частота волны
PI – число ПИ = 3.14159 (float).

В целом достаточно перенести это уравнение взяв uv координаты модели. И из важного что в шейдерграф надо знать — это Split Node, которая позволяет разбить на разные компоненты векторы. Так как при реализации по двум компонентам у вас будут волны идти крест накрест.

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

Задачей со звёздочкой, которой кто-то может захочет заняться — сделать это без uv. Для этого нужно знать одну вещь, что такое трипланарные шейдеры. И сделать это именно шейдерграфов. Для спецов в шейдерах это максимум полезная разминка. А для тех кто учится писать шейдеры модифицировать граф выше, чтобы получить результат может быть сложной и интересной задачкой. Собственно
ссылка которая вам поможет.

#задачка
👍5
Как всё начиналось

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

Сначала был офис...

В офисе я пробыл по меркам рынка недолго. По сути я перескакивал из компании в компанию в течении двух лет. Самая глупая история из всех этих переходов, что я проработал в Playrix ровно один день. И нет никакой претензии к плейриксу. В те годы я был молодой, глупый, смешливый. Почему я ушёл из плейрикса через день? Мой ноутбук не тянул проект, но я не хотел брать у компании ноутбук, чтобы "не привязывать себя к компании". Всякие странные мысли бывают в жизни. Ставишь в проблему вопросы решаемые курьером за 500р. Ну да ладно. Я поработал в Nekki, VRTech, Playrix (сутки), KamaGames и ещё нескольких ноунейм рекламных агенствах. Получил много интересного и разнообразного опыта, представление о процессах студий и взрослых ребят и т.п.

Потом был фриланс...

В фриланс я попал максимально тупо. Я просто психанул. Кама прекрасна была для тех кто любит стабильность. Я же пришёл из около стартапа туда. Я просто умирал со скуки. Меня подшлифовало синдромом самозванца, так как казалось я на позиции ведущего разработчика занимаюсь какой-то хернёй. Я отсидел испытательный, поблагодарил ребят и ушёл в закат. Причём я просто реально психанул, так как плана у меня не было. Если цитировать мысли были такие "ну 40к рублей на фрилансе я заработаю, на еду и жильё хватит". И я пошёл вникуда. Как оказалось, благодаря постоянным походам по конференциям, старым работам и знакомству с Unity и Microsoft у меня была куча контактов. Так что я сразу вышел в лигу "работы не на бирже". С биржей фриланса 40к было бы оптимистичным прогнозом. Так как поймать хороший заказ на бирже — по-моему около невозможная история. Стабильно получать хорошие заказы с биржи — вообще нереально.

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

Прошло пару лет...

А точнее 1.5 года. Я уже выстроил фриланс. Заказы шли таким образом, что их было больше, чем я мог сделать. И как в меме с котиком я подумал: "Пора!". Так как я зашивался и часть клиентов спрашивала "а могу ли я делать под ключ, а не только разработку?". И я решил сделать студию. Юр. лицо у меня было. Это было первое что я сделал по переходу на фриланс, открыл ИП, так как сразу же работал с компаниями. Привлёк партнёра, мы наняли дизайнера. И начали работать. За год штат разросся до 10 человек. Может я подробнее расскажу про саму студию про процессы.

Ну хотя давайте сделаем опять по блогерски. Если такие истории заходят, то поставьте 🔥. Соберём 100 штук, расскажу про внутреннюю кухню аутсорс студии Unity разработки. Про привлечение, продажи, маркетинг и тому подобное. Как я считаю бизнесы и проекты (особенно теперь) И чем я занимался с ещё 10 людьми в течении трёх лет.

#бизнес
🔥109
Учитесь договариваться

Надо чёт про разработку написать, а то получится ещё один блог бизнес тренера 🤣 Но это просто моя главная и персональная боль в аутсорсе. Патологическое отсутствие у многих навыка договариваться и использовать все доступные инструменты. Я старый переговорщик. Я договаривался на поставки в других рынках, на аренду помещений и прочее. Раньше, когда был менее опытным, я считал "айти — это другое". Торговать разработкой и торговать условно спичками — это разные вещи. Спустя 6 лет в бизнесе я скажу — это одно и тоже.

В b2b (бизнес с бизнесом) — вообще во всём одно и тоже. Сложнее только то, что в айти сколько стоит какой-то продукт не профессионалу оценить сложно, чем сколько стоит спичка. Поэтому чтобы адекватно что-то продавать полезно быть технарём. Знать что возможно, а что нет и ориентироваться на ходу что сколько стоит. Но можно и без этого. В b2c отличаются детали. Площадки, платформы, методы закупки траффика и т.п. Остальное ровно тоже самое. Но уметь договариваться нужно везде. И понимать, а что является преимуществами.

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

Я всегда уважаю тех, кто торгуется. Кто умеет ставить плюшки и условия. В этом нет ничего "нечестного" или "хитрости". Это просто профессионализм. То что человек понимает чем он обладает, понимает как это можно разыгрывать. И так далее.

Ну и на эту тему на мой взгляд есть замечательная книжка. "Договориться можно обо всем! Как добиваться максимума в любых переговорах" Гэвина Кеннеди. Рекомендую почитать на досуге, если вы занимаетесь бизнесом или фрилансом.

#бизнес
15👍5
Почти всегда правая кнопка :)
11😁4
Задачка "Статический generic класс"

Пишу небольшой репозиторий, который покажет пример работы с рефлексей и атрибутами в Unity, и тут сделаем небольшую задачку на знание шарпа вдохновлённый им. Есть класс public static class UIRouteManager<T> и у него конструктор как на скриншоте (что делает конструктор ща не важно, это я расскажу в статье). Просто лень код удалять. Главное строчка с логом.

Дальше есть код со скриншота 2. Сколько раз в консоли появится "test"? Когда? И почему?

#задачка
🔥2👎1
Григорий Дядиченко
GIF
Написал простенькую систему роутинга по интерфейсу по урлам

Она требует определённого подхода к архитектуре. Но по сути в чём фишка. Через атрибуты окнам указываем их роуты. Прописываем методы. И дальше можем открывать эти окна как будто это урлы в браузере. Удобно чтобы делать кнопку назад и диплинки. Да и в целом контроллировать состояния. Завтра ещё подумаю можно ли как-то подкрутить.

А вообще готовлю это примером для статьи про атрибуты и рефлексию :) Да, без контекста этого видео выше совершенно непонятное :)
🤯4🔥1
Геймдизайн, нарратив, монетизация и все остальное, что касается разработки игр в блоге GOOO.GAMES от Эдуарда Кумыкова.

Интересуетесь общими процессами разработки? Хотите общаться с другими разработчиками игр? Подписывайтесь на канал!
👍3
Путь в фриланс игрового разработчика — Подготовка

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

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

Совмещать с основной работой — сложно. Так как на фрилансе работы больше, чем на обычной работе. И дело не в задачах по вашей специальности, а в сопутствующих задачах. Чтобы хорошо зарабатывать на фрилансе нужно заниматься продажами и маркетингом. Есть какие-то базовые шаги, которые надо сделать. Оформить портфолио, зарегистрироваться на популярных биржах, а дальше уже есть вариации, о которых я расскажу в следующих постах.

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

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

#фриланс
👍132
Поза человека по WiFi
https://80.lv/articles/body-detection-pose-estimation-using-wifi/

Прикольная научная работа о том, как можно определить данные о позиции человека с помощью WiFi и нейросетей. Ребята обучили на нероинку на изображениях и использовали её для определения по вайфаю. Доказав, что возможно определять позицию человека по WiFi, хотя и говорят в работе, что работает это хорошо в лабораторных условиях. И что технология не точная. И приводят кейсы неправильной работы алгоритма. Но как-то работает и интересно. Хотя это и не первая работа на эту тему, но результаты довольно-таки неплохие.

#новости
😍3🤯2
Григорий Дядиченко
Задачка "Статический generic класс" Пишу небольшой репозиторий, который покажет пример работы с рефлексей и атрибутами в Unity, и тут сделаем небольшую задачку на знание шарпа вдохновлённый им. Есть класс public static class UIRouteManager<T> и у него конструктор…
Решение "Статический generic класс"

В комментариях к задаче там уже всё разобрано. Но напишем решение отдельно.

Правильный ответ. Если ничего до этого не вызывалось, то в момент первого вызова методов ShowUI в лог напишется "test". Причём по одному разу для каждой реализации. Под JIT платформами. И связано это с двумя нюансами.

1. Как работает статический конструктор типов

Под JIT платформами статический конструктор типа вызывается при первом обращении к типу (или создании экземпляра типа для не статических классов). Хотя строго говоря это зависит от флагов компиляции, но в Unity можно говорить чуть проще. На эту тему можно почитать
спецификацию от майкрософта, как говорили в комментах.

Под AOT платформами у юнити видимо снова баг, что логи не пишутся, как было тут
https://issuetracker.unity3d.com/issues/static-constructor-doesnt-work-with-il2cpp Так как на айос логи вообще не появляются. Хотя сам конструктор работает, так что всё в порядке.

2. Как работает шаблонный (генерик) параметр для статических классов

По сути, когда вы пишете UIRouteManager<string> и UIRouteManager<bool> — это два разных типа. Поэтому конструктор вызовется дважды.

Так что под виндой в редакторе лог появится дважды. А под AOT платформами его судя по всему не будет.

#задачка
👍1
ИИ для 3д аватаров
https://80.lv/articles/microsoft-presented-3d-avatar-generation-model-rodin/

Майкрософт представил ИИ Rodin для генерации 3д аватаров. Конечно по скриншотам качество странное, но лучше всего того, что я видел до этого.

#новости
😱5👍4
UI Роутер в Unity
https://habr.com/ru/post/711524/

Дописал статью с лёгким разбором рефлексии и атрибутов. Плюс с разбором UI роутера про который я писал выше. Что он решает, зачем он вообще нужен и так далее. И по ходу что написания, что составления примеров я понял, что лучше было бы конечно использовать наследование. Ну может на досуге перепишу через наследование, контейнер и регистрацию в нём. А так думаю статья будет полезна, особенно тем кто не знаком с атрибутами в C# и зачем они нужны.

#статья
👍9🔥4
Путь в фриланс игрового разработчика — Чем можно заниматься?

Игры разрабатывают крупные студии, какой фриланс? Ну игру мечты вы как и в крупной корпорации в среднем не будете делать, так и на фрилансе. Разве чьей то мечты. игры мечты делаются "на свои", ну либо на инвесторские, что вообще другой вид деятельности и работа. Конечно на Java SE или на каком-нить React.js заказов больше. Но там и конкуренция выше. Так чем может заниматься Unity разработчик на фрилансе?

Разработка промо игр — многие бренды заказывают у агенств игры для рекламы.
Разработка интерактивов для выставочных стендов — всякие игры на киннекте в ТЦ (в авиапарке недавно стояла). Игрушки на выставках, какой-то AR и т.п. делается в среднем либо на Unity, либо на UE.
Разработка игр или доработка существующих — есть разные виды заказчиков в этой стезе. Я не встречал заказов в РФ от профильных заказчиков, а вот от непрофильных много. Там бывает тяжело получить адекватную цену за работу, но такая работа есть.
Подготовка ассетов для студий — ко мне приходила пара студий, и я делал им ассеты с какими-то сложными технологими.
Реализация бизнес решений — это не про игры, а AR&VR и 3д — есть много профессиональных бизнес задач. Визуализация трёхмерных графов, тренажёры в VR и AR, рендер сложных многофакторных данных. В общем есть где знания приложить.

Этим всем занимаюсь в том числе и я. Просто я делаю под ключ. Но собственно мне или агенствам бывают нужны руки на какие-то работы. И для этого всего нужны экспертизы из игровой индустрии. Для части решений геймдизайн. Почти для всех решений разработка, 3д, 2д арт, озвучка и так далее. Что делать мы разобрались, а где брать клиентов? Это будет в следующих постах.

#фриланс
👍13🔥1
AR Вещь
https://80.lv/articles/ar-thing-transform-the-entire-world-into-a-game-environment/

Очень классный концепт AR приложения в управлением вещью из Семейки Адамс в реальном мире посредством технологий дополненной реальности.

#новости
🔥4
Термин недели

Так как я хочу, чтобы канал нёс обучающий характер в какой-то степени, то думаю над новой рубрикой. Определение какого-то термина раз в неделю. Из программирования, из Unity, из архитектуры. Просто находить интересные определения. Чтобы мы могли их:

1. Обсудить в комментариях
2. Кто-то для себя узнать и понять

Но мне интересно ваше мнение. Так что поставьте:
🔥 — если это интересно
👎 — если нет

Если наберём штук 50, то введу новый хештег и буду подбирать термины в переводе от меня со ссылками на источники. Сегодня я пол дня провёл в архитектурных обсуждениях в чате по архитектуре. Так что возьмём довольно полезный термин из этого обсуждения. При этом довольно базовый — модель в MVC, MVVM и т.п.

Модель — представляет из себя набор классов, которые представляют данные приложения. Но в архитектурных схемах MVC и MVVM чаще всего имеется ввиду более сложное понятие под названием доменная модель.
Доменная модель — представляет из себя поведение, бизнес-логику и данные в рамках приложения (или его определённого домена).

Пример:
У вас есть класс Auction, который представляет из себя логическую единицу аукциона в приложении. У него могут быть поля Title и CurrentBid, а так же метод Bid с описанной бизнес логикой ставки. И всё это будет моделью.

Источники:
Programming ASP.NET MVC 4 @ Jess Chadwick, Todd Snyder, and Hrusikesh Panda
https://learn.microsoft.com/en-us/xamarin/xamarin-forms/enterprise-application-patterns/mvvm

#термин
🔥89👎1