📃 Любопытный материал по использованию встроенных в ОС шрифтов для уменьшения размеров билда в Unity.
Мне подобными "извращениями" заниматься не доводилось, но на вооружение подход взял.
📦 Обычно всё решается тем, что для конкретной локализации создаётся отдельный бандл, куда падают шрифты и прочий локализируемый контент.
🌐 Этот бандл отправляется на CDN и скачивается клиентом по востребованию.
⬇️ ️При первом запуске стягивает тот, который соответствует установленным в ОС настройкам. И может быть какой дополнительный набор следом
🙎♂️А далее уже по желанию пользователя. Такие бандлы часто достаточно маленькие и очень оперативно загружаются.
Если использовать Unity Localization, то та довольно ловко эксплуатирует Addressables, и там всё упаковать в отдельный бандл "сами юнитехи велели".
🙅♂️ Для ситуации, когда приложение ничего не должно догружать, бандлы не подойдут.
🤏 И если нужно, чтобы приложение было наиболее "компактным", то описанные махинации могут оказаться очень кстати.
🤔 Хотя представить себе такой реальный кейс у меня пока не получается.
—————————————
#unity #gamedev #development #font #optimization #tmp #геймдев #разработка #шрифт #оптимизация
Мне подобными "извращениями" заниматься не доводилось, но на вооружение подход взял.
📦 Обычно всё решается тем, что для конкретной локализации создаётся отдельный бандл, куда падают шрифты и прочий локализируемый контент.
🌐 Этот бандл отправляется на CDN и скачивается клиентом по востребованию.
⬇️ ️При первом запуске стягивает тот, который соответствует установленным в ОС настройкам. И может быть какой дополнительный набор следом
🙎♂️А далее уже по желанию пользователя. Такие бандлы часто достаточно маленькие и очень оперативно загружаются.
Если использовать Unity Localization, то та довольно ловко эксплуатирует Addressables, и там всё упаковать в отдельный бандл "сами юнитехи велели".
🙅♂️ Для ситуации, когда приложение ничего не должно догружать, бандлы не подойдут.
🤏 И если нужно, чтобы приложение было наиболее "компактным", то описанные махинации могут оказаться очень кстати.
🤔 Хотя представить себе такой реальный кейс у меня пока не получается.
—————————————
#unity #gamedev #development #font #optimization #tmp #геймдев #разработка #шрифт #оптимизация
🔥3👍1
Заметка про коллизии
🎱 Встретил серию из двух статей про реализацию просчёта коллизий.
Конечно, про «шарики». И многие, кто имеет профильное образование, наверняка это всё уже не раз видели и делали.
❗️Но среди начинающих игроделов нынче очень много людей из других сфер или пока ещё без должного образования.
💡И вот для них здесь много интересного:
- Как вообще устроен просчёт коллизий;
- Как происходит процесс оптимизации и как понять, что оптимизировать;
- Как всё усложняется по мере масштабирования исходных условий;
- Зачем нужны знания математики и алгоритмов;
- Что такое
🏞 В статьях используется клёвая графика и прикольные интерактивные элементы, которые можно подвигать, и увидеть работу алгоритма. Это, вкупе с простым понятным ёмким повествованием, делает материал увлекательным и доступным для понимания широкому кругу читателей.
👍 Мне очень понравился стиль автора, и я хочу прийти к чему-то такому же. Попробовав свои силы, могу оценить, сколько трудов было вложено в подготовку этого материала — отличный контент и ориентир для совершенствования.
—————————————
#gamedev #development #physics #math #unity #optimization #геймдев #разработка #физика #оптимизация #математика #рекомендация #статья
🎱 Встретил серию из двух статей про реализацию просчёта коллизий.
Конечно, про «шарики». И многие, кто имеет профильное образование, наверняка это всё уже не раз видели и делали.
❗️Но среди начинающих игроделов нынче очень много людей из других сфер или пока ещё без должного образования.
💡И вот для них здесь много интересного:
- Как вообще устроен просчёт коллизий;
- Как происходит процесс оптимизации и как понять, что оптимизировать;
- Как всё усложняется по мере масштабирования исходных условий;
- Зачем нужны знания математики и алгоритмов;
- Что такое
O(n) и как применяется.🏞 В статьях используется клёвая графика и прикольные интерактивные элементы, которые можно подвигать, и увидеть работу алгоритма. Это, вкупе с простым понятным ёмким повествованием, делает материал увлекательным и доступным для понимания широкому кругу читателей.
👍 Мне очень понравился стиль автора, и я хочу прийти к чему-то такому же. Попробовав свои силы, могу оценить, сколько трудов было вложено в подготовку этого материала — отличный контент и ориентир для совершенствования.
—————————————
#gamedev #development #physics #math #unity #optimization #геймдев #разработка #физика #оптимизация #математика #рекомендация #статья
👍2🔥1
YouTube
Кирилл Бажайкин — Приемы экономии памяти в .NET
Подробнее о конференции DotNext: https://jrg.su/3WmFRE
— —
Скачать презентацию с сайта DotNext — https://jrg.su/lohpRy
Современные приложения иногда потребляют очень много памяти. И иногда они делают это, казалось бы, на пустом месте. Вот и в практике спикера…
— —
Скачать презентацию с сайта DotNext — https://jrg.su/lohpRy
Современные приложения иногда потребляют очень много памяти. И иногда они делают это, казалось бы, на пустом месте. Вот и в практике спикера…
Видео из разряда "прикольно": про не частый кейс оправданной "микро-оптимизации"
📼 YouTube.DotNext
Для игровых разработчиков не сказать, что напрямую есть прикладная ценность, но для "шарпистов" косвенно — полезно. Затрагивается много тегов: стэк, куча, аллокации, хэш-функции,
Да и для общей насмотренности и формирования инженерного майндсета лишним не будет.
Почему-то у игровых начинающих разработчиков бытует представление, что геймдев – это что-то стоящее отдельно. Хотя это такая же разработка ПО — просто свой контекст вносит свои особенности. Как и в других направлениях разработки есть свои контексты. Но дело то делаем мы все одно и проблемы решаем схожие: утечки памяти, долгий рендер, вылеты, ошибки и пр.
☝️ Работа с движком — это ведь ещё не игра, а только игровой клиент. А есть ещё хостинги, бэкенд, инфраструктура, CI/CD. Со всем этим тоже приходится иметь дело.
Поэтому не стоит загонять себя в рамки чисто геймдев специализации. За "соседями" подглядывать тоже полезно. Здесь как с естественными языками: чем больше языков знаешь, тем больше информации становится доступно.
—————————————
#development #dotnet #optimization #span #arraypool #stack #heap #alloc #разработка #оптимизация #стек #куча #рекомендация #видео
📼 YouTube.DotNext
Для игровых разработчиков не сказать, что напрямую есть прикладная ценность, но для "шарпистов" косвенно — полезно. Затрагивается много тегов: стэк, куча, аллокации, хэш-функции,
Span, ArrayPool, stackalloc, ValueStringBuilder, MemoryStream, S3. Да и для общей насмотренности и формирования инженерного майндсета лишним не будет.
Почему-то у игровых начинающих разработчиков бытует представление, что геймдев – это что-то стоящее отдельно. Хотя это такая же разработка ПО — просто свой контекст вносит свои особенности. Как и в других направлениях разработки есть свои контексты. Но дело то делаем мы все одно и проблемы решаем схожие: утечки памяти, долгий рендер, вылеты, ошибки и пр.
☝️ Работа с движком — это ведь ещё не игра, а только игровой клиент. А есть ещё хостинги, бэкенд, инфраструктура, CI/CD. Со всем этим тоже приходится иметь дело.
Поэтому не стоит загонять себя в рамки чисто геймдев специализации. За "соседями" подглядывать тоже полезно. Здесь как с естественными языками: чем больше языков знаешь, тем больше информации становится доступно.
—————————————
#development #dotnet #optimization #span #arraypool #stack #heap #alloc #разработка #оптимизация #стек #куча #рекомендация #видео
🔥3👍2🍌1🍓1
Компрессия AnimationClip в Unity
🗜 Вчера возник кейс – нужно было срочно "сжать" крупный
Знаю, что у Unity есть
Скорый поиск в интернете не дал результатов. В GitHub удалось найти несколько готовых решений. Но сработало только одно (правда, завести его удалось лишь подперев рядом костылей ).
🏋️ При сокращении веса на 80% появились небольшие подёргивания, но и компрессия это очень грубая — с этим надо будет ещё поиграться.
🔧 Вечерее без спешки сделал форк, исправил баги, доработал интерфейс с юзабилити, дополнил README и отправил Pull Request. Если проигнорируют, то в рамках форка разберусь, перепишу и адаптирую для своих нужд, т.к. штука полезная.
❓ Пока не зашло всё далеко, может кто-то знаком с проверенными готовыми решениями для этой задачи?
—————————————
#unity #optimization #animation #repo #aks2dio #tool #инструмент #gamedev
🗜 Вчера возник кейс – нужно было срочно "сжать" крупный
AnimationClip, в котором прослеживается объективно переизбыток ключей.Знаю, что у Unity есть
Anim. Compression с опцией Keyframe Reduction в настройках импорта 3D-модели. Но для отдельного AnimationClip я такой фичи не нашёл.Скорый поиск в интернете не дал результатов. В GitHub удалось найти несколько готовых решений. Но сработало только одно (
🏋️ При сокращении веса на 80% появились небольшие подёргивания, но и компрессия это очень грубая — с этим надо будет ещё поиграться.
🔧 Вечерее без спешки сделал форк, исправил баги, доработал интерфейс с юзабилити, дополнил README и отправил Pull Request. Если проигнорируют, то в рамках форка разберусь, перепишу и адаптирую для своих нужд, т.к. штука полезная.
❓ Пока не зашло всё далеко, может кто-то знаком с проверенными готовыми решениями для этой задачи?
—————————————
#unity #optimization #animation #repo #aks2dio #tool #инструмент #gamedev
👍4🔥2
Уровень материала:
Не секрет, что LINQ в .NET имеет проблему с аллокацией памяти, что ограничивает его применение в часто исполняемой или высоконагруженной логике.
Ребутяшки из Cysharp, известные по UniTask и R3, 2 недели назад создали репозиторий с ZLinq — это их NonAlloc struct-based имплементация Linq.
2022.3.12f1) и Godot (от 4.0.0).В Unity и Godot предусмотрены методы расширения для
GameObject, Transform и Node2D. Аналогичные методы расширения реализованы и для Json, что может быть полезно для систем миграций/патчинга пользовательских игровых данных.————————————
#unity #godot #gamedev #development #dotnet #csharp #tool #linq #optimization #allocation #геймдев #разработка #оптимизация #инструмент #рекомендация #видео
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤3👍2