es
Feedback
Григорий Дядиченко

Григорий Дядиченко

Ir al canal en Telegram

Разработчик игр, интерактивных стендов и интерактивной рекламы. Эксперт в области интерактивов и XR. 100+ проектов за 5 лет. https://whitelabelgames.ru По вопросам сотрудничества писать: @it_bizdev

Mostrar más
2 729
Suscriptores
-1424 horas
-277 días
-5230 días
Archivo de publicaciones
И это я не беру ещё гранты ИРИ. Которые утром игры, вечером деньги. А можно деньги утром? Можно, но игры вперед. Так как там грант на моей памяти давался на готовую игру по сути. И там у меня по математике выходило, что они просто снижают мне стоимость привлечения аудитории. А это значит что либо мне самому надо вложиться, либо найти венчурного инвестора. Венчурные инвестиции в РФ найти на игры приключение такое, что проще обычным айти заниматься и так далее. Даже сейчас, когда мой b2b рынок можно сказать подох (спец проекты сейчас чувтсвуют себя очень плохо) я рассматриваю много разных других историй. Но точно не игры делать в РФ. Хотя я занимался ими столько лет и общался с кучей умных людей из старой школы этого рынка. И меня как человека опытного бюрократия не пугает. Я просто не понимаю как сделать так, чтобы это билось в плюс. И поэтому скажи мне и покажи на простом кейсе, что вот Гришка, мы поможем выйти в Китай без сильной головной боли. Я бы может пересмотрел своё мнение. А то что там бумажки нужно собрать и в очереди за талоном отстоять - для этого существуют специально обученные люди. Что игру нужно делать "на тему". Да не вопрос, я про бизнес эксперт в первую очередь. #новости #мысли

10 миллиардов на игры — и ни одной, в которую хочется играть https://habr.com/ru/articles/1019130/ О чём статья кратко. Государство вложило в российский геймдев миллиарды, обучило тысячи разработчиков и профинансировало десятки игр — но в них никто не играет, потому что вся система заточена на получение грантов, а не на создание продуктов, которые нужны игрокам. И я с ней скорее не согласен, кроме того, что грантовая история, с её трением, вообще штука забавная. К настоящим барьерам для опытных разработчиков. Первый и главный - никто особо не хочет в здравом уме связываться с гос. деньгами. Потому что это очень сложные деньги. Бюрократия и тому подобное. По сути как и мне не хочется заниматься в аутсорсе гос. тендерами. Это требует отдельного человека задачей которого будет составлять документацию. И это не так страшно. Страшнее что задача тех кто работает на этом рынке не сделать продукт, а получить грант. Я в целом не люблю грантоежек ещё со времен когда я тусовался рядом с рынком стартапов и геймдева такого плана. Второе объём рынка и не соответствующие продукты. Если брать рынок россии - можно забить. CIS (а это не россия, а все страны СНГ) всё так же занимаю 2% мирового рынка. Основной рынок сейчас на который "можно выйти" - это азия. И на мой взгляд полезнее всех этих грантов была бы процедура выхода на китайский рынок с российского юр. лица, или даже через государственные механизмы. И другие азиатские страны. Но ладно, 2% и 2%, а сколько это в деньгах? Навскидку при том что общий объём рынка у нас 200 ярдов долларов, то объём рынка СНГ около 4 ярдов. Работать на самом деле можно. Но структурно у нас ещё основа это мобайл, а говоря про игры, автор статьи говорит про ИГРЫ. А на пк остаётся дай бог 1 ярд. Если мы говорим не про геймдев, а про ИГРЫ. И тут вопрос с чем мы конкурируем и как выдержать конкуренцию скажем - реалистично. А конкурируем мы со всем миром за это 1 миллиард долларов. И тут наши решили заняться блокировками, чтобы нужно было кактус сожрать чтобы поставить игру. Только будто бы не учитывается, что речь про людей которые в школе становились сис админами, чтобы поиграть по сетке с другом в сакред, в кс или в героев. Где пока не было интернета много где была своя локалка, по которой люди играли. И сейчас когда есть тонна информации в доступе, куча путей и бизнесах строящихся на обходах блокировок, так как на том рынке есть спрос. Это прям вот самое бесполезное занятие и траты бюджетов (ведь это не бесплатно). В реальности же вопрос маркетинга. Скоров выхода, продвижения, возможности установки игр на площадках удобных игрокам. Рынок и так такой, что разработчики игр это воробушки бьющиеся на крошку хлеба с орлами. При этом с ограничениями на инструменты и прочее, нужно либо что-то выдумывать. Либо орлы вооружены у нас мечами, а мы деревянными палками. При этом никого не учат ключевому на самом деле - маркетингу, продвижению, закупке трафика. Но это в целом прикол геймдева, там всё ещё верят в сказку будто бы "вы сделайте крутую игру, и игроки появятся". Я закопал 3 продукта, потому что начинал их делать без стратегии продвижения и не знал, сколько мне обойдется вывести их на рынок. Все мероприятия не бизнесовые и посвящены по сути продакшену. В общем статья то прикольная. Но выводы непонятные. На бюрократию пофигу, она факт. Игры делать может взрослый бизнес, который нанял человека на бумажки, и он ими занимается. Просто нет толку от денег для людей, которые не понимают как рынок игр даже в целом устроен. Самая частая проблема что люди берутся за слишком амбициозные задачи, думая что им хватит бюджета, на который миску риса то не купишь. И потом разбиваются и бросают игры, потому что их государство спрашивает "ты же сказал что шаришь в этой теме". Реальных экспертов в РФ из старого геймдева осталось мало. И самым полезным были бы не деньги, а понятный механизм выхода на рынки, где понятно как вложения отбить.

Shrink Your Build: отключаем физику в Unity 6.3 https://medium.com/@lemapp09/adaptive-development-shrink-your-build-a5d85798e14c В Unity 6.3 появился официальный способ полностью отключить физический движок при сборке — PhysX или Box2D. Раньше это тоже было возможно через удаление пакетов в Package Manager, но требовало ручной работы и могло аукнуться ошибками компиляции. Теперь в Project Settings > Player > Global Settings > Optimization есть параметр Physics Runtime. Ставишь None — и при следующей сборке физическая библиотека вырезается полностью. Несколько мегабайт долой, FixedUpdate больше не тикает, буферы под коллизии не выделяются. Для WebGL и мобилок — ощутимо. Если физика не нужна, взамен OnCollisionEnter и Raycast используем обычную математику. Проверка расстояния через Vector3.Distance или sqrMagnitude вместо коллайдеров — для UI-игр, карточных и головоломок это и быстрее, и честнее. #unity #optimization #webgl #gamedev

Почему нейросети так сложно починить Есть такой термин в разработке — whack-a-mole. Отсылка к классическому аркадному аттракциону: кроты вылезают из дырок, ты бьёшь по одному молотком — вылезает другой. В разработке так называют ситуацию когда фикс одной проблемы порождает другую. С ИИ-кодогенерацией это случается постоянно и у всех. Типичный сценарий: просишь Cursor поправить баг в системе инвентаря. Он правит. Запускаешь — баг исчез, но сломалась логика стаков предметов которую он не видел в контексте. Просишь починить стаки — ломается сортировка. Чинишь сортировку — возвращается исходный баг в другом месте. Проблема не в том что модель "плохая". Проблема в том что у неё нет глобального понимания системы — только контекстное окно. Она оптимизирует локально, не видя что происходит на три файла левее. Каждый фикс корректен в изоляции и ломает что-то за её горизонтом видимости. Лечится это не "лучшими промптами", а архитектурой. Чем лучше система разбита на независимые модули с чёткими контрактами — тем меньше у модели шансов задеть что-то за пределами её контекста. Небольшой изолированный модуль с понятным интерфейсом — это именно тот масштаб на котором AI работает хорошо. Проблема в том что спроектировать такую систему нельзя делегировать той же нейросети. Это решение принимается до того как написана первая строчка кода, и требует понимания всей системы целиком — того чего у модели по определению нет. Поэтому при переходе на AI-кодогенерацию писать код становится проще. А понимать как его организовать — теперь важнее чем раньше. #мнение #ии

Ответ: б) Только А — Б и В эквивалентны по аллокациям new WaitForSeconds(1f) внутри цикла создаёт новый объект на heap при каждой итерации. Раз в секунду — новый объект, GC копит мусор. Б: объект создаётся один раз в поле класса, дальше каждый yield передаёт один и тот же экземпляр. Ноль аллокаций в цикле. В: yield return null приостанавливает корутину до следующего кадра без каких-либо аллокаций. Паттерн кэшировния работает для всех встроенных yield-инструкций:

private readonly WaitForSeconds _wait1sec = new WaitForSeconds(1f);
private readonly WaitForEndOfFrame _waitFrame = new WaitForEndOfFrame();
private readonly WaitForFixedUpdate _waitFixed = new WaitForFixedUpdate();
Мелочь, но на горячих корутинах которые рестартуют часто — ощутимо. #задачка #unity #оптимизация

Задачка: три паттерна корутин

// А
IEnumerator Loop()
{
    while (true)
        yield return new WaitForSeconds(1f);
}

// Б
private WaitForSeconds _wait = new WaitForSeconds(1f);
IEnumerator Loop()
{
    while (true)
        yield return _wait;
}

// В
IEnumerator Loop()
{
    while (true)
        yield return null;
}
Какой из паттернов аллоцирует при каждой итерации цикла? Варианты: а) Все три — любой yield return создаёт нагрузку на GC, разница только в частоте - 🤷‍♂️ б) Только А — Б и В эквивалентны по аллокациям между итерациями - 🤷‍♀️ в) А и В — Б единственный который не аллоцирует повторно - 🤷 Ответ вечером 🙂 #задачка #unity #оптимизация

Киберпанк, который мы заслужили Искусственный интеллект. ИИ агенты. И прочие достижения современных технологий. Но Сбер остается Сбербанком. Это просто прикол. Марку не теряет даже в текущие непростые времена. Я что-то с утра поделал дела и вспомнил, что хотел на неделе поставить себе приложение сбера. Веб версию им видимо писало ИИ, поэтому там работают переводы через жопу. То есть у них что-то не так с смс гейтом при отправке денег по СБП, поэтому смс с кодом мне может прийти минут через 20 после запроса. С впн, без впн, без разницы. И решил прогуляться пешком до сбера, тут у нас в горах, подышать воздухом, полюбоваться видами. В общем час шел пешком, даже подустать успел. Захожу в сбер, беру талончик, подхожу и узнаю забавный факт. Чтобы поставить приложение Сбера мне нужен паспорт. А я его как на зло сегодня не брал. Но это прям уровень. При этом ни карта, ни что другое не подходит. Бумажный паспорт подавай. Скоро чую будет «там где приложение устанавливал, там и переустанавливай». Жаль я уехал и не спросил, а цифровой паспорт из госуслуг подойдёт, или нужен вот обязательно бумажный. Но подозреваю что второе. Мне кажется нужно уже пойти дальше, и чтобы установить приложение макс, госуслуги или сбер, нужно требовать справку о несудимости и из психдиспанцера. А то вдруг это я, но я с ума сошел или мошенник. А зачем нам в наших системах мошенники? #мнение

Отладка Color LUT в Custom SRP https://catlikecoding.com/unity/custom-srp/6-1-0/ Когда настраиваешь color grading — хочется видеть что именно происходит с LUT-текстурой. Раньше единственный способ подсмотреть — лезть в Frame Debugger. Неудобно. В этом обновлении в Rendering Debugger добавили переключатель Show Color LUT. Включаешь — и внизу экрана появляется полоска с текущей LUT-текстурой камеры. Работает и в редакторе, и в билде. Под капотом — отдельный шейдерный проход, который вручную строит прямоугольник прямо в clip space из шести вершин. Высота полоски масштабируется по разрешению LUT (16/32/64), чтобы пропорции не ломались. Никакого меша — только SV_VertexID и математика. Заодно починили старый баг: если камера рендерила в RenderTexture-ассет, картинка уходила в никуда. Теперь рендерер проверяет camera.targetTexture и использует его напрямую, если он задан. Небольшой туториал, но из тех что учат думать о дебаг-инструментах как о полноценной фиче, а не afterthought. #unity #srp #шейдеры #renderpipeline

Как растёт операционная нагрузка вместе с командой Есть такой момент в жизни любой студии, когда замечаешь, что куча времени уходит не на работу. Бухгалтерия, договоры, согласования, переводы, акты. Один подрядчик — терпимо. Пять из разных стран — уже отдельная работа. Когда я веду крупный проект или несколько мелких, я часто за созвонами, договорами, заказами, актами и переводами не успеваю делать больше ничего. Хотя с точки зрения делопроизводства сейчас многое упростилось. Но ладно, я в аутсорсе — у меня это часть жизни уже давно. У части коллег со всеми событиями последних лет просто нет денег в РФ, и приходится придумывать, как что-то тут оплатить. Отдельная головная боль — выплаты зарубежным подрядчикам. У меня был классный сейлз-менеджер из Минска, в какой-то момент девочка, делающая крутое 3D, переехала в Германию. Да и вообще: я видел студии, где этим занимался разработчик в свободное время. Студии, где это висело на продюсере. Многие, начиная делать проект мечты, забывают, что это бизнес. А бизнес помимо предпринимательской ответственности тянет за собой тонну сопутствующих «ритуалов». Постепенно рынок под это подстраивается — появляются инструменты, заточенные под распределённые команды, тот же Arbonum. Но большинство небольших студий до сих пор решают это руками. При этом международные переводы — это всегда риск: или права оформлены неверно, или деньги где-то просто зависнут. Хорошая новость: это решаемо. Плохая: пока не больно — никто не чинит. А больно обычно в самый неподходящий момент — когда горит дедлайн и выясняется, что у вас нет прав на арт, который уже в билде. #мнение #бизнес

Анимация поверхности воды в реальном времени на Unity https://80.lv/articles/this-enchanting-water-cross-section-was-created-in-unity Sakura Rabbit снова. Если не знаете — один из моих любимых Unity-разработчиков, делает визуально безупречные вещи. На этот раз — лесное озеро с анимацией поверхности воды. Выше — туман и атмосфера, ниже — камни, растительность, лучи света проходящие сквозь воду. У сакуры в портфолио ещё куча подобного — динамические капли дождя, складки ткани в реальном времени, эффект в стиле Venom, каблуки которые адаптируются к высоте персонажа. Если не следите — советую. #находка #unity #шейдеры

Клеточные автоматы с несколькими окрестностями на Compute Shaders https://www.reddit.com/r/Unity3D/comments/1s2sh1u/multiple_neighborhood_cellular_automata_using/ Обычный клеточный автомат — например Game of Life — смотрит на 8 соседей вокруг клетки. Включить или выключить — решает простое правило. MNCA (Multiple Neighborhood Cellular Automata) делает иначе: вместо одной окрестности — несколько концентрических колец на разных радиусах. Каждое кольцо имеет свой вес. Результат — не пиксельная сетка, а плавные органические структуры которые выглядят как что-то живое. Митоз, рост грибницы, нейронные связи. На CPU это не запустить в реальном времени — слишком много вычислений на каждый пиксель. Compute Shaders решают проблему: каждая клетка считается параллельно на GPU. Из тех вещей которые смотришь и думаешь "как это вообще работает" — а потом разбираешься и оказывается что математика там элементарная, просто применённая красиво. #новости #unity #шейдеры #алгоритмы

Про «Наблюдателя» https://www.youtube.com/watch?v=0wVF68QZrtQ Хорошее видео, но на самом деле депенденси хелл чутка преувеличен. Потому что тут вопрос реализаций представленной в видео. Да паттерны обладают разными недостатками. Но тут мне не совсем нравится логика регистрации объектов в наблюдателе. Хотя в видео по сути поднимается проблема депендеси хела со всякими менеджерами типа звука. И в целом берется небольшая проблема прямолинейной реализации. С миллионами зависимостей, узкими точками отказа и так далее. На самом деле это бывает даже не так критично, когда вы пишете не движок, не библиотеку и не фреймворк :) Разберем на примере менеджера звука. Есть про менеджер звука знают объекты визуализации и объекты игровой логики, это казалось бы потенциальная точка отказа. Но мы не на сервере с сложной реализацией сервиса. Менеджер звука обычно это весьма условно стейтлесс штука (точнее её стейт не особо меняется), и она по сути просто что вызывает «системные вызовы» воспроизведения звуков. По крайней мере в той точке где миллиард зависимостей. Если зависимости не меняют состояния, обращаются в точку которая не может отказать и вызывают довольно тупые методы — там сложно создать себе проблемы. Это происходит в других случаях, где множество зависимостей меняют состояние объекта в не пойми каком порядке. Но базово как этой проблемы избежать? Вот у нас есть звук при спауне, звук при сборе и так далее. И тут нам помогает композитная система Unity компонент. И абстрактные Unity события. Система компонент позволяет по юнити событиям делать подобные вызовы при этом не зная о контексте остальной системы. Да и в целом это работает специфично. Потому что это как раз ведет нас к разнице подходом Config-First, Code-First и так далее далее. Но и у них есть своя цена. Код ферст всегда позволяет почти всегда быстро находить проблемы, так как там нет контрактов, которые не зафиксированы в коде. Конфиг ферст всегда имеет какой-то внешний абстрактный контекст и часто требует документации. Для примера с тем же пресловутым звуком. У вас есть понятное место в коде где по логике вызывается сбор кристаллов. И вы вызываете там звук сбора кристалла. Всё явно и очевидно. Альтернативное решение без лишних зависимостей. У вас есть компонента которая в OnDisable вызывает звук по айди. Айди сериализованное поле. Вам нужно повесить на префаб кристалла эту компоненту и прописать айди соответвующего звука. И это уже некий абстрактный контракт не зафиксированный кодом. А видос рекомендую посмотреть. Так как понимать как можно играться с архитектурой проекта полезно. И автор говорит дельные вещи. Что в конкретном примере это не критикал, это неважно, так как когда создаешь подобные материалы трудно подобрать пример который подсвечивает все нюансы. #новости #мнение

200 человек и $50 млн vs один человек и вагон терпения: как соло-разработчик сделал игру уровня Atomic Heart https://habr.com/ru/articles/1013082/ Или кликбейты наше всё. Автор крутой, ничего не скажешь. Вообще уважаю людей доводящих проекты до конца. А тут такой визуально достойный проект. Хз что по геймплею, учитывая такой большой блок про проблемы с сохранениями, но выглядит прикольно. Успешный творческий проект. С точки зрения бизнеса, особенно игрового, цифра в 100к$ для кого-то может звучать внушительно (в статье есть эта цифра, за 6 лет разработки, но к слову сказать без особого маркетинга). Но по сути это 17к$ в год, а после всех вычетов 10-11к$ в год или 1к$ в месяц условно без учета расходов на проект. Ну то есть зарплата джуна за такой титанический труд демонстрирует важность маркетинга. А так я просто не люблю кликбейты. Это скорее не к автору игры, а к автору статьи. Делал проект один, но не один (композитор, жена, еще люди появляются по тексту). И так далее. Но как рассказать про прикольный проект — ладно. А так, не знаю как сам по себе проект, а автор в любом случае молодец. Если смотреть как на творческий проект, чем вполне могут быть игры как форма искусства, а не как на бизнес проект — очень круто. #новости

Кто откуда? Последнее время плохо работает телега (по понятным причинам) Я не хочу заводить канал сами знаете где. И вот мне стало интересно, а кто откуда вообще считает. Я живу уже 1.5 года в Красной поляне. По городам сложно, так что крупными мазками.
Anonymous voting

TDD играет новыми красками если подумать Вообще я только сейчас понял насколько хорошо нейросети подходят под TDD (Test Driven Development). Часто в плане будет стоять тест, но если изначально придерживаться этого подхода, это будет работать до забавного интересно. Основной проблемой для TDD всегда была скорость. Сначала пишем тест, потом код, подключаем это все в CI&CD. И написание + поддержка тестов отнимала кучу времени. Конечно же в данном подходе не стоит и код, и тест генерить нейросетью — такое. Это не TDD, это само подтверждающийся шум. А вот написать тест грамотно, как подтверждение корректности реализации и остальное оставить кодогенерации — звучит разумно. Для мелких задач можно и тесты кодогенерить в целом, но важно держать в голове что ИИ всегда пишет тест не к твоему функционалу, а к своей реализации. То есть тест будет тестировать что сделала нейросеть, а не то что надо было сделать по бизнес логике. Конкретно это выражается в том, что ИИ может: пропустить edge-кейсы, о которых ты не написал явно; выбрать одну интерпретацию неоднозначного ТЗ и последовательно провести её и в тестах, и в коде — всё зелёное, но не то что ты хотел; протестировать детали реализации вместо поведения. Если уметь грамотно контролировать контракты и давать ТЗ на их реализацию. Делать кодогенерацией тесты и реализацию раздельно, то это близко к TDD. Но с грамотно написанными тестами забавно как нейросеть может адаптировать реализацию. Если тест писать самостоятельно, то на самом деле вопрос филосовский важно ли, что в черном ящике. Так как тест может валидировать производительность, безопасность, реализацию, поведение и все что хочешь. Но другой вопрос, что ИИ может пытаться подогнать ответ под тест. Поэтому конечно этот подход нужно проверять временем. Но просто работать может любопытно. #мысли

Ооо, мультики сменили игры Инфоцыгане подключились в новые модные веянья ИИ. Вопрос на сколько им будут верить менеджеры 🙂 Я помню серию роликов на YouTube что заработай 500$ в день с этим методом. И ролики по продакшену мультиков для детей на Youtube с рекламной монетизацией. Теперь начинает прорезаться тоже самое про игры. Но пока заголовки не такие кликбейтные. Жду прям "как я заработал на своей игре 5000$ сделав её нейросетью" Да, конечно процессы упрощаются и нейросети забирают много рутинной работы. Один инженер сможет делать больше, но и работы как бы не мало. Но дело даже не в этом. Если вы знаете как делать успешные продукты в айти на мировой рынок, то изменение костов с 200 000$ на мобильный проект до 80 000$ включив нейросети (с нечистыми правами и прочими проблемами, допустим они вас устраивают) - не так важны. Успешный мобильный проект натурально зарабатывает сотни тысяч долларов в месяц. Поэтому понятное дело, что самым ценным как был, так и есть навык придумывать и доводить до реализации успешные продукты, и нейросети это не решают. Уметь грамотно делать анализ рынка, тестировать продуктовые гипотезы, строить роадмап продукта и так далее. Это те навыки которые тяжело заменить, так как сетки там галлюцинируют часто, ибо чаще всего это опыт которого нет в общем доступе. А что прогеры раньше за неделю фичу делали, а теперь 3, сильно миропорядка в айти не меняет. Но инфоцыгане как всегда забавляют. #мнение #карьера #геймдев

На просторах инстаграма развелось инфоцыганщины про IT. Интересно как у нашего брата на Unity обстоят дела с работой, да и в целом у подписчиков канала. Думаю у меня ИТ преимущественно.
Anonymous voting

На просторах инстаграма развелось инфоцыганщины про IT. Интересно как у нашего брата на Unity обстоят дела с работой, да и в целом у подписчиков канала. Думаю у меня ИТ преимущественно.
Anonymous voting

Unity официально поддерживает Steam https://app2top.ru/news/dvizhok-unity-ofitsial-no-nachal-podderzhivat-steam-238839.html Занятная новость с GDC. Unity наконец-то официально поддерживает Steam — до этого разработчики годами интегрировали Steamworks руками сами, без какой-либо официальной поддержки со стороны движка. Работало, но костыльно. Теперь есть Platform Toolkit, нативная поддержка SteamOS и Steam Deck. Плюс обещают регулярно обновлять Linux runtime — чтобы не нужен был Proton. Честно говоря немного смешно что это случилось только сейчас. Steam — крупнейшая PC-платформа, Unity — один из главных движков для тех же инди. Они просто... не были официально интегрированы. Все просто делали вид что всё нормально 🙂 Ещё интересная деталь: упомянули интеграцию с Fortnite, но подробностей нет. Напомню — в конце прошлого года Unity и Epic неожиданно объявили о партнерстве. Будем посмотреть. #новости #unity

Больше каналов богам каналов @easy_dev_math Те кто читает давно знают что математика в постах — одна из моих любимых тем. Векторы, шейдерная математика, интерполяция. Решил вынести это в отдельное место. Канал называется «Математика в геймдеве по простому» — там буду разбирать математические концепции через конкретные задачи разработки. Не теория ради теории, а почему синус нужен для движения по кругу, зачем матрицы в 2D-игре, как Безье делает анимацию живой. С примерами на Unity. Этот канал никуда не денется — здесь как обычно, всё остальное. Математика просто заслуживает своего места. Кому интересно — подписывайтесь и делитесь с друзьями :)