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

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

Открыть в Telegram

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

Больше
2 753
Подписчики
-424 часа
-177 дней
-2930 день
Архив постов
Понимание памяти в Unity | Unite 2025 https://www.youtube.com/watch?v=0y3erF2tzbI Я в целом люблю все доклады с Unite про память. Это по сути база. Обзор того как работает память. Как грузятся данные в кеш цпу, что такое кешмиссы. Про GC и тому подобное. Случайный доступ к памяти и последовательный по сути объясняется этим же. И чем так круты массивы. Осталось понять базово что такое кешлайн сплиты и вы готовы к концепции DOD (Data Oriented Development). На сколько это нужно в реальном продакшене? Ну во-первых, всегда в жарком споре сказать "какую фигню ты пишешь у тебя тут 2 кешмисса", а во-вторых, что важнее - это нужно там где нужно оптимизировать. У меня есть проекты где идет обработка миллионов операций за вызов функции (алгоритмы на графах, переборы комбинаторики, симуляции физических процессов), и там я думаю как это оптимально уложить в кеш. Потому что когда мне нужно перебрать 1 миллион операций, там с грамотным использованием памяти можно ускориться не на 10%, а в несколько раз. Обычно это важно конечно в чем-то финансовом или связанном с математическим моделированием физических процессов, а я всё же фундаментальный информатик как никак. Когда же вы делаете веб-матч-3 и так далее это вопросы которыми реже приходится задаваться, так как это редко бывает таким классом продукта, где так важна оптимизация и экономия на спичках, чтобы трогать unsafe скажем. Начиная с того, что unsafe в вебе не работает в целом 🙂 Но примеры прикольные, я не знал что в 7 шарпе появилось ключевое слово ref для получения доступа к структуре по ссылке, а не по копии значения. Люблю сопособы выстрелить себе в ногу, ведь понимаешь что если структура была выделена на стеке, то это приведет нас плавно к боксингу, а если изначальная копия лежит где-то в хипе то по идее нет. И пойди проследи чтобы при использовании функции боксинг не возникал. В общем интересная технарская фигня для разработчиков "всех возрастов" так как даже будучи сеньором на мой вкус всю это лабуду можно часто не знать. А ведь знать её стоит. Ну а новичкам в целом стоит учиться понимать то, как работает компуктер на самом деле. #новости

Понимание памяти в Unity https://www.youtube.com/watch?v=0y3erF2tzbI

Unity 6 tips: Combine Meshes https://www.youtube.com/watch?v=vPhRADmT-zs Кто-то пустил маркетологов в советчики? Охххх, на сколько же опасно давать такие советы. В целом это может быть правдой. В определенном контексте. Но джуниор разработчики люди творческие. По себе помню, когда я какого-то подрядчика ругал за new SomeData внутри цикла, так как не разбирался в памяти, куче и стеке. И по привычке из плюсов new - это в среднем зло 🙂 А оказалось потом неожиданно, что когда SomeData это структура, то там аллоцируется на стеке и это условно ничего не стоит (ну к фризам из-за памяти и фрагментации хипа не приводит точно, так как куча не задействована). И вот этот видос мне показался чем-то подобным. Рассказали про функционал. Классно. Для тех кто не знал. Даже не обязательно погружаться в детали и контекста рендера. Но это не совет, это обзор функционала. Потому что для этого надо понимать ответ на вопрос. Представим вы делаете экшн рпг и у вас огромный замок. Почему весь замок мы не можем сделать одним мешем? Ну типа даже мы проходим по ограничению на число вертексов, у нас не самый высокополигональный замок. Почему если в нём много комнат и мы находимся внутри, а не снаружи так делать обёективно плохо? Потому что вы тихо сказали шине гпу - жри. Ладно там в шейдерах вам поможет фруструм куллинг хотя бы с фрагментными шейдерами. Но вы всю модель, кусочек который вы видите, потянете грузить в видеопамять. Помню как впервые столкнулся с этим в VR используя MeshCombiner ассет, и объединив всю сцену в единый меш. Но тогда я даже не мог осознать почему стало медленее. А сам функционал конечно полезный и прикольный. Просто о нем стоит знать и быть с ним стоит быть осторожным) Там есть ещё пара приколов с которыми можно столкнутся, когда у вас шейдеры задействуют текстурное смещение или типа того, но это концептуально более понятный момент, чем то что вытекает из принципов работы GPU. Стандартный меш загружается целиком. Вы не можете загрузить в VRAM только часть его вершин произвольным образом. GPU работает с мешами как с едиными объектами данных. Если вы видите часть одного объекта (например, половину дома), это означает, что его bounding box попал во фрустум. На GPU будет отправлен весь меш дома, обработаны все его вершины вершинным шейдером, но отрисованы (растеризованы) будут только те треугольники, которые прошли тест глубины и попали в экранные границы. #новости

Фото подтверждение что я был на сцене и что-то вещал :)
+2
Фото подтверждение что я был на сцене и что-то вещал :)

NoiseShader — библиотека градиентного шума для Unity https://github.com/keijiro/NoiseShader Когда я натыкаюсь на репозитории Keijiro - это всегда что-то интересное. А шум часто бывает довольно полезен. NoiseShader включает функции шума, портированные из библиотеки webgl-noise, разработанной Stefan Gustavson и Ahima Arts. С помощью этого пакета вы сможете использовать различные типы шума в своих проектах: 1D градиентный шум; классический шум Перлина (2D/3D); периодический шум Перлина (2D/3D); симплекс-шум (2D/3D); аналитические производные симплекс-шума (2D/3D). Лицензия: MIT. #интересное

Как прошел KamaDev Итак, хотел я дождать своей фотки со сцены (забыл попросить кого-то на телефон сфоткать, теперь жду фотку от фотографа). Но думаю лучше написать как прошло сейчас. Пока впечатления ещё живы. В общем. Мне понравилось. Было круто. Спасибо организаторам что позвали и дали возможность выступить. Мой доклад был достаточно общий и обзорный. В следующий раз надо подготовить что-то чисто техническое, где можно рассказать будет про какие-то нюансы движка. Мне пожалуй непонравилось только моё выступление. Давно не был на сцене, забыл что говорю там достаточно шустро и получилось довольно коротко. Хотя и завершенная мысль на мой вкус на тему "зачем нужны прототипы" и как прототипировать в общем. Со сцены вещать технические моменты вроде "откройте пробилдер и набросайте сцену" - не вижу смысла. Это формат мастеркласса, а не лекции. В остальном мне всё понравилось. Препати была простенькая, но забавная. И хотя нам напихали в турнире по CS я там познакомился с несколькими ребятами. Турнир там конечно лишний, на мой вкус, так как он ограничивает нетворкинг, особенно в такие тайминги препати. Но было забавно. Сами дни интересные. Стена вакансий, выставка художников, стенды инди разработчиков, доклады спикеров. Я исторически на конфах хожу на редкие доклады, так как по сути мне мало какие темы интересно смотреть онлайн. Но пару докладов были интересными. Особенно любопытны были для меня циферки и инструменты аналитики от Андрея из VKPlay. Там я узнал и о текущем состоянии рынка, и о том что только около 4% игр на стиме зарабатывают больше 200к$. Про Newzoo, SteamDB и так далее. Я в целом продуктами уже давно не занимаюсь, но вдруг будет желание что-то сделать. Послушали питчи инди разработчиков. И там ребятам надо учиться. Мне кажется лучшую школу на эту тему мне дал Microsoft. Я в целом когда-то много питчил, что мне впоследствии пригодилось в процессах продажи чего угодно. Надо учиться кратко формулировать мысли, соблюдать тайминги, не использовать недоказуемые аргументы. Но с другой стороны была ностальгия. Помню я времена когда я участвовал в Imagine Cup, в битвах стартапов и других активностях около венчурных денег. И сам мыслил на уровне аналитики "если хотя бы 1% человечества купить наш проект - мы окупимся" 🙂 Хотя считается и доказывается это не так. Но то что ребята там плохо умеют в экономику, фин модели и аналитику - это нормально. Для этого опыт нужен и эксперты в этой теме. Там вообще всегда проще с консультантами. А вот на тему таймингов и кратко рассказать о проекте в двух преложениях - это самое ключевое и важное. Нас учили, что рассказать суть проекта инвестору вы должны успеть за минуту пока едете с ним в лифте. И как завершение была прикольная афтерпати. Пообсуждали всякое. В общем было здорово. Поеду ещё если позовут 🙂 Но меня в целом можно звать куда угодно. Я могу рассказать много интересного. А сейчас снова в рабочий ритм. По обсуждениям на конфе может мне таки стоит сделать свой курсик по шейдерам и рендеру. Может займусь этим, когда разгребу коммерческие запросы. #оработе

Видеосообщение00:08

https://t.me/justGameDesign был на связи, а я брожу, гуляю

Видеосообщение00:08

Видеосообщение00:58

Измененное восприятие информации Сижу слушаю панельку и вспоминаю другие конфы на которых бывал. Я последнее время редкто куд
Измененное восприятие информации Сижу слушаю панельку и вспоминаю другие конфы на которых бывал. Я последнее время редкто куда-то выбираюсь. Последний раз был на Prototype в прошлом году, а до этого нигде не был лет 5. И забавные наблюдения. С опытом по-другому слышишь информацию. Когда я был голодным инди в году эдак 2015 я ходил на конференции и по сути не понимал что там рассказывают. Опыта в бизнесе не было, как и опыта в разработке игр, поэтому всё что там говорили для меня было непонятно. Я просто хотел разрабатывать игры. А что там какие там налоги, как ищутся инвестиции, как работает бизнес. Что-то непонятное. С текущими навыками я уже сразу понимаю, как можно рассказанную информацию применить. С другой стороны мне это и меньше надо. Слушать интересно, но типа это уже для меня не является загадками. Это не плохо, панелька прикольная. Это скорее именно забавное наблюдение. Раньше я слушал и не понимал, сейчас я слушаю но и так всё знаю. Тут уже как говорится можно узнать "конкретные лица" в конкретных бизнес задачах. До кого достучаться и с кем поговорить. Конечно на нетворкинг мероприятия в этом плане выбираться прикольно, так как когда пытаешься решать это через рукопожатия - это реально. Когда я организовывал митапы я нашел контакты ребят из Unity через знакомых и договаривался по телефону. Но в любом случае трение больше и нужно обладать достаточной наглостью чтобы со своей маленькой идеей стучать большим и страшным компаниям. Особенно в бытность студентом было такое мышление, сейчас понятно что все мы зарабатываем деньги и никого большого и страшного нет. Со всеми можно договориться. Вообще надо чаще куда-то разбираться чтобы понимать о чём вообще ща думает рынок. Играми я конечно уже занимаюсь мало, но вдруг появится желание. А то я замкнулся в рамках своего конкретного бизнеса. Думаю ещё напишу потом большой пост про конфу (помимо кружочков с полей) о том, как всё прошло. #оработе

Видеосообщение00:08

Занял почетное 3 место. Битва была жаркой. С первыми двумя командами мы бились чисто как со школьниками. То есть нас напихали
+1
Занял почетное 3 место. Битва была жаркой. С первыми двумя командами мы бились чисто как со школьниками. То есть нас напихали без шансов :) Но потом победили на тоненького в почти равной битве, так как с нами было секретное оружие. Человек который умеет играть в КС :) Так начался https://kamadev.ru для меня :)

Мы совершенно случайно проиграли в сухую. Наверное читы. Или хуже, оппоненты умеют стрелять и бросать флешки :)

Видеосообщение00:09

Да, минимальную программу туриста выполнил. Посекунчики — поел, соленые уши — поглядел. Плюс одна точка в РФ где я был считаю
+1
Да, минимальную программу туриста выполнил. Посекунчики — поел, соленые уши — поглядел. Плюс одна точка в РФ где я был считаю засчитана.

Видеосообщение00:55

Видеосообщение00:28

Этика и коммерция Чет меня повели куда-то мысли. Началось всё с братьев Люмьер. Потом мысли о том, что семья как абстракция дает открытия называть в стиле «братья». Открытия же двух друзей называют двойным именем. Хотя в науке обычно это связано с другим, но в целом всегда будет вопрос чье имя будет стоять первым. Например теорема Больцано-Коши. Но теперь возьмем разработку. Есть библиотеки которые используются повсеместно. Скажем там JsonNet в Unity, часто используется Boostrap в вебе. И если условно используя омофоны как в старой игрушке Peace, Death! получается что популярная библиотека как-то не так называется. Будет ли конкурентным преимуществом другой библиотеки название? Сколько это стоит? Будут ли порты на более приличное название, чтобы весь офис не говорил: «Ну зайди, исправь PeaceDeath»? :) #мысли

Хватит использовать текстуры! Используйте шум! https://www.youtube.com/watch?v=wIEfA6J9Y4k Автор рассказывает по сути о том, как сделать шейдер создающий разную фактуру используя шум из Shader Graph. И что тут хочется сказать. Ничего плохого я в целом не вижу, ну техника и техника. Ну вместо памяти оперативной (а она стоит ща как крыло от боинга) мы нагружаем гпу. Ну и ладно. Но ключевое тут даже, а зачем это вообще надо. Сделаем допущение, что это действительно оптимизация. Просто примем это на веру, хотя там есть нюансы. Но как ей пользоваться? У программистов на самом деле много развлечений не имеющих отношения к реальным процессам продакшена. Делать игры размером в 54кб, делать инструменты которые не используют Х. Но как выглядит реальный продакшен? С определенного уровня это не только разработчик. И даже не только разработчик и художник. Если декомпозировать продакшен на объекты значимые для производства есть отдел производства контента, есть отдел разработки, есть отдел тестирования, можно ещё в отдельную касту выделить продактов или в геймдеве геймдизов, которые придумывают что всем делать. Остальное бизнес юниты. И как мы получаем функцию в продукте? Продакты придумали -> контент создал визуал -> разработчики собрали -> тестеры оттестили -> разработчики исправили Всё остальное это уже скорее операционная поддержка (когда по аналитике и пользовательскому фидбеку функции дорабатываются). Итак к чему я это? Благодаря наличию второго блока, наличию арт дирекшена, техники подобные этому в реальном продакшене в целом не применимы. Особенно в общем смысле. Шумом пользоваться можно и нужно, но заменить им текстуры и задавать фактуру на всех объектах около невозможная и бессмысленная задача. В этом кстати говоря отличие допустим от моей статьи про градиенты. С градиентами идет общая оптимизация не влияющая на стилистику +- применимая для любого проекта с градиентами. С шумом тоже полезная техника, но узко применимая в конкретных случаях. Вообще надо наверное учиться писать кликбейтные заголовки. Мог же назвать статью "Выкиньте свои градиенты на мороз, вот как надо делать!". Эххх.... #новости