aks2dio | Unity и геймдев
491 subscribers
185 photos
5 videos
222 links
Директ: @antonkerp

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

С 2017 г. разрабатываю, лидую, преподаю и консультирую.
Был в найме, стартапах, фрилансе, инди.
Опыт: Mobile, Desktop, Web, XR.
Download Telegram
📃 Любопытный материал по использованию встроенных в ОС шрифтов для уменьшения размеров билда в Unity.
Мне подобными "извращениями" заниматься не доводилось, но на вооружение подход взял.

📦 Обычно всё решается тем, что для конкретной локализации создаётся отдельный бандл, куда падают шрифты и прочий локализируемый контент.
🌐 Этот бандл отправляется на CDN и скачивается клиентом по востребованию.
⬇️ ️При первом запуске стягивает тот, который соответствует установленным в ОС настройкам. И может быть какой дополнительный набор следом
🙎‍♂️А далее уже по желанию пользователя. Такие бандлы часто достаточно маленькие и очень оперативно загружаются.

Если использовать Unity Localization, то та довольно ловко эксплуатирует Addressables, и там всё упаковать в отдельный бандл "сами юнитехи велели".

🙅‍♂️ Для ситуации, когда приложение ничего не должно догружать, бандлы не подойдут.
🤏 И если нужно, чтобы приложение было наиболее "компактным", то описанные махинации могут оказаться очень кстати.
🤔 Хотя представить себе такой реальный кейс у меня пока не получается.
—————————————
#unity #gamedev #development #font #optimization #tmp #геймдев #разработка #шрифт #оптимизация
🔥3👍1
Заметка про коллизии

🎱 Встретил серию из двух статей про реализацию просчёта коллизий.
Конечно, про «шарики». И многие, кто имеет профильное образование, наверняка это всё уже не раз видели и делали.
❗️Но среди начинающих игроделов нынче очень много людей из других сфер или пока ещё без должного образования.

💡И вот для них здесь много интересного:
- Как вообще устроен просчёт коллизий;
- Как происходит процесс оптимизации и как понять, что оптимизировать;
- Как всё усложняется по мере масштабирования исходных условий;
- Зачем нужны знания математики и алгоритмов;
- Что такое O(n) и как применяется.

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

👍 Мне очень понравился стиль автора, и я хочу прийти к чему-то такому же. Попробовав свои силы, могу оценить, сколько трудов было вложено в подготовку этого материала — отличный контент и ориентир для совершенствования.
—————————————
#gamedev #development #physics #math #unity #optimization #геймдев #разработка #физика #оптимизация #математика #рекомендация #статья
👍2🔥1
Видео из разряда "прикольно": про не частый кейс оправданной "микро-оптимизации"

📼 YouTube.DotNext
Для игровых разработчиков не сказать, что напрямую есть прикладная ценность, но для "шарпистов" косвенно — полезно. Затрагивается много тегов: стэк, куча, аллокации, хэш-функции, Span, ArrayPool, stackalloc, ValueStringBuilder, MemoryStream, S3.
Да и для общей насмотренности и формирования инженерного майндсета лишним не будет.

Почему-то у игровых начинающих разработчиков бытует представление, что геймдев – это что-то стоящее отдельно. Хотя это такая же разработка ПО — просто свой контекст вносит свои особенности. Как и в других направлениях разработки есть свои контексты. Но дело то делаем мы все одно и проблемы решаем схожие: утечки памяти, долгий рендер, вылеты, ошибки и пр.

☝️ Работа с движком — это ведь ещё не игра, а только игровой клиент. А есть ещё хостинги, бэкенд, инфраструктура, CI/CD. Со всем этим тоже приходится иметь дело.

Поэтому не стоит загонять себя в рамки чисто геймдев специализации. За "соседями" подглядывать тоже полезно. Здесь как с естественными языками: чем больше языков знаешь, тем больше информации становится доступно.
—————————————
#development #dotnet #optimization #span #arraypool #stack #heap #alloc #разработка #оптимизация #стек #куча #рекомендация #видео
🔥3👍2🍌1🍓1
Компрессия AnimationClip в Unity

🗜 Вчера возник кейс – нужно было срочно "сжать" крупный AnimationClip, в котором прослеживается объективно переизбыток ключей.
Знаю, что у Unity есть Anim. Compression с опцией Keyframe Reduction в настройках импорта 3D-модели. Но для отдельного AnimationClip я такой фичи не нашёл.
Скорый поиск в интернете не дал результатов. В GitHub удалось найти несколько готовых решений. Но сработало только одно (правда, завести его удалось лишь подперев рядом костылей).

🏋️ При сокращении веса на 80% появились небольшие подёргивания, но и компрессия это очень грубая — с этим надо будет ещё поиграться.

🔧 Вечерее без спешки сделал форк, исправил баги, доработал интерфейс с юзабилити, дополнил README и отправил Pull Request. Если проигнорируют, то в рамках форка разберусь, перепишу и адаптирую для своих нужд, т.к. штука полезная.

❓ Пока не зашло всё далеко, может кто-то знаком с проверенными готовыми решениями для этой задачи?
—————————————
#unity #optimization #animation #repo #aks2dio #tool #инструмент #gamedev
👍4🔥2
🚀 Zero allocation LINQ 🚀
Уровень материала: 📣 #news

Не секрет, что LINQ в .NET имеет проблему с аллокацией памяти, что ограничивает его применение в часто исполняемой или высоконагруженной логике.

Ребутяшки из Cysharp, известные по UniTask и R3, 2 недели назад создали репозиторий с ZLinq — это их NonAlloc struct-based имплементация Linq.

👩‍💻 Пакет уже совместим с .NET 9, .NET 10, Unity 📱 (от 2022.3.12f1) и Godot (от 4.0.0).

В Unity и Godot предусмотрены методы расширения для GameObject, Transform и Node2D. Аналогичные методы расширения реализованы и для Json, что может быть полезно для систем миграций/патчинга пользовательских игровых данных.

📱 Узнал про ZLinq из видео с канала git-amend. Там рассмотрены примеры использования и интеграции в Unity. Также там можно подглядеть полезные методики для профилирования.

💡 Мне нравятся и UniTask, и R3. Поэтому пока для меня ZLinq, построенный на тех же идеях, выглядит как многообещающий инструмент для оптимизации LINQ-запросов, который позволит снизить нагрузку на GC и упростить работу с деревьями объектов.

⚠️ Библиотека пока находится в стадии preview, но в не-продуктовой среде я уже начну с ней знакомиться.
————————————
#unity #godot #gamedev #development #dotnet #csharp #tool #linq #optimization #allocation #геймдев #разработка #оптимизация #инструмент #рекомендация #видео
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤3👍2