Unity Architect: архитектура unity проектов (@UniArchitect) — Telegram-канал | Telegram Dialogs
Telegram Dialogs — логотип
Все каналы
Unity Architect: архитектура unity проектов

Unity Architect: архитектура unity проектов

@UniArchitect

5.3K подписчиков технологии 💬 Комментарии открыты

Пишу о том, что нельзя нагуглить про архитектуру, разработку и пр. Мой курс по архитектуре: https://course.uniarchitect.dev/y/9b8ec0c Иногда выкладываю видео и веду стримы: youtube.com/@vangogih По всем вопросам: @vangogih

Последние публикации

Unity Architect: архитектура unity проектов
12.07.2026 07:59 · 👁 1K
AI НЕ ДЕЛАЕТ ВАС ПРОДУКТИВНЕЕ Незыблемый факт: AI уже очень хорош в маленьких задачах. Написать плагин, скрипт, небольшую tool'у, UI для UnityEditor окна, вытащить текст из аудио, накидать интеграцию с Google Sheets — вот здесь он реально экономит время. У меня таких историй уже пачка: — история буфера обмена на macOS — парсинг локализаций из Google Sheets в MySQL — извлечение текста из аудиозаписей — терминальный чат для тестирования внутриигрового чата — интеграция BenchmarkDotNet в Unity И тут спорить бессмысленно: да, это ускоряет. Многие мелкие автоматизации можно сделать буквально за 1 промпт. Когда раньше, я даже не брался за это, т.к. на отладку и написание могло уйти полдня-день. 🔸Проблема - большой production Когда я работал в Playtika, уже тогда менеджмент пытался понять, как ускорить процессы разработки через AI. Но модели упирались в контекст. Они могли решить локальную задачу, но плохо держали систему целиком. Сейчас модели стали намного сильнее. Контекст вырос. Opus уже технически способен написать кусок фичи почти полностью. Но я всё равно не готов просто взять и запушить это в большой production-проект. Почему? Потому что в проекте на сотни тысяч строк AI все равно не хватит контекста, чтобы изучить и прочитать все что есть, из-за этого: 🔹Генерируется функционал, который уже есть в проекте 🔹Системы используются не правильно или не полностью 🔹Агент может посчитать, что функция в другой системе написана не правильно и "исправить". И кажется что сделано много, так много кода и анализа никто бы из нас быстро не делал. Но из-за того что это нужно потом вычитать внимательно, проверить и/или переписать, общее время на разработку может только увеличится. 🔸И это не только мое наблюдение METR проверили это на 16 опытных open-source разработчиках, которые в среднем 5 лет работали на своих репозиториях. Результат: с AI они стали медленнее на 19% 🤯 При этом ожидания до начала эксперимента были: ускорение на 24% А после, разрабы думали что AI их ускорил на 20%. Т.е. человек делает больше и из этого создается эффект ускорения. И эти результаты нужно поправлять за Echoes of AI, где: на чужой кодобазе среднего размера AI действительно ускорял — медианное время падало на 30.7%. Т.е. получается примерно такой парадокс: 🔹 Если проект маленький или среднего размера, то с AI можно в среднем получать +30% к продуктивности 🔹 Если проект большой или огромный, то важно выделять места, где AI может быть полезен, но не отдавать все ему на откуп. Несоблюдние баланса = +20% к времени выполнения задачи. Этот вывод я и сам ощущаю, когда иной раз проще самому написать, чем промптить, а потом ходить и все переписывать. Это может показаться бредом, если опираться на новостной фон и хайпа вокруг AI. Но это отлично согласовывается даже с тем, что я писал еще до AI хайпа: Природа разработки ПО - это перенос информации из мира реального в мир абстрактный. Где человек играет ключевую и незаменимую роль. А скорость переноса ограничена особенностями мозга и ростом синаптических связей. Что ограничено естественным жизненным циклом организма. И это естественное ограничение продуктивности. И даже когда скорость написания кода стремится к бесконечности, проекты НЕ стало разрабатывать быстрее или дешевле. 🔸Функция снижения AI-продуктивности Точных цифр нет, но если накидать порядок величин, но вот моё предположение. Будет интересно вернуться к нему через пару лет 😬 Пусть: x — текущий размер проекта в kLOC, y — прирост продуктивности в %, Smin — kLOC-min, минимальный размер проекта, когда появляется сложность, Smax — максимальный размер проекта, когда эффект от AI = 0 Тогда формула снижения влияния AI на продуктивность будет выглядеть примерно так: y ≈ Smin · ln(Smax / x) kLOC | эффект ------+------- 5 | +23% 50 | +12% 500 | 0% 🔻Проще запомнить: продуктивность падает примерно на ~3-5% на каждое удвоение размера проекта. Ставь 👍 если тебе заходит такого рода контент! Ты знаешь кому переслать эту статью 💪 #ai@UniArchitect
Unity Architect: архитектура unity проектов
07.07.2026 07:34 · 👁 1.9K
UNITY BUILD PIPELINE ПО КИРПИЧИКАМ Полгода назад я решил попробовать активность в блоге, где я сначала долго и кропотливо собираю информацию по какой-то технической теме, а после этого рассказываю ее в онлайн формате. В прошлый раз мы разбирали детали устройства Asset Bundles, где от участников я получил максимально положительные отзывы: Самый большой вау-эффект был именно от осознания того, что работа с любыми ассетами в Unity устроена похожим образом и AssetBundle не исключение а дополнение для этого. Плюс само по себе разбор формата файлов раскрывает уйму возможностей: можно писать свои патчеры или шифраторы/дешифраторы. Занятие было записано и выложено в закрытую группу вместе со всеми материалами: исходники, текстовые разборы — всё, что было нарыто в процессе подготовки. Всегда под рукой, чтобы в любой момент вернуться и вспомнить детали. Потому я решил повторить формат и провести занятие по теме сборки и компиляции проекта в Unity — то, что отнимает у нас, разработчиков, времени в разы больше, чем любая работа AI-агента 😬 🔸Что внутри: ▫️Asset Pipeline — через какие ключевые шаги проходит ассет перед тем как попасть в сборку ▫️Bee Frontend и Bee Backend — как пошагово компилируются сотни сборок в проекте без csproj и sln файлов ▫️Tundra и Directed Acyclic Graph — за счет чего обеспечивается быстрая incremental сборка ▫️Domain Reload — из каких шагов состоит и в деталях разберемся почему отнимает так много времени Я уже проводил занятие на эту тему для участников курса в начале этого года. Тогда я успел сделать компиляцию editor скриптов без Unity. 🔻В это раз я подготовил проект на dotnet, который собирает проект под windows асинхронно 🤯 Т.е. он не блокирует редактор: обновил класс -> запустил скрипт -> билд делается на заднем фоне не блокируя работу в редакторе 🔸Формат — 11 июля, 14:00 МСК — Онлайн в Zoom — После занятия в закрытую Telegram группу будут выложены: запись, текстовые материалы и исходный код программ-примеров — Доступ к группе и материалам остаётся навсегда — Вопросы можно задать в любой момент в приватном чате 🔻Это не пересказ документации. Это разбор того, что происходит под капотом — на уровне, который не найти в гайдах и туториалах. Занятие закончено, пришло 20 человек, всем спасибо 🥰 #курс@UniArchitect
Unity Architect: архитектура unity проектов
04.07.2026 07:59 · 👁 2K
ПРОКЛЯТИЕ ПЕРЕИСПОЛЬЗУЕМОСТИ Делюсь болью. Я последние 5 лет на разных уровнях у разработчиков, лидов и техдиректоров, активно встречаю такой паттерн: Ну давай просто выделим общее и переиспользуем это в другой системе/проекте. Мы ведь уже написали систему перемещения для ботов, давайте для игрока её тоже переиспользуем. У нас ведь уже есть backend-сервис по обработке match-3 логики, давайте его же тупо используем в другой игре 😵 Может казаться, что нужно просто скопировать/вставить решения из одного места или создать общий класс. И черт, это не работает нормально в большинстве случаев. 🔸 Если вы делаете что-то общее, то сначала нужно понять, какие зависимости это общее в себя принимает и отдаёт Если вы сделаете прямой copy/paste, придётся писать кучу обёрток, чтобы подружить новую систему с текущей. Поэтому чтобы действительно такое было возможно, нужно заранее проектировать не только саму систему абстрактно, но и её зависимости 🤯 А это значит, что нужно изначально планировать проектирование ключевых абстракций проекта. Например: 🔹 Весь cross-cutting context. Логирование, конфиги, аналитика, обработка ошибок. Либо придётся кучу мест рефакторить, либо заранее согласовывать единое API для переиспользования между проектами. 🔹 Коммуникация с сервером — пример посложнее. Но суть простая: вы не хотите при переносе дублировать логику обработки ошибок, контрактов взаимодействия и тянуть лишние транзитивные зависимости (другой HTTP-плагин, например). И это важно тупо потому, что это заставляет поддерживать задублированные решения по проекту 🤢 🔹 Изменился формат логирования или когда логи пишутся, а когда нет 🔹 Добавился новый обработчик исключений, формат контракта или обработка краевого случая Вот иди свищи по проекту 10 копий и вкостыливай фикс и туда. При этом ладно этот фикс в коде, ха, это ещё изи, а если ты решил общий микросервис такой выделить… 🔻Чем больше расстояние между зависимостями — тем сложнее и дороже в них вносить изменения. 🔸 Не всё, что кажется общим, таковым является Избитый троп: Ну тут сделаем абстрактно, чтобы другие системы, вдруг, взяли и переиспользовали эту логику. Ну нет, это не работает. Если заранее не понимать, как именно система будет переиспользоваться, и не переиспользовать сразу — оно не будет работать. Это происходит из одного простого факта: 🔹 Скорость изменения требований разная для каждой из систем. То, что вчера виделось как общее, сегодня жёстко заточено под что-то конкретное, т.к. переиспользуемость стоит времени, сил, денег и тщательного планирования. Или по другому: То что вчера казалось легко можно переиспользовать, сегодня требует узкого и конкретного решения. Так что всё, пожалуйста, я снимаю со всех, кто читает этот пост, «проклятие переиспользуемости» 😘 С этого момента вы можете не писать системы так, чтобы вдруг когда-то их кто-то использовал и сократил себе время. 🔻 Наконец-то можно писать системы, которые заточены на выполнение своей задачи и не раздувают сложность проекта на ровном месте. Но если переживаете, вот правило трёх: Пока система или её часть не переиспользуется как минимум в трёх независимых местах — ничего общего выделять не нужно. А если есть требование — выровняйте уровень знаний, покажите цену такого решения, сделайте #проектирование@UniArchitect, внедрите и пользуйтесь на здоровье, все только спасибо скажут. Ставь 👍 если тебе заходит такого рода контент! Ты знаешь кому переслать эту статью 💪 #проект_в_разработке@UniArchitect
Unity Architect: архитектура unity проектов
29.06.2026 09:42 · 👁 1.9K
AI КАК РЕДАКТОР, А НЕ АВТОР Это вторая статья из серии про AI. Первая тут. Когда я запускал блог, одной из самых неприятных задач было не “придумать тему”. Тем обычно много. Сложнее было разложить мысль компактно, без каши в предложениях, и так, чтобы опытному читателю не хотелось закрыть пост на третьей строке со словами “господи, что я читаю” 😅 И первое место, где AI меня реально вытащил — это не код. Это текст. 🔸Блог Почти каждая статья проходила через ChatGPT: — проверить стилистику — поправить грамматику — найти кривые формулировки — предложить другой способ сказать ту же мысль И вот последнее оказалось важнее, чем кажется. Потому что иногда мысль вроде нормальная, но звучит так, будто её три раза уронили по дороге. У каждого автора есть набор любимых речевых конструкций. Одни и те же связки, одни и те же обороты, один и тот же способ подводить к выводу. С одной стороны — это стиль. С другой — если не обновлять этот пул, текст начинает звучать как пережёванная версия самого себя. У меня это особенно заметно, потому что я довольно быстро нахожу первичную формулировку мысли, но намного хуже умею посмотреть на неё под другим углом. Я уже писал про это в статье Проклятие знаний: когда мысль у тебя в голове собрана, очень легко забыть, что то, что очевидно для тебя может быть не очевидно для читателя. 🔹Курс Вторая большая область — подготовка курса. Первые 3 месяца я собирал материал руками. Ночью, когда жена уходила спать, я садился за комп, шёл в Google, читал научные статьи, разбирался, что там вообще написано, и складывал всё в Notion. Не просто “ссылка на источник”, а: — какая мысль откуда взята — где её нужно использовать — в каком порядке она должна идти — что нельзя исказить при пересказе Так была сделана почти половина курса. А потом появились reasoning-модели, которым можно скормить большой промпт, файлы и дать 40 минут подумать. И здесь AI стал не автором, а независимым валидатором: правильно ли я понял источник, не перепутал ли причинность, не натянул ли вывод на свою картину мира, потому что очень хочется, выдать желаемое за действительное 😅 Вот это оказалось прям ценно. Потому что найти источник — не самая сложная часть. Сложная часть — прочитать, правильно понять, а потом донести мысль так, чтобы не исказить исходный смысл. 🔸И это хорошо ложится на исследования В SAP/HPI исследовании про опыт разработчиков с GenAI есть важный практический вывод: когда человек использует один режим работы с AI — только chat или только in-code — нагрузка падает. Когда начинает метаться между режимами, выигрыш пропадает. А ещё точнее в ту же точку попадает свежий RCT Anthropic про формирование навыков. Исследование про код, но механизм универсальный: когда человек полностью отдаёт задачу AI, у него растёт ощущение продуктивности, но проседает понимание, чтение и отладка — причём без реального выигрыша по скорости. А те, кто работает с AI вовлеченно, спрашивая объяснения, а не готовый ответ, понимание сохраняют. С текстом у меня работает так же. AI полезен, когда у него понятная роль: редактор, переформулировщик, валидатор или исследователь. А промпт формируется несколькими итерациями, где я подробно рассказываю куда нужно капнуть, что взять и как преобразовать. Но если прописать “давай классную статью по архитектуре”, на выходе очень быстро получается стерильный AI-slop/мусор 🤢 🔻 AI хорошо снижает стоимость итерации мысли. Но мысль всё равно должна быть твоя. Иначе вместо авторского текста/кода получится гладкая, правильная и абсолютно мёртвая жвачка. Понимаю, тема уже успела обрасти мхом и противоречивыми заявлениями, но я стараюсь, прагматично исследовать эту тему. Дайте знать в комментах что вы думаете 🫡 Ставь 👍 если тебе заходит такого рода контент! #ai@UniArchitect
Чат поддержки
Ответим здесь же, обычно быстро
Здравствуйте! Напишите ваш вопрос — оператор ответит в этом чате.