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

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

Відкрити в Telegram

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

Показати більше
2 733
Підписники
-1424 години
-277 днів
-5230 день
Архів дописів
Как же иногда бесит Git LFS Git lfs часто и любопытно ломается. То какой-то файл найти не может, то что-то ещё. Особенно заба
Как же иногда бесит Git LFS Git lfs часто и любопытно ломается. То какой-то файл найти не может, то что-то ещё. Особенно забавно он себя начинает вести с несколькими ремоутами. Так как там если у тебя локально нет какого-то файла, то запушить бывает целым приключением. За последние 2 месяца правил я какие-то проблемы уже дважды. Сейчас вот, так как у нас был переезд сервера гитлаба на новый, то как бы гит проблемы не увидел. Того, что это атака по середине и его ssh клиент почему-то не ругался. А вот lfs же (так как у меня не было одного файла, мне нужно было сделать git lfs fetch --all) начал ругаться. Ок. Сделали хендшейк с хостом, вроде всё ок? Не, теперь он просит пароль при ssh подключении. Кайф Но бесит даже не это. Но любопытно такой кайф только под виндой? Промт с паролем нельзя закрыть не убив процессы руками. Ну то есть git-lfs будто бы не знает концепт "сопроцессов". Так как ожидаешь поведение. ЛФС сопросцесс гит клиента, ssh клиенты сопроцессы lfs. Поэтому когда закрываешь гит, всё должно закрыться. Но нет. Оно всё равно открывает окно с паролем. Допустим вы знаете, что этот промт открывает процесс ssh. Но просто закрыть его нельзя, так как ssh клиент будет переподнят git lfs. Поэтому сначала убивается гит лфс, а потом ссх клиент. И даже логику транзакций так обработать не трудно, создав демона для этой задачи, если рассуждать что с "сопроцессами" что-то пойдёт не так. Все локи и прочее в гите — это текстовые файлы конфигурации. Ну сейчас нет никакой проблемы хоть перед опасными операциями делать полный бекап, а потом восстанавливать из него "демоном" если процесс закрылся как-то не так. Но незакрывающиеся окна — это раздражает. Ладно, пойду что ли ремоут пока на https заменю, чтобы сделать то, что мне надо. Это вероятно сработает.

Doom запустили в инспекторе https://github.com/xabblll/DoomInUnityInspector Есть такое дело, дум запускать где угодно. И вот и на Unity запустили Doom. Можно поиграть в инспекторе :) Если вдруг кто забыл управление. Ctrl стрелять, пробел открывать использовать (открывать двери) Чтобы установить себе в редактор и заниматься более важными вещами чем какая-то там разработка нужно в Package Manager добавить git url https://github.com/xabblll/DoomInUnityInspector.git И всё. Дум работает. На версии 2021.3.16 — протестировано :) #новости

Про JPEG https://www.youtube.com/watch?v=0me3guauqOU Интересный ролик про JPEG. Всегда интересно разбирать алгоритмы сжатия и т.п. Когда понимаешь идеи лежащие в этом всём, то становится понятнее как решать более сложные задачи. А текстуры — это один из основных сущностей игровой разработке. И понимать их устройство, что такое цветовые пространства, что такое изображение в памяти и так далее. Это даёт в разы больше инструментов для реализации классных проектов. #интересное

Интересная подборка туториалов от Unity https://blog.unity.com/games/7-tutorials-to-help-uplevel-your-unity-skills-in-2023 Прикольный набор курсов для новичков. Даже AR охватывает. Правда фейсмаски меня сначала заинтриговали, а потом это оказывается про айос. Так что ничё особо нового :) Но всё равно неплохие обзорные курсы и бесплатные в плюс к тому. #новости

Обоснование задачки "Бесконечный" скролл Скриншот так сказать для пруфов. На видео листается 720 896 элементов. Просто тормоз
Обоснование задачки "Бесконечный" скролл Скриншот так сказать для пруфов. На видео листается 720 896 элементов. Просто тормозит оно не из-за скролла, а из-за отрисовки инспектора. Если цеплять это окно. Так вот, а теперь по деталям решения задачи. В первую очередь это задача на знание того, как сделать "свой контент сайз фиттер" и понимание, чем плохи лейауты Unity. Так как на лейаутах всё ляжет даже на 100 элементах на мобилках. И оно уже будет тормозить. Окна адаптирующиеся под текст делаются очень просто. Для этого надо знать про существование метода. GetPreferredValues в TextMeshPro. И уметь работать с размерами RectTransform. Из важных нюансов, что для контроля высоты нужно прописывать доп. параметры в метод. В виде желаемой ширины и желаемой высоты. Так как иначе юнити берёт настройки не из рект трансформа, а судя по всему из шрифта. А вот часть с бесконечным скроллом уже сложнее. Так как нужно понимать, как работать с пулом, со скролл вью и с тем, как делаются в целом нетормозящие скроллы. Просто плохо сделанные скроллы — это моя боль. Первый проект, который я делал на фрилансе ещё пять лет назад передали мне со скроллом на лейаутах и контент сайз фиттерах юнити. И на 40 элементах оно не выдавало 60 фпс на топовом устройстве. А на скроллах очень заметны тормоза. Поэтому у меня в целом аллергия на Unity лейауты. Тут просто показано решение одним скриптом, как с помощью методов расчитать размер контента и вместо 720к+ элементов мы будем переставлять 8 элементов. И в этом весь трюк. Плюс ряд оптимизаций. Остальное можно понять разобрав код.

"Бесконечный" скролл #задачка Сделать скролл который будет вмещать в себя 500 000 элементов случайного размера по высоте и не будет тормозить. Например игровой чат или система диалога, где размер текста непредсказуем. Решение: https://github.com/Nox7atra/Unity-Test-Tasks/blob/master/Assets/Unity-Test-Tasks/Task_3/Scripts/FastDialogScreen.cs https://github.com/Nox7atra/Unity-Test-Tasks/blob/master/Assets/Unity-Test-Tasks/Task_3/Scripts/DialogBubble.cs В репозитории я убрал мок генерацию 721 000 строк, так как не у всех сцена с таким числом запустится. Это просто дорого по оперативной памяти. Это задачка возможно даже посложнее, чем прошлая.

Год из жизни CTO в GameDev https://habr.com/ru/post/709124/ Интересная статья про опыт CTO в игровой индустрии. Даже добавить особо нечего :) #новости

Unity Deque https://github.com/Nox7atra/Unity-Deque Для разминки написал коллекцию Deque (Double-ended Queue) и вынес в пакет. Она бывает полезной для операций где нужно быстро добавление удаление из начала или из конца и важен порядок. В отличии от классической реализации таких очередей она опирается не на массив, а на LinkedList, который позволяет делать по сути всё тоже самое, только с чуть более привычной сигнатурой класса для очереди. Deque, Peek и так далее. Ну в общем требование добавление и удаление из начала и из конца в О(1) соблюдено. Как и отсутствие доступа к ненужным операциям (доступ к вершинам связанного списка). Так как коллекция возвращает везде только значения. Да, можно было избежать дублирования кода, написать обощающие методы. Но когда пишутся свои коллекции лучше писать с дублированием, чтобы просто код был оптимальнее и не делал лишних проверок.

Как достигнута комиксная стилистика в игре Rollerdrome https://www.youtube.com/watch?v=G1NY0LKDqJo Классное видео про то, как можно достичь визуала комикса в Unity. Так сказать как красиво нарисовать аутлайны на 3д моделях. #новости

Как сделать билд минимального размера в Unity? https://habr.com/ru/post/709126/ А вот и статья про то где и что можно поджать внутренними инструментами Unity и рядом дополнительных техник. Без узких глубоких оптимизаций конечно, так как есть ещё техники подходящие прям совсем конкретным проектам. Вроде получилось неплохо пройтись галопом по европам. А остальное уже очень специфичная конкретика проектов. Часть вещей для многих думаю будут банальными и очевидными. Вроде атласов. А про найн слайс и вертексные параметры — то что про это не думают, и я замечал довольно часто перехватывая чужие проекты. Плюс по нюансам я сталкивался с тем, что кто-то пытался оптимизировать размер изображений в проекте с помощью утилит мака и т.п. Хотя это не работает.

Пишу материал по оптимизации веса билда. Думаю может получиться любопытно и надеюсь завтра я добью. Хотя я в одной только опт
Пишу материал по оптимизации веса билда. Думаю может получиться любопытно и надеюсь завтра я добью. Хотя я в одной только оптимизации текстур уже закопался на три пункта. Но хочется собрать некий чеклист.

Код Хаффмана https://www.youtube.com/watch?v=B3y0RsVCyrw Классное виде про код Хаффмана. Очень полезно знать идеи кодирования и декодирования информации. Логики алгоритмов сжатия и т.п. Данные знания позволяют делать очень много прикольных оптимизаций. У меня например как-то стояла задача сжать 3д модели с весьма специфичной структурой вертексов. И это получилось сделать разработав свой простенький формат в который перегонялись вертексы и другие параметры модели, и так же оптимизировав данные по идеям кода Хаффмана. #теория

Неиронки и лабы https://youtu.be/L9oA58siF3k Год у нас прям начинается с ИИ. Но думаю, какое-то время в этом году это будет довольно активным трендом. Наткнулся на такой видос на ютубе и задумался. Как теперь проверять студентов? Проблема существует и с ассетами, но с нейросетями люди станут ещё меньше писать код. Для профессионалов это просто полезный инструмент. Но любопытно не приведёт ли это к деградированию среднего специалиста в разработке в целом :) Со всеми лабами неиронка я уверен, что справится. С простыми задачами да. Но мне кажется получать в руки такие инструменты, или пользоваться ассетами в коммерческой разработке можно, когда у тебя уже рука набита. Так как ты знаешь как что-то исправить, понимаешь проблемы ассетов и так далее. Как бы не расхаживали новичков нейросети. Так как нас будет ждать прикольная эра слабых программистов, которые собирают тысячи багованных программ :) И таких же бизнесов и бизнес моделей :) #мысли

Игра с помощью Chat GPT в Unity https://www.youtube.com/watch?v=u4vYtmaOerA Всех ещё раз с новым годом! Праздники, праздниками, а посты по расписанию (если бы особенно оно у меня было). Ну надо же под что-то есть прошлогодние салаты XD Прикольное видео про создание игры с помощью нейросетей. И очень крутой результат. Вообще надо поковырять будет ChatGPT как-нибудь, но думаю недолго осталось до момента, когда кто-то встроит нейросеть в свою IDE. Вероятно появится обучение по тому "как правильно писать промты". Но программистов конечно же эта штука не заменит. А вот для прототипирования просто гениальная штука. Выглядит круто конечно :) #новости

С Новым Годом!)🍾🎁🎈🎉

EscapeUrl и Uri Scheme В операционных системах есть такая удобная фигня как uri scheme. На ней строится функционал диплинков.
EscapeUrl и Uri Scheme В операционных системах есть такая удобная фигня как uri scheme. На ней строится функционал диплинков. И есть много удобных схем типа mailto. Пользуясь такими схемами не стоит забывать, что это обращение по URL. И соответственно правила там точно такие же. И проблемы возникают аналогичные. У нас недавно была проблема, что mailto работал на андроид, но не работал на айос. И почему? Так как в шаблоне тела письма были "пробелы". Решается это довольно просто (как на скриншоте). Главное помнить, что обращение по uri схеме обладает такими же ограничениями, как обращения по урлу. И не все веб клиенты автоматически эскейпят нужные символы. Думаю кому-то понимание этого вопроса может сэкономить время #трюки

Скрыть папки в Unity Иногда многие не знают про какие-то удобные мелочи. Так как они о них не задумываются. У нас сейчас в пр
Скрыть папки в Unity Иногда многие не знают про какие-то удобные мелочи. Так как они о них не задумываются. У нас сейчас в проекте под айос не собирается Yandex AppMetrica. (Ошибка 'YandexMobileMetrica/YandexMobileMetrica.h' file not found) А тестировать основной функционал всё равно надо. И есть по сути с такими ошибками сборки два пути. Удалить метрику целиком. Но это странный диф в репозитории или коммит, который потом ревёртить. Или же скрыть папку на препроцессинге билда (ну либо руками, диф будет просто меньше, и понятнее как вернуть. Просто заменив символ). А в Unity чтобы скрыть папку достаточно прописать ~ в конец её названия. Так например с метрикой папка будет называться AppMetrica~. Мелкая фича, а бывает довольно удобной :) #tips&tricks

Классная подборка материалов для разработчиков игр https://dtf.ru/gamedev/1540562-podarok-dlya-dtf-bolshoy-sbornik-naydennyh-materialov-dlya-razrabotchikov-igr-za-2022-god Классные туториалы, интересные видео. В общем крутая подборка! #новости

Ну и текстом. Если кому-то неудобно слушать. Не подскажешь куда копать, читать и что смотреть по теме сжатия Unity билдов? Хорошая идея. Для статьи. Напишу в след году в начале. Про настройки оптимизации текстур и ассетов в юнити и в общем про техники «как подужаться» Как используешь namespace? С одной стороны удобно разделять логику, но по итогу лишь задолбался от этого. Да и так мало кто делает, судя по коду в интернете. Может продолжу использовать namespace, но без разделения на всякие ProjectName.UI, ProjectName.Utils и тому подобные. Оставлю лишь название проекта и все. В соло проектах смысл не так очевиден. А в крупных. Во-первых, чтобы не попасть в ад длл и конфликт в именах, когда подключаются какие-то плагины. Во-вторых, я по специфике сам не всегда этим пользуюсь в аутсорсе. А в продуктах идея в том, что если есть namespace Core и UI, то удобно завести контракт что Core никогда не обращается в UI. Это простое правило делает сопровождение логичной архитектуры проще. И косяк сразу видно на ревью по подключенному неймспейсу.

Григорий Дядиченко - Статистика та аналітика Telegram каналу @dev_game