TGViewer
Channel Public Channel
aks2dio | Unity и геймдев

aks2dio | Unity и геймдев

@aks2dio

Директ: @antonkerp

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

С 2017 г. разрабатываю, лидую, преподаю и консультирую.
Был в найме, стартапах, фрилансе, инди.
Опыт: Mobile, Desktop, Web, XR.
Subscribers
492
Photos
185
Videos
5
Links
222

Showing posts older than #47 · Back to latest

Older Posts 11 shown
Post #46 212
Про инфраструктурное хранение конфигураций игры
Уровень материала: 🐥 #middle

В рекомендации сегодня попадает видео Алексея Козорезова (автора канала Unity Architect).
В каком-то смысле это можно притянуть к прошлой теме про хранение конфигураций уровня. Тогда мы узнали, что конфигурацию уровня можно хранить в сериализуемых структурах типа Json, Xml или ScriptableObject. Теперь время разобраться с тем, где эти файлы хранить и как доставлять в игру.

Уровни — лишь частный случай конфигурации. В играх конфигурированию поддаётся практически всё. И особо важную роль в этом играет баланс, который часто формируется в гугл-таблицах.

👍 В видео рассматривается задача по работе с игровыми конфигами:
• Как хранить,
• Где хранить,
• Какое оборудование и какие сервисы понадобятся,
• Как доставлять до клиента без обновления приложения на площадке,
• Как учитывать разные версии приложения,
• Как учитывать разные варианты клиента при A/B-тестировании,
• Какие варианты есть и какой стоит выбрать,
• Как оперировать этим внутри приложения,
• Как использовать для этих целей Addressables.

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

⭐️ Эти знания — must have для всех мидлов, особенно с мобильного и веб рынков, где всяческий LiveOps и Content Delivery — неотъемлемая часть для сколько-нибудь крупного коммерческого проекта.
Если в этих вопросах недостаёт опыта, то видео обязательно к ознакомлению. И для полноты картины рекомендую дальше поизучать материалы в сети и существующие реализованные для этого сервисы.
—————————————
#gamedev #development #data #configuration #remote #bundle #delivery #liveops #геймдев #разработка #данные #доставка #бандлы #рекомендация #видео
  • 👍 3
  • ❤ 2
  • 🔥 2
  • 👌 1
Post #36 191
🤡 MemIT #1 🤡

Новая рубрика: подборка 10 мемов из мира GameDev и IT, которые я использовал или получал в переписках за последнее время. Особо "острый" контент решил в подборки не включать, но что-то "на грани" может будет проскальзывать.

Дисклеймер: подборка накапливалась некоторое время — что-то уже могло успеть стать баяном 🪗


Делись в комментариях мемами из своей коллекции — соберём следующую 10-ку вместе 🤡
—————————————
#gamedev #development #it #meme #humor #геймдев #разработка #айти #мемы #юмор
  • 🤣 6
  • 🔥 3
  • 🤡 1
Post #35 209
Про хранение конфигураций уровня и не только
Уровень материала: 🐣 #junior

Сегодня в рекомендации отправляю видео, которое показывает два любопытных подхода:
1. Хранение конфигурации уровня в ScriptableObject, а не в отдельной сцене.
2. Анимированное появление тайлов уровня.
И внутри есть ряд ещё более мелких интересных деталей.

📋 1. Хранение конфигурации уровня:
С этим я столкнулся в самом начале своей карьеры, т.к. начал с матч-3 направления, которое славится большим количеством уровней. По неопытности я хранил каждый настроенный уровень в отдельной сцене. Это привело к тому, что 10 таких уровней раздули билд без существенного контента до 100Мб.
Поизучав предметную область подробнее, я пришёл к тому, чтобы для уровня иметь одну сцену, а её наполнение формировать по данным из некоторого файла. Я использовал XML, т.к. тогда это было популярно (позднее для настройки уровня был подключен Tiled, который как раз умел экспортировать в XML). Билд тут же сдулся до 20Мб. А подход подарил невероятное количество всяческих бенефитов.
ScriptableObject — это тоже некоторый файл с данными (а точнее YAML или Binary, в зависимости от настроек Unity), который Unity умеет красиво отрисовывать в инспекторе.
А вот пример ассета (с ёмким описанием), который конвертирует уровень в JSON.

🎲 2. Анимированное появление тайлмапа:
Если уровень строится из тайлов, то это отличная возможность за "дёшево" сделать его эффектное появление. Например, как в видео, от точки позиции игрока плавно появить все тайлики в порядке удаления. Также можно и в целом оживить тайловое окружение, реагируя на разнообразные действия игрока.

✨ 3. Полезные мелочи:
В видео можно подглядеть:
• Как удалять элементы из списка, чтобы в for не делать лишних декрементов и в foreach не получить исключение InvalidOperationException “Collection was modified”. Подробнее про это можно также почитать в этом материале.
• Использование sqrMagnitude при сравнении дистанций для оптимизации вычислений. Про сравнение с обычным magnitude — тут (я тоже проводил подобные замеры: данные всё ещё актуальны).
• Как оформлять Coroutine для анимаций: нейминг, аргументы, содержание.
• Использование AnimationCurve для контроля плавности анимации.
• Использование Lerp для реализации анимации.

P.S.: теперь у постов будут лычки с обозначением направленности материала для удобной навигации по каналу.
—————————————
#gamedev #development #animation #scene #loading #геймдев #разработка #анимации #загрузка #рекомендация #видео
  • 🔥 4
  • 👍 3
Post #34 183
MidUp #1

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

Подборка мероприятий:
📆 10-11 сентября. Москва. [Online] [Offline] DotNext. Отель "МонАрх". Билеты, от 25 000₽.
📆 12 сентября. Красноярск. [Offline] KozhinDev MeetUp. Бар "Yushin Brothers". Бесплатно.
📆 13-14 сентября. Томск. [Offline] Город IT. БКЗ. Билеты от 7 990₽.
📆 13 сентября. Владимир. [Offline] Vladimir Tech talks. Офис Altenar. Бесплатно.
📆 14 сентября. Нижний Новгород. [Offline] Сезон кода. "Академия Маяк". Донат от 1 000₽.
📆 19 сентября. Новосибирск. [Offline] GameDev Meetup от GameDevNSK. Бесплатно. Подробности пока не анонсировались.
📆 20-28 сентября. [Online] Config Jam. Бесплатно.
📆 21 сентября. Москва. [Offline] GamePush Conf. Vlasov Hall. Билеты от 5 000₽.
📆 1-4 Ноября. [Online] Siberian Game Jam. Бесплатно.
📆 2 ноября. Москва. [Online] [Offline] RuStore GameDev Mobile Conf. БЦ "SkyLight". Бесплатно.

Знаешь какие-то ещё интересные события, особенно в регионах — оставляй информацию в комментариях. Добавлю в следующую подборку (или в эту, если дата уже близко)
—————————————
#development #gamedev #meetup #conference #разработка #геймдев #конференция #митап #рекомендация #подборка
  • 🔥 3
  • 👍 1
Post #33 183
Компрессия AnimationClip в Unity

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

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

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

❓ Пока не зашло всё далеко, может кто-то знаком с проверенными готовыми решениями для этой задачи?
—————————————
#unity #optimization #animation #repo #aks2dio #tool #инструмент #gamedev
  • 👍 4
  • 🔥 2
Post #32 190
Видео из разряда "прикольно": про не частый кейс оправданной "микро-оптимизации"

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

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

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

Поэтому не стоит загонять себя в рамки чисто геймдев специализации. За "соседями" подглядывать тоже полезно. Здесь как с естественными языками: чем больше языков знаешь, тем больше информации становится доступно.
—————————————
#development #dotnet #optimization #span #arraypool #stack #heap #alloc #разработка #оптимизация #стек #куча #рекомендация #видео
YouTube Кирилл Бажайкин — Приемы экономии памяти в .NET Подробнее о конференции DotNext: https://jrg.su/3WmFRE — — Скачать презентацию с сайта DotNext — https://jrg.su/lohpRy Современные приложения иногда потребляют очень много памяти. И иногда они делают это, казалось бы, на пустом месте. Вот и в практике спикера…
  • 🔥 3
  • 👍 2
  • 🍌 1
  • 🍓 1
Post #31 227
📝 С Днём Знаний! 📝

По забавному совпадению в этот день я опубликовал ❗️новую статью❗️ про современное сохранение прогресса в играх. Это большой FAQ, куда я постарался в доступной форме упаковать актуальные и накопленные за 7 лет наблюдения. Надеюсь, эта работа ответит на многие вопросы и поможет в решений подобных задач на своих проектах.

Хайлайты:
- Для чего нужна система сохранений?
- Какие задачи решает система сохранений?
- Какие процессы происходят внутри?
- Как реализовать систему программно?
- Какие варианты реализаций существуют?
- Как обеспечить гибкость и масштабируемость?
- Зачем и когда нужны гибкость и масштабируемость?

Статья доступна на 📝 Habr, 📝 Dtf
—————————————
#unity #gamedev #development #save #cloud #data #геймдев #разработка #сохранения #данные #облако #aks2dio #статья
  • 👍 3
  • 🔥 3
  • ❤ 2
Post #30 214
Статьи про архитектурные подходы для игровых проектов

Разгребая бэклог, дошёл до статьи на Medium (может потребоваться VPN), которая разбирает 5 видов архитектурных подходов, которые стоит использовать при разработке игр: ECS, DOD, CBA, SOA, N-Layer.

Мне понравилась линия автора, что каждый подход — не для любого проекта. В т.ч. и ECS, вокруг которого среди начинающих разработчиков строится чуть ли не всемогущее величие. ECS – инструмент определённо крутой, но какой-нибудь условный кликер я бы точно на нём делать не стал.

Понравилось мнение про полезность кастомных вариантов архитектур — для винегретного геймдева это очень актуально. Хотя я бы наверное сузил это понятие до "комбинация подходов".

Например, мне нравится N-Layer архитектура, но лепить её в эталонном виде не для каждого игрового проекта будет простым или оправданным занятием. Тем не менее её можно успешно применять ограниченно, в рамках внутренних модулей игрового проекта.

Или Component-Based подход. Построение на нём всей архитектуры для какого-нибудь казуал+ проекта приведёт ко всем описанным в статье минусам. Но это удобный подход для прототипирования или быстрого итерирования. Или для реализации визуального поведения — всё равно в Unity на стороне инспектора эксплуатируется этот компонентный подход, поэтому всё получится даже консистентно.

Эта статья мне почему-то напомнила другую, на DevsDaddy, где разбирались MVx-архитектуры и наиболее популярные паттерны проектирования.

Эта парочка статей оказалась очень кстати: мне как раз требовалось собрать ресурсы для ИПР на повышение грейда с Junior до Middle, и у кандидата вопросы архитектуры были второстепенными, уровня "повышать насмотренность". Это когда человек всё это уже прекрасно познал на практике, но, как всё это назвать и структурировать, ещё не знает. Т.е. нужен был ёмкий обзорный материал без избыточной глубины. Совпадение — отличное.
—————————————
#gamedev #development #architecture #patterns #unity #геймдев #разработка #архитектура #паттерны #рекомендация #статья
Medium Unlocking Unity’s Potential: The 5 Ideal Architectures for Game Development Unity serves as a potent canvas for unleashing your unique creative vision in the realm of game development.
  • 👍 2
  • 🔥 2
Post #29 170
Рекомендация видео по физическому движку

Для тех, кто переварил предыдущие статьи про просчёт коллизий, и кому показалось слишком просто или слишком мало, ещё одно видео с прошедшего Unigine Open Air про внутрянку физического движка, где в частности рассматривается проблема рассчёта коллизий более комплексно. VK / YouTube

🎲 Я не планировал делать пост на каждое видео с феста, просто по совпадению затронутая недавно тема получила складное развитие. Если в статьях рассматривались "шарики" и преимущественно Sweep & Prune подход, то в видео уже и формы посложнее и пообъёмнее, и алгоритмы позабористее. Обилие занимательной математики.

📑 Вообще могу рекомендовать все доклады Андрея — математически базировано про базированные составляющие игрового движка.

🥲 Такой контент помогает немного поддерживать в тонусе то, что ещё осталось после 6-тилетнего обучение на мат.фак'е. Чем дальше иду по вертикальной карьерной лестнице, тем меньше в работе остаётся заковыристой математики (и даже программирования) — а без регулярной практики эти знания стремительно замещаются другими.
—————————————
#gamedev #development #engine #physics #math #геймдев #разработка #движок #физика #математика #рекомендация #видео
VK Видео Андрей Викторов, «Position Based Dynamics: пишем физдвижок с нуля». Лекции UNIGINE Open Air 2024 Андрей рассказал об устройстве физических движков — самой страшной вещи, куда не суются даже опытные разработчики. Он поделился современным подходом к написанию физических симуляций, показал, что это совсем не страшно и наконец-то ответил на самый главный…
  • 👍 2
  • 🔥 1
Post #28 135
Рекомендация видео по анимированию костей

В июле проходил уже ставший традиционным Unigine Open Air, на котором были представлены новые доклады. В т.ч. от разработчиков самого Unigine. И они начали постепенно публиковаться в сети. Один из докладов я сегодня хочу порекомендовать к просмотру: VK, YouTube

🔩 Примечательного в докладах Unigine то, что часто они про разработку непосредственно движка и его внутрянки, а не про разработку игр на этом движке. Информация полезная, порой крайне интересная и очень показательная к тому, для чего в технических ВУЗ'ах изучают математику и куда её прикладывают. Задачка на анимацию костей как раз про это.

🧮 Многие уже привыкли клацать по кнопкам в аниматорах и перестали придавать значения тем вычислениям, которые происходят под капотом. А ведь они есть, и они сложнее, чем может показаться незнающему человеку.

👍 Хороший контент для того, чтобы освежить запылившиеся знания (или может получить новые). И подан доступно.
—————————————
#gamedev #development #engine #animation #unigine #bones #геймдев #разработка #движок #анимация #рекомендация #видео
VK Видео Кирилл Карпов, «Как анимировать кости». Лекции UNIGINE Open Air 2024 Кирилл поделился базовыми вещами: как устроен скелет, как работать с анимационными кадрами, как можно смешивать анимации, как использовать процедурную функциональность для скелета. Показал, какие формулы можно использовать, и какое api для этого дает движок.…
  • 👍 2
  • 🔥 1
Post #27 118

Forwarded from Digital-nonDigital 3ed (D-nD 3ed)

Ищем людей, готовых помочь с проведением фестиваля D-nD

Если ты из таких, заполни заявку тут: https://forms.gle/pHeSp8eZLzzXPft49

⌚️ Время: 24 августа в 13:00 - 19:45

🏢 Место: арт-пространство Фактура (г. Новосибирск, Дуси Ковальчук 268/3, 1 этаж)

❗️Возрастное ограничение: 16+

📝 Регистрироваться тут: https://gamedev-nsk.timepad.ru/event/2972502/

📰 Читать новости о мероприятии:
VK: https://vk.com/digital_nondigital
Telegram: https://t.me/digital_nondigital
Сайт фестиваля: https://d-nd.gamedevnsk.ru

Остались вопросы? Напиши организатору:
Telegram: https:/t.me/hexkritor
VK: https:/vk.com/hexkritor
  • 👍 2
  • 🔥 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →