aks2dio | Unity и геймдев
494 subscribers
183 photos
5 videos
220 links
Директ: @antonkerp

Про GameDev, разработку на Unity и C#, менеджмент, образование, менторство и карьеру в целом.

С 2017 г. разрабатываю, лидую, преподаю и консультирую.
Был в найме, стартапах, фрилансе, инди.
Опыт: Mobile, Desktop, Web, XR.
Download Telegram
#️⃣ Пакет для бенчмарков в Unity #️⃣
Уровень материала: 📎 #tool

Были планы сделать какой-то медиа-контент по этой теме, но так долго жду возможности, что уже, похоже, никогда. Поэтому хотя бы в виде постика зафиксирую этот тул в истории.

〰️〰️〰️〰️〰️〰️
Performance Testing Package — это официальное расширение для Unity Test Framework, которое позволяет удобно и быстро реализовывать бенчмарки для вашего кода.

Бенчмарк — это тест, который измеряет производительность в контролируемых условиях для получения объективных числовых показателей.

Подробнее — в оф документации 📱

〰️〰️〰️〰️〰️〰️
🍳 Как пользоваться 🗑️

Оно интегрируется в обычный Test Runner: и в EditMode, и в PlayMode. Но в EditMode доступны не все варианты измерений. Например, нет работы с кадрами или профайлером по понятным причинам.

Соответственно, это удобно и запускать самостоятельно, и встраивать в CI-пайплайны.
(в последний раз тут про CI была информация в этом посте 💬)

Пакет предоставляет наглядные отчёты. И эти отчёты можно выгружать в xml и csv.

Пишется это аналогично NUnit-тестами, на родном C#. Только добавляются специальные методы, которые на себя забирают много полезной рутины.
По типу того, сколько делать прогонов и как часто делать замеры.

Пользоваться весьма удобно. А т.к. LLM отлично генерируют нужный код, то ещё очень просто и быстро.

Гонять бенчмарки можно не только в редакторе, но и в билде на конечном устройстве через режим Player.

Продолжение — в комментариях 🔄
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥65
📅 MidUp #15 📅

Подборка ближайших GameDev и IT мероприятий, которые встретились в чатах, группах и сети ⬇️

⚫️ Февраль
⚫️ Март
⚫️ Апрель

Находи свой город, оставляй ссылки на другие мероприятия и заглядывай в Геймдев Афишу 🃏
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥53
Коварный AttachExternalCancellation
Уровень материала: 🐣 #junior

Если вы работаете с асинхронностью в Unity, то наверняка знакомы с UniTask. Это более эффективный и удобный для Unity инструмент, чем обычные шарповые Task.
💻 GitHub

Его удобство часто достигается за счёт разнообразного "сахара", с которым важно не переборщить. Одна из таких "сладостей" — это метод AttachExternalCancellation, который очень часто используют не по назначению.

🟣 В чём проблема
🟣 Последствия
🟣 Когда это нужно
🟣 Дополнительные рекомендации
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥122👌2
🔖 Объявление для "вареньеваров"

В марте будет проходить мощный онлайн геймджем, и регистрация на него проходит уже сейчас.

Организаторы очень стараются сделать крутой ивент всеми силами, которые у них вообще есть. Поэтому будет, как минимум, лампово.

Почитать подробнее и присоединиться можно по ссылке ✈️

Геймджемы — отличная возможность найти единомышленников, увлекательно (или даже экстремально) провести время и пополнить своё портфолио новыми проектами и навыками.

Тем, кто ещё любит творить игры и креативить, рекомендуется. В эпоху LLM зарубы, наверное, совсем зрелищные получаются 👊
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥65
Новый текстовый движок для Unity
Уровень материала: 📎 #tool

Встретил интересный пакет UniText. Это текстовый движок для Unity, по типу TextMeshPro. Но на базе HarfBuzz — того же, что используется во многих браузерах, софте и всяких ОС.

Выглядит настолько хорошо, что похоже на скам. Но оно, по крайней мере, действительно работает. Лично пока всё проверить времени не хватает. Если кто уже успел, оставляйте фидбэк.

Хоть оно и якобы эффективнее TMP, но пока кажется, что с визуальной настройкой есть свои неудобства и ограничения.

Оф. сайт 📎 | Github 💻 | Документация 🚩
〰️〰️〰️〰️〰️〰️〰️〰️

🍳 Возможности 🗑️

🟣 100% поддержка Unicode, а это более 150 языков, в т.ч. арабский, иврит хинди и прочие иероглифы.

🟣 Поддержка двунаправленного текста (BiDi).

🟣 Поддержка системных нативных эмодзи, использование которых не увеличивает размер билда.

🟣 Поддержка цветных эмодзи (типа разного цвета кожи) и ZWJ (склейка нескольких эмодзи в одно).

🟣 Позволяет создавать кликабельные зоны в тексте с подсветкой при наведении.

🟣 Более 15 модульных модификаторов текста с возможностью создать свои.

🟣 Поддержка Windows, macOS, Linux, Android, iOS и WebGL.
〰️〰️〰️〰️〰️〰️〰️〰️

🍳 Преимущества 🗑️

🟣 Работает и рендерит кратно быстрее, чем TextMeshPro и UI Toolkit.

🟣 Минимальное выделения памяти.

🟣 Многопоточная обработка текста, на все ядра CPU.

upd: раскрыты планы на будущие версии — это будет мощно
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥223
Релиз Spacetime DB 2.0
Уровень материала: 📎 #tool #multiplayer

Давно собирался написать про этот инструмент, но всё не доходили руки. С наводки в комментариях повод появился — SpacetimeDB обновились до версии 2.

SpacetimeDB — это in‑memory реляционная БД, которая в то же время является backend‑сервером, а логика выполняется непосредственно с данными в БД.

При этом для "скриптинга" поддерживается много языков: от Rust до C#.

🖇️ Website | Github 💻

Проект изначально разрабатывался студией Clockwork Labs специально для их собственной MMO — BitCraft. Но позже они выкатили это на Github и теперь постепенно всё больше уходят в сторону полноценного Backend-as-a-Service.

Собственно сама идея этой платформы — это экстремально низкая задержка, что как раз очень важно для realtime-игр. Чем и продиктованы основные архитектурные решения.

Продолжение — в комментариях 💬
Please open Telegram to view this post
VIEW IN TELEGRAM
👍75🔥4
Инженерный подход к разработке с AI
Уровень материала: 🤔 #ai

Разработка с AI — это отдельная группа навыков и подходов, которые нужно нарабатывать и совершенствовать. Иначе AI никак не поможет работе, и даже сделает хуже.

Генерация кода — задача, с которой LLM давно справляются отлично. Позволю себе заметить, что уже даже лучше людей.

PR от машины смотреть легче и понятнее. Т.к. допускают они меньше совсем нелепых ошибок, ради которых нужно всматриваться внимательно в каждую строчку.

Они могут ошибиться в связях и архитектуре. Но на этом уровне проблемы отслеживать важнее и проще, чем на уровне кода, где нужно утомительно проверять условные отписки. На этом уровне сегодня LLM дают минимум промашек. И сами себя отлично ловят на этапе ревью.

Но "магия" случается, только если:
1️⃣ Перестать "трястись" за каждую строчку кода,
2️⃣ Выстраивать понятную архитектуру с чёткими границами,
3️⃣ Обеспечивать агентам полную автономность, достаточные легкодоступные источники истины, жёсткие ограничения и возможность получать обратную связь о совершаемых действиях.

Из относительно недавнего полезного контента:
1️⃣ В частности об этом писали Open AI в своей статье Harness Engineering 🖇️.
2️⃣ Встретил на VC статью 📝, вдохновлённую статьёй выше, только через призму личного опыта.
2️⃣ Попался познавательный видеоролик от Дмитрия Березницкого 📺, где доступно рассказываются и показываются основы современной разработки с AI.

Продолжение — в комментариях 🔄
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥62👍1
Вчера выступал на Gamedev Cityfest с докладом/воркшопом. Уже добрался домой и прихожу в себя 🏠

Пытался впихнуть невпихуемое в 1 час — не впихнул. Даже состоялось неформальное приватное продолжение вне камер. Так что записи я жду не сильно — это будет практически демо-версия 😅

Попробую опередить и записать домашнюю режиссёрскую версию со всем, что хотел успеть 📹

Пока могу предложить раздаточный материал — это выдержка из нашей собранной корпоративной базы знаний по #ai, где оставил только то, что касается разработки.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥91
📅 MidUp #16 📅

Подборка ближайших GameDev и IT мероприятий, которые встретились в чатах, группах и сети ⬇️

⚫️ Март
⚫️ Апрель
⚫️ Май

Находи свой город, оставляй ссылки на другие мероприятия, особенно региональные, и заглядывай в Геймдев Афишу 🃏
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32😴1
👁 AI-Driven Development 👁

Записал и опубликовал Full Home Director's Cut Video Edition своего доклада с прошедшего GameDev CityFest.

Если кто-то хотел, но не смог, или смог, но не хватило, то видео уже можно найти на площадках.

📺 YouTube 📺 VK Video 📺 RuTube

Занятие оказалось сложнее, чем предполагал. И сильно дольше, чем хотел.
Тем не менее, со всеми урезками и компромиссами всё равно 3 часа получилось 🫠

На этом отправляюсь в загруженный окранчительный сезон релизов — так что новых видео определённо не обещаю 🫡
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥154👍4
Unity → CoreCLR
Уровень материала: 📢 #news

Unity очень давно упоминают о планах по переводу своего runtime на CoreCLR. Я до сих пор помню эту статью из 2022 📱, а это даже не точка старта. И вот на прошедшем Unite они вновь подняли эту тему и уже полные уверенности заявили, что этому быть и уже очень скоро.

На их канале на днях вышло подробное видео c GDC 📺, рассказывающее о деталях этого перехода. Что нас ждёт, когда, какие шаги будут предприняты и какие системы будут затронуты.

Постепенный переход начнётся уже в этом году, с версии 6.5 (6.4 уже вышла). И в версии 6.7 они уже собираются это всё публиковать в experimental режиме. Mono в конечном итоге будет выпилен совсем, как уже устаревшее решение.

Что они планируют:

🟣 Современные актуальные возможности для C# и .NET в целом, в т.ч. новый GC;

🟣 Замена Domain Reload на более хитрую модель через Assembly Load Context. Что должно значительно увеличить скорость работы с редактором и вход в PlayMode.

🟣 Но это потребует аккуратности от разработчиков со статикой, обработчиками ивентов и прочими штуками, удерживающими ссылки на объекты слишком долго и приводящими к утечкам памяти (см этот пост 💬).

🟣 В помощь разработчикам в Project Auditor будут добавлены анализаторы для проверки всего, что мешает Domain Reload.

🟣 BinaryFormatter станет и в Unity "запрещёнкой": его поддержку приберут.

🟣 Обновят сериализатор. Станет быстрее и заимеет больше возможностей. В т.ч. даже обещают сериализовать словари.

🟣 Более глубокая интеграция Entities в Runtime и более тесная с GameObject'ми и Transform'ами. В 6.5 появится общий Hierarchy View для энтитей и GO. А в 6.6 для GO и Transform будут предоставлены удобства для работы в Jobs.

🟣 Обещают всяческие низкоуровневые оптимизации и улучшения.

🟣 AI в профайлер, говорят, встроят. Логгер оптимизируют.

И ещё большая горстка комментариев и тезисов. Весьма насыщенно для своих 20 минут и очень обнадёживающе. Продолжать не верить всё сложнее. Ждём
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17
Большое обновление текстового движка UniText
Уровень материала: 📎 #tool #news

Пару месяцев назад писал про новый текстовый движок для Unity 💬. Настолько он выглядел амбициозно, что вообще не верилось в его правдивость.

Не только мне: этот пост вызвал бурную реакцию на некоторых площадках. Выяснилось, многие разработчики им уже успели попользоваться и оставили положительный фидбэк.

На этой неделе подкрался релиз новой версии 2.0. Это уже буквально другой продукт. Судя по гигантскому Changelog, переработано там чуть ли не всё. При этом плюшки первой версии остались на месте, стали лучше и их стало ещё больше.

Следил за разработкой на GitHub 💻. Версия 2.0 оттуда благополучно исчезла, став коммерческой. Версия 1.0 так и остаётся доступной свободно, под open-source, для любого вида использования.

Версия 2.0 же доступна только покупкой через оф. сайт, либо в AssetStore (либо что успели с Github'а стянуть до релиза, но обновлений тогда уже не будет, а они там требовались).

Для личного использования — цены покусывают. Хотя ассеты подобного масштаба примерно столько и стоят.
Для компаний — достаточно выгодно. В ближайшее время ещё действуют скидки в 50%. С их учётом, ассет можно забрать от $25.

Возможно, немножко обидно, но ожидаемо и логично. Как минимум, это легальная возможность задонатить автору за проделанную огромную работу.

Далее кратенько о фичах и моих текущих впечатлениях 🔄
Please open Telegram to view this post
VIEW IN TELEGRAM
10K👍8🔥72
Обновление, которое вы тоже могли пропустить

Под сильно возросшей нагрузкой немного выпал из новостного потока. Поэтому пока довольствуюсь личными находками.

Обнаружил в Unity Hub 📱 парочку мелких изменений, которых точно многим не хватало целую вечность.

1️⃣ Теперь можно давать кастомные имена проектам в списке. И удобно ориентироваться по worktree и репозиториям, у которых папки с Unity-частью называются одинаково.

2️⃣ Появилась интеграция с Gitlab и Github: и ветки с ссылками отображаются, и клонировать сразу репозиторий можно прямо из хаба, и при создании нового проекта можно сразу создать репозиторий с подключением LFS.

Если последнее появилось буквально на днях, то ренейминг проектов, оказалось, доступен ещё с прошлого года. Никогда не думал, что в Release Notes для Hub бывает полезно заглядывать 😅
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥111
Инструменты для экстремальной разработки
Уровень материала:
☕️ опять #ai и #offtop

В этом месяце угодил в производственный адок. Пришлось залезть в разработку не то что по локти, а по самые уши. И ускоряться всеми правдами и неправдами.

Успел собрать себе тех стек для выживания в экстремальных условиях. Надеюсь, никому не пригодится 😅

Подробности — в комментариях 💬
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥42😎1
😎 Unity CLI & Pipeline 😎
Уровень материала: 📢 #news #tool

Действительно стоящая внимания новость за долгое время. Unity сделали CLI. Пока в бете. И пока бесплатно (хорошо, если так оно и останется).

В первую очередь, это тул для управления редакторами и проектами. Как 🟧, но из командой строки. Даже позволяет авторизацию проводить без GUI. Что значительно повышает удобство в DevOps-задачах.

При этом поддерживает Structured Output и очень дружелюбен к AI-агентам. Останется только skill'ми это всё смазать.

Вдогонку они добавили пакет com.unity.pipeline, который позволяет этому CLI управлять уже запущенным редактором и взаимодействовать с ним. Выполнять разнообразные действия и получать информацию о происходящем внутри.

Пакет позволяет просто добавлять кастомные CLI-команды через атрибут [CliCommand]. И выполнять внутри проекта произвольный C#-код через unity eval (аналог вот такого из JS), очень быстро и без перекомпиляций.

Работает это великолепие начиная с Unity 6000. И настраивается в 2 команды:
curl -fsSL https://public-cdn.cloud.unity3d.com/hub/prod/cli/install.sh | UNITY_CLI_CHANNEL=beta bash
unity pipeline install


Более подробный анонс — здесь 📱
Официальная видео-демонстрация — здесь 📱

Также Unity опубликовали видео с Unite Seoul 📱 и анонсировали Unity 7. Пересказы этого уже разлетелись по всевозможным каналам. Больше всего, конечно, обсуждают переход на CLR. Но это мы уже успели ранее разобрать 📱

Баловаться новой игрушкой, увы, некогда. Поэтому инструмент сразу полетел в рабочие проекты. Пока выглядит многообещающе — кажется, MCP можно будет выдёргивать из розетки 🔌
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍21😴1