Dependency Injection
Один из двух знаменитых DI. Не путать с Dependency Inversion из SOLID.
Dependency Injection (или внедрение зависимостей) — это подход к проектировке классов, в котором зависимости объекту даются внешней сущностью.
Многие по неизвестной мне причине связывают всё в куче, и что DI без Composition Root или DI Containers не существует. Хотя изначально это вообще про другое и другие проблемы решает. Тут проще привести несколько примеров кода.
Примеры нарушения DI:
Неудобство в Unity вводить DI через [SerializeField] в том, что юнити не умеет в SerializeField с интерфейсами и так получится только с абстрактными классами. И у этого есть логика, так как интерфейс нельзя сериализовать. Хотя к этой концепции у меня есть вопросы. Так как если есть конкретный инстанс объекта и конкретная реализация на уровне сборки или на уровне рантайма, которая испоьзуется в качестве имплементации интерфейса, то в чём проблема её сериализовать?
В целом ничто не мешает написать свой Composition Root или Dependency Injection Container, но есть удобные и готовые типа того же Zenject.
#термин
Один из двух знаменитых DI. Не путать с Dependency Inversion из SOLID.
Dependency Injection (или внедрение зависимостей) — это подход к проектировке классов, в котором зависимости объекту даются внешней сущностью.
Многие по неизвестной мне причине связывают всё в куче, и что DI без Composition Root или DI Containers не существует. Хотя изначально это вообще про другое и другие проблемы решает. Тут проще привести несколько примеров кода.
Примеры нарушения DI:
public class Foo
{
private Bar _Bar = new Bar();
}
public class Foo
{
private Bar _Bar = Bar.Instance;
}
Примеры кода по DI:public class Foo
{
private IBar _bar;
public Foo(IBar bar)
{
_bar = bar;
}
}
public class Foo : MonoBehaviour
{
[SerializeField] private AbstractBar _bar;
}
Тут может возникнуть у кого-то короткое замыкание. Как это [SerializeField] DI? А где Zenject? DI — это вообще концепция проверяемая и соблюдаемая в рамках класса. Это просто внешнее внедрение зависимости. Абстрактный класс и сериализованное поле позволяет нам сделать такое внешнее внедрение. Позволяет подсунуть туда мок объект, написать юнит тест и так далее. Просто у нас в качестве места, где мы внедряем наши зависимости используются конфиги (префабы) и это опять-так не code-first подход, а config-first.Неудобство в Unity вводить DI через [SerializeField] в том, что юнити не умеет в SerializeField с интерфейсами и так получится только с абстрактными классами. И у этого есть логика, так как интерфейс нельзя сериализовать. Хотя к этой концепции у меня есть вопросы. Так как если есть конкретный инстанс объекта и конкретная реализация на уровне сборки или на уровне рантайма, которая испоьзуется в качестве имплементации интерфейса, то в чём проблема её сериализовать?
В целом ничто не мешает написать свой Composition Root или Dependency Injection Container, но есть удобные и готовые типа того же Zenject.
#термин
👍8👌1
У меня нет портфолио. Что делать?
Продолжим небольшие стори из бизнеса. Это кстати относится и к фрилансу. Вы решили сделать аутсорс студию. Но у вас вообще нет примеров работ (вы же только начали). Что делать?
Вот я ровно таким же вопросом задавался в 2017 году. Да, у меня были клиенты с фриланса. Но я с NDA живу в обнимку. У меня столько соглашений о неразглашении, что думаю эти стопки бумаги займут несколько ящиков шкафа. А скоро и весь шкаф.
Портфолио нет, кейсов нет, есть пара статей на хабре и всё. А давайте разберём, а зачем вообще нужно портфолио? По сути портфолио убеждает в том, что вы справитесь с поставленной задачей. И сделаете то, что от вас требуют. И тогда пришла в голову довольно простая идея. Делать концепты. Некоторые концепты делались под заказчиков. Например.
https://foxsys.pro/beringia-concept
https://foxsys.pro/jagex-concept
https://www.youtube.com/watch?v=4PVpuwRGhLY
На них было одно ограничение. Одни должны быть сделаны максимум в неделю. Цена такого процесса была условные 10-20к рублей на концепт, что со средним чеком проекта 600-700к не так много. И в итоге большая часть концептов на долгое время стала по сути портфолио. Поэтому если нет портфолио и кейсов, то можно их создать.
Вторая часть это подход к оформлению проектов. В последствии это слишком геморно и надолго такой процесс, на мой взгляд, делать не стоит. Можно оформлять каждый проект очень заморочено.
https://foxsys.pro/beringia-game
Это тоже отлично заменяет огромное число проектов и показывает экспертизу в начале. Потом из-за сложности в оформлении такого часть проектов просто не оформляются (у нас порядка 4-5 не оформленных в портфолио проектов). Поэтому мы переходим уже к типовому оформлению проектов + шоурилу. Это удобнее и быстрее, хотя и выглядит менее эффектно. Но сейчас в моём новом формате работы так удобнее + уже есть чем похвастаться при желании.
#бизнес
Продолжим небольшие стори из бизнеса. Это кстати относится и к фрилансу. Вы решили сделать аутсорс студию. Но у вас вообще нет примеров работ (вы же только начали). Что делать?
Вот я ровно таким же вопросом задавался в 2017 году. Да, у меня были клиенты с фриланса. Но я с NDA живу в обнимку. У меня столько соглашений о неразглашении, что думаю эти стопки бумаги займут несколько ящиков шкафа. А скоро и весь шкаф.
Портфолио нет, кейсов нет, есть пара статей на хабре и всё. А давайте разберём, а зачем вообще нужно портфолио? По сути портфолио убеждает в том, что вы справитесь с поставленной задачей. И сделаете то, что от вас требуют. И тогда пришла в голову довольно простая идея. Делать концепты. Некоторые концепты делались под заказчиков. Например.
https://foxsys.pro/beringia-concept
https://foxsys.pro/jagex-concept
https://www.youtube.com/watch?v=4PVpuwRGhLY
На них было одно ограничение. Одни должны быть сделаны максимум в неделю. Цена такого процесса была условные 10-20к рублей на концепт, что со средним чеком проекта 600-700к не так много. И в итоге большая часть концептов на долгое время стала по сути портфолио. Поэтому если нет портфолио и кейсов, то можно их создать.
Вторая часть это подход к оформлению проектов. В последствии это слишком геморно и надолго такой процесс, на мой взгляд, делать не стоит. Можно оформлять каждый проект очень заморочено.
https://foxsys.pro/beringia-game
Это тоже отлично заменяет огромное число проектов и показывает экспертизу в начале. Потом из-за сложности в оформлении такого часть проектов просто не оформляются (у нас порядка 4-5 не оформленных в портфолио проектов). Поэтому мы переходим уже к типовому оформлению проектов + шоурилу. Это удобнее и быстрее, хотя и выглядит менее эффектно. Но сейчас в моём новом формате работы так удобнее + уже есть чем похвастаться при желании.
#бизнес
foxsys.pro
Beringia concept
🔥6
Имя попроще
Так как dyadichenkoga сложно и долго пишется, то я решил себе купить более благозвучное имя в телеграм https://news.1rj.ru/str/dev_game
Покороче и пишется проще. Вдруг кто захочет поделиться каналом с друзьями, знакомыми, колегами. Ведь новые люди на канале всегда мотивируют выпускать больше интересного :)
Так как dyadichenkoga сложно и долго пишется, то я решил себе купить более благозвучное имя в телеграм https://news.1rj.ru/str/dev_game
Покороче и пишется проще. Вдруг кто захочет поделиться каналом с друзьями, знакомыми, колегами. Ведь новые люди на канале всегда мотивируют выпускать больше интересного :)
🔥16🥰2
Эхх, а может тряхнуть стариной?
Хочется с кем-то вживую пообщаться, чёт интересное послушать и может стоит взять да тряхнуть стариной. Ведь когда-то я организовывал Unity Moscow Meetup и CGDevs Meetup. И снова организовать какую-нить встречу про разработку. В целом логотипчики, название и т.п. лежат в нужной папочке. Сайт собрать тоже не трудно. Маленький бесплатный митапчик с полезной инфой. Ну вот пару примеров, как это было "из сохранившегося".
https://www.youtube.com/watch?v=Ns1acAZ8PDU
Можно было бы обсудить что-то про Unity, что-то про графику, что-то про разработку. Конечно думаю в Москве сейчас народ сложнее собрать, но может получится организовать трансляцию или запись. Как думаете, стоит что-то такое сделать? 🔥 — да, 👎 — нет, ну как обычно :)
Хочется с кем-то вживую пообщаться, чёт интересное послушать и может стоит взять да тряхнуть стариной. Ведь когда-то я организовывал Unity Moscow Meetup и CGDevs Meetup. И снова организовать какую-нить встречу про разработку. В целом логотипчики, название и т.п. лежат в нужной папочке. Сайт собрать тоже не трудно. Маленький бесплатный митапчик с полезной инфой. Ну вот пару примеров, как это было "из сохранившегося".
https://www.youtube.com/watch?v=Ns1acAZ8PDU
Можно было бы обсудить что-то про Unity, что-то про графику, что-то про разработку. Конечно думаю в Москве сейчас народ сложнее собрать, но может получится организовать трансляцию или запись. Как думаете, стоит что-то такое сделать? 🔥 — да, 👎 — нет, ну как обычно :)
🔥56👍3👎2
Стена ветра Yasuo
https://www.youtube.com/watch?v=TJdtV8ZaDSM
Gabriel Aguiar продолжает делать туториалы со скиллами из LoL. Выглядит прикольно, правда мне не до конца понятно зачем тут VFX граф.
#новости
https://www.youtube.com/watch?v=TJdtV8ZaDSM
Gabriel Aguiar продолжает делать туториалы со скиллами из LoL. Выглядит прикольно, правда мне не до конца понятно зачем тут VFX граф.
#новости
YouTube
Unity VFX Graph - Yasuo Wind Wall Effect Tutorial
Let's recreate Yasuo's Wind Wall (W) from League of Legends in Unity! It's an inspired version, a fan made version, accompanied with a tutorial for anyone who wants to learn the magic of Visual Effects in Unity. We are going to use VFX Graph, Shader Graph…
Привет новым людям!
Итак, за месяц пришло много нового народу. Спасибо всем кто подписался, надеюсь скоро дойдём до 2000. Люблю циферки :)
И так как нас стало в 1.5 раза больше, то хочется провести несколько опросов, чтобы как обычно сделать удобнее. Плюс всем новоприбывшим хочется показать «технический пост». С информацией из него, читать блог и навигироваться по темам будет удобнее :)
Итак, за месяц пришло много нового народу. Спасибо всем кто подписался, надеюсь скоро дойдём до 2000. Люблю циферки :)
И так как нас стало в 1.5 раза больше, то хочется провести несколько опросов, чтобы как обычно сделать удобнее. Плюс всем новоприбывшим хочется показать «технический пост». С информацией из него, читать блог и навигироваться по темам будет удобнее :)
Чем занимаетесь? Если чёт забыл, то можете написать в комментарии :)
Anonymous Poll
77%
Разработка
11%
Менеджмент
5%
Дизайн, арт (2д графика)
13%
CG/3д графика (анимации, риги, VFX)
6%
Бизнес
1%
HR
3%
Маркетинг/PR
6%
Тестирование
22%
Геймдизайн
3%
Продажи
За это время вышло 7 задач. Они выходят не так часто, так как придумываю я их самостоятельно, а это не всегда просто. Особенно если не переписывать в сотый раз «как из подмножества строки выделить множество…» и так далее. А чтобы было ближе к контексту разработки на Unity.
2д задачка
https://news.1rj.ru/str/dev_game/550
Бесконечный скролл
https://news.1rj.ru/str/dev_game/595
Рисуем график
https://news.1rj.ru/str/dev_game/586
Вооружимся архитектурой
https://news.1rj.ru/str/dev_game/605
Шейдер энергии
https://news.1rj.ru/str/dev_game/643
Статический дженерик
https://news.1rj.ru/str/dev_game/653
Проектируем гриды
https://news.1rj.ru/str/dev_game/683
И мне важно ваше мнение. А далее опрос.
2д задачка
https://news.1rj.ru/str/dev_game/550
Бесконечный скролл
https://news.1rj.ru/str/dev_game/595
Рисуем график
https://news.1rj.ru/str/dev_game/586
Вооружимся архитектурой
https://news.1rj.ru/str/dev_game/605
Шейдер энергии
https://news.1rj.ru/str/dev_game/643
Статический дженерик
https://news.1rj.ru/str/dev_game/653
Проектируем гриды
https://news.1rj.ru/str/dev_game/683
И мне важно ваше мнение. А далее опрос.
Telegram
Григорий Дядиченко
Решим простую физическую 2D задачку
#задачка
Попробуем такой формат. Есть синий кружок радиуса 0.5 и массы равной 1. Есть стенка с центром в 3 юнитах от него ширины 0.5. Нам нужно чтобы шарик попал на оранжевую платформу размера 0.1 с центром в 6 юнитах.…
#задачка
Попробуем такой формат. Есть синий кружок радиуса 0.5 и массы равной 1. Есть стенка с центром в 3 юнитах от него ширины 0.5. Нам нужно чтобы шарик попал на оранжевую платформу размера 0.1 с центром в 6 юнитах.…
👍2
Какая задачка получилась наиболее интересной?
Anonymous Poll
9%
2д задачка
17%
Бесконечный скролл
5%
Рисуем график
42%
Вооружимся архитектурой
15%
Шейдер энергии
8%
Статический дженерик
5%
Проектируем гриды
This media is not supported in your browser
VIEW IN TELEGRAM
Шикарная симуляция жидкости в Unity
https://80.lv/articles/mesmerizing-real-time-liquid-simulation-set-up-in-unity/
Zibra Liquids разрабатывает видимо очень крутой ассет для Unity. Конечно надо будет его потыкать по производительности, но выглядит очень эффектно.
#новости
https://80.lv/articles/mesmerizing-real-time-liquid-simulation-set-up-in-unity/
Zibra Liquids разрабатывает видимо очень крутой ассет для Unity. Конечно надо будет его потыкать по производительности, но выглядит очень эффектно.
#новости
🔥19❤2👍2
SignalR в Unity
https://habr.com/ru/post/712918/
Классная статья про использование SignalR в Unity.
#новости
https://habr.com/ru/post/712918/
Классная статья про использование SignalR в Unity.
#новости
Хабр
Подключаем SignalR к Unity
Часто в играх необходимо получать обновления игрового баланса, обновлять профиль игрока, сохранять достижения и выдавать награды. Если хранить данные прямо в клиенте, то придется ждать публикации...
Побродил, познакомился с кучей народа :) Было прикольно. Я даже немного отвык от «работы в полях». Но мастерство не пропьёшь, как не пытайся :)
Вот они продажи из поста про выставки :)
#лайв
Вот они продажи из поста про выставки :)
#лайв
Тесное партнёрство Unity и Google
https://blog.unity.com/news/google-partnership-expanded-to-help-creators-accelerate-game-development-and-growth
Реклама гугла, юнити сервисы в маркетплейсе гугла. В целом ничего особенно интересного не произошло.
#новости
https://blog.unity.com/news/google-partnership-expanded-to-help-creators-accelerate-game-development-and-growth
Реклама гугла, юнити сервисы в маркетплейсе гугла. В целом ничего особенно интересного не произошло.
#новости
Unity
Unity and Google expand partnership to help creators accelerate the development and growth of their games
Unity announces that it is renewing and expanding its partnership with Google to support studios in the development and growth of live games.
AR на стройках
У меня за окном уже довольно долго грустная и унылая стройка метро. Задумался, что было бы прикольно или по гео, или расклеив на крышах строительных домиков метки посмотреть "а как оно будет?" в AR. Эти домики не так часто перемещаются, как техника. Так что рекалибровать такую штуку было бы не так сложно. Но зато из окон всех близ лежажих домов был бы прикольный AR.
Хотя даже без AR прикольно, просто в виде сайта было бы глянуть или без точного совмещения. Чисто "а что строят то?". И для этого просто наклеить QR на технику или крышу. А то на заборе ты проходишь мимо и тебе не до того, ты бежишь по делам. А дома залип в окно, смотреть всё равно не на что, хоть на AR-ку можно было бы посмотреть. При том, что цена вопроса один большой лист бумаги заказать в типографии и клей, если делать даже без AR. Сайтом с рендерами, которые по-любому есть. Или 3д тур.
#мысли
У меня за окном уже довольно долго грустная и унылая стройка метро. Задумался, что было бы прикольно или по гео, или расклеив на крышах строительных домиков метки посмотреть "а как оно будет?" в AR. Эти домики не так часто перемещаются, как техника. Так что рекалибровать такую штуку было бы не так сложно. Но зато из окон всех близ лежажих домов был бы прикольный AR.
Хотя даже без AR прикольно, просто в виде сайта было бы глянуть или без точного совмещения. Чисто "а что строят то?". И для этого просто наклеить QR на технику или крышу. А то на заборе ты проходишь мимо и тебе не до того, ты бежишь по делам. А дома залип в окно, смотреть всё равно не на что, хоть на AR-ку можно было бы посмотреть. При том, что цена вопроса один большой лист бумаги заказать в типографии и клей, если делать даже без AR. Сайтом с рендерами, которые по-любому есть. Или 3д тур.
#мысли
🔥6💯2
Григорий Дядиченко
AR на стройках У меня за окном уже довольно долго грустная и унылая стройка метро. Задумался, что было бы прикольно или по гео, или расклеив на крышах строительных домиков метки посмотреть "а как оно будет?" в AR. Эти домики не так часто перемещаются, как…
Переоценённая технологичность
Благодаря обсуждению в комментах к этому посту вспомнилась ещё одна мысль. И тут стоит начать с предисловия. Я обожаю нинтендо и считаю её одной из самых креативных компаний в мире. С самыми злыми юристами, но это другой вопрос :)
Речь идёт чисто про энтертеймент. Производственные задачи, бизнес решения, инструменты для работы (как например мы делали для Газпромнефти) — это другое.
Так как проекты придумывают чаще всего люди без опыта в разработке, понимания технологий, что возможно, а что нет. Они часто придумывают какую-то невозможную сказку. Страшнее эта сказка звучит, когда показывают ещё видео с этой сказкой заказчику, которая сделала компания с бюджетами в несколько миллионов долларов, но сдк до сих пор публично даже для своей платформы не выпустила (привет Local Lenses Snapchat).
А разработчики в свою очередь либо оценивают это в несколько чемоданов денег. Либо говорят "вы долбанулись это невозможно". Вместо того, чтобы поступить как нинтендо. Придумать и защитить крутую альтернативу. То есть о чём я?
На мобилках у нас есть неточный 6dof трекинг (ARKit/ARCore), в LBE (это всякие развлечения на локациях типа VR парков) — вообще миллиард игрушек и возможностей, в вебе из недорогого есть гироскоп и маркерный трекинг. Это целая куча инструментов. Но так как задачи воспринимаются как "Партия сказала надо, комсомол ответил есть", очень часто все рассуждают только в рамках "прямого решения". И причём тут всё ещё нинтендо?
У нинтендо в свиче в контроллерах есть только IMU датчик. Но при этом там есть игры: танцы, дуэль на оружии и многое другое с контроллерами. Хотя там по сути только датчик дающий 3dof. Просто они подошли креативно к вопросу и сделали весёлые, простенькие компанейские мини игры. И по этому я говорю именно про энтертеймент. То что придумывает заказчик — это часто бредятина. И да, на стройке точного совмещения не будет. Но если сделать 3д тур, если полностью перекрыть обзор и сделать 360 видео, да даже сделать воздушный шар который летает над стройкой, подлетает к вашему окну и вам машет кто-то из него кидая буклет, который становится сайтом с рендерами. Это смотрится эффектно. Не требует точных систем. И при этом развлечёт пользователя. Для этого просто нужно подходить к задаче не из того "что мы не можем". А из контекста, а что мы воообще можем? И по сравнению с условиями нинтендо у нас миллиард замечательных инструментов, которые можно применить использовав своё воображение.
Поэтому я за то, чтобы не думать "почему это плохо", "почему это невозможно", "это не сделать". А как с имеющимися инструментами сделать классный и весёлый экспириенс для пользователя. А инструментов в AR сейчас просто нереальное количество с которыми можно фантазировать.
#мысли
Благодаря обсуждению в комментах к этому посту вспомнилась ещё одна мысль. И тут стоит начать с предисловия. Я обожаю нинтендо и считаю её одной из самых креативных компаний в мире. С самыми злыми юристами, но это другой вопрос :)
Речь идёт чисто про энтертеймент. Производственные задачи, бизнес решения, инструменты для работы (как например мы делали для Газпромнефти) — это другое.
Так как проекты придумывают чаще всего люди без опыта в разработке, понимания технологий, что возможно, а что нет. Они часто придумывают какую-то невозможную сказку. Страшнее эта сказка звучит, когда показывают ещё видео с этой сказкой заказчику, которая сделала компания с бюджетами в несколько миллионов долларов, но сдк до сих пор публично даже для своей платформы не выпустила (привет Local Lenses Snapchat).
А разработчики в свою очередь либо оценивают это в несколько чемоданов денег. Либо говорят "вы долбанулись это невозможно". Вместо того, чтобы поступить как нинтендо. Придумать и защитить крутую альтернативу. То есть о чём я?
На мобилках у нас есть неточный 6dof трекинг (ARKit/ARCore), в LBE (это всякие развлечения на локациях типа VR парков) — вообще миллиард игрушек и возможностей, в вебе из недорогого есть гироскоп и маркерный трекинг. Это целая куча инструментов. Но так как задачи воспринимаются как "Партия сказала надо, комсомол ответил есть", очень часто все рассуждают только в рамках "прямого решения". И причём тут всё ещё нинтендо?
У нинтендо в свиче в контроллерах есть только IMU датчик. Но при этом там есть игры: танцы, дуэль на оружии и многое другое с контроллерами. Хотя там по сути только датчик дающий 3dof. Просто они подошли креативно к вопросу и сделали весёлые, простенькие компанейские мини игры. И по этому я говорю именно про энтертеймент. То что придумывает заказчик — это часто бредятина. И да, на стройке точного совмещения не будет. Но если сделать 3д тур, если полностью перекрыть обзор и сделать 360 видео, да даже сделать воздушный шар который летает над стройкой, подлетает к вашему окну и вам машет кто-то из него кидая буклет, который становится сайтом с рендерами. Это смотрится эффектно. Не требует точных систем. И при этом развлечёт пользователя. Для этого просто нужно подходить к задаче не из того "что мы не можем". А из контекста, а что мы воообще можем? И по сравнению с условиями нинтендо у нас миллиард замечательных инструментов, которые можно применить использовав своё воображение.
Поэтому я за то, чтобы не думать "почему это плохо", "почему это невозможно", "это не сделать". А как с имеющимися инструментами сделать классный и весёлый экспириенс для пользователя. А инструментов в AR сейчас просто нереальное количество с которыми можно фантазировать.
#мысли
Telegram
Григорий Дядиченко
AR на стройках
У меня за окном уже довольно долго грустная и унылая стройка метро. Задумался, что было бы прикольно или по гео, или расклеив на крышах строительных домиков метки посмотреть "а как оно будет?" в AR. Эти домики не так часто перемещаются, как…
У меня за окном уже довольно долго грустная и унылая стройка метро. Задумался, что было бы прикольно или по гео, или расклеив на крышах строительных домиков метки посмотреть "а как оно будет?" в AR. Эти домики не так часто перемещаются, как…
🔥4