Яковлев Илья | Всё про Unity-разработку


Гео и язык канала: Россия, Русский
Категория: Игры


Unity и разговоры про разработку.
Честно о том, как всё работает на практике: «затыки» в геймдеве, странные решения и почему иногда «неидеально» - это нормально.
Научишься понимать логику решений, а не просто повторять шаги из туториалов.

Связанные каналы  |  Похожие каналы

Гео и язык канала
Россия, Русский
Категория
Игры
Статистика
Фильтр публикаций


Дайджест: всё, что вы пропустили за последнее время🥰

За последнее время набралось много полезной информации как в тг, так и на ютубе, поэтому собрал всё полезное по темам, чтобы было удобно навёрстывать. Сохраняйте, чтобы не потерять)

🧐 ECS и архитектура
⁃ 🎬 Перейди с ООП на ECS - часовой ролик о том, зачем и как переходить
⁃ Как жить с большим количеством ECS-компонентов на проекте
⁃ Как выстроить апдейт игры, чтобы порядок работы не превращался в кашу
⁃ 🎬 5 ошибок в архитектуре игры с ECS

😎 Система способностей
⁃ Как делаются самые гибкие системы способностей - данные как основа
⁃ Системы способностей. Часть 1 - из каких модулей собирать
⁃ Как правильно реализовать статы в своей игре

👨‍💻 ИИ в разработке
⁃ 🎬 Как стартануть разработку проекта с ИИ
⁃ PerfMeter - ИИ-тулза для поиска узких мест в производительности
⁃ Скиллы для PerfMeter и grill-me - забирайте
⁃ Как мы балансили режимы игры ботами и ИИ-агентом
⁃ Как мыслить при разработке механик с ИИ и не скатиться в вайбкодинг
⁃ Поберегите себя: почему не стоит писать свой движок на волне нейронок

🖥 Unity: лайфхаки и инструменты
⁃ CI/CD - с чего начать и кому он вообще нужен
⁃ Ускоряем вход в Play Mode за пару нажатий
⁃ Новый Unity CLI - не просто прослойка для агентов и замена MCP
⁃ Addressables - лучший способ работы с ресурсами, и дело не только в загрузке с сервера
⁃ Mesh2Motion - бесплатная замена Mixamo?

🙂 Путь в геймдев и мысли вслух
⁃ Яма… или почему тебе плохо при разработке игр
⁃ Как сейчас устроиться в геймдев - советы по поиску работы
⁃ Нужна ли разработчику игр медийка
⁃ Наболевшее: ежегодные обновления под новый API level

😇 Проекты учеников
⁃ Divinum - релиз игры моего ученика в Steam
⁃ StableRef и Configurators - два опенсорсных пакета для работы с конфигами от ученика
⁃ Little Gamedev - канал ученика со скриншот-субботниками и плейтестами

Вроде все интересное/полезное собрал - будет что на выходных по изучать:)



1.5k 0 38 23 62

🔥 Addressables - лучший способ работы с игровыми ресурсами

С вас как обычно 🔥 если хотите продолжения этой темы:)
#разработка_на_практике

Я думаю многие знают про существования пакета Addressables. Он выступает в роли замены стандартной Resources системы в юнити (которая хоть и проста в использовании, но довольно ограничена в своих возможностях).

🧐 Однако если у меня спрашивают что-то про Addressables, то обычно только в контексте того, что этот пакет позволяет подгружать контент для игры из облака. Конечно такая возможность впечатляет, но по факту - это скорее приятный бонус, чем главная причина использования и как будто многие упускают другие преимущества этой системы

❓Начнем с базы - чем вообще плоха стандартная ресурсная система?

👉 Всё из папки ресурсов попадает в билд игры, причем нужно оно или нет - неважно. Это неоправданно увеличивает вес игры и утяжеляет старт приложения
👉 Эта система очень плохо позволяет контролировать потребление оперативной памяти в игре и отслеживать что щас загружено в память, а что нет
👉 Нет никакого удобного способа подгружать ассеты и в целом работать с ними. Единственная возможность - прямые пути до ассетов (даже ключей нет!)
👉 И некоторые другие более мелкие проблемы, не буду даже нагружать вас

✨ Пакет Addressables как раз закрывает эти проблемы и дает даже больше:

👉 Память полностью под нашим контролем. Загрузили ассет -> попользовались -> выгрузили, при этом все зависимости автоматически подгружаются и выгружаются тоже
👉 Ключи вместо пути. Мы задаем ассету явный ключ и дальше можем таскать его как хотим по всему проекту
👉 Удобная асинхронность из коробки. Все операции асинхронные и удобно организованы
👉 Лейблы и другие приколюхи. Можно грузить и выгружать ассеты пачками по тем или иным категориям. Условно загрузить все конфиги, или всё окружение для боя. Это очень удобно встраивается в процесс игры
👉 Local или Remote - можем удобно выбирать какие ассеты будут лежать на облаке и грузиться по запросу (а значит и обновляться без пересборки билда), а какие будут зашиваться в билд.
И это еще не все плюшки

Т.е. на самом деле Addressables решает очень много проблем возникающих при создании средне-больших проектов

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

🖥 Какие сервисы мы обычно заводим и что я могу вам также посоветовать продумать на старте

Напрямую Addressables.* по всему коду конечно дергать не стоит - всё заворачивается в сервисы:
👉 IAssetsLoader - единая точка загрузки ассетов. Тут весь функционал по загрузке/выгрузке ассетов, прогреву ассетов по лейблам, внутренний подсчет ссылок, полный релиз ассетов и так далее
👉 AddressablesUpdateService - инициализация пакета, проверка обновлений, скачивание ассетов при необходимости, очистка кэша и тд
👉 Загрузчик сцен на аддрессейблах - сцены обычно делаем тоже адресуемые, в сочетании с остальным функционалом это позволяет прям максимально эффективно работать с контентом и памятью
👉 Загрузчик конфигов - все конфиги которые реализованы на scriptable objects также идут в addressables и подменяются обычно из облака (чтобы была возможность быстро что-то перенастроить по балансу и тп)
👉 Пулы и фабрики игровых объектов - обертки поверх IAssetsLoader.

Т.е. с этих пунктов можно начать разбираться с системой и оптимизировать работу с ассетами и памятью в игре

👨‍💻А если что-то из этого интересно подробнее посмотреть по устройству, то пишите в комменты обязательно:)


Какой формат материала по ИИ кажется лучше?
Опрос
  •   Живые уроки (легче актуализировать и давать новое, но тяжелее восприятие)
  •   Записанные уроки (легче воспринимать, но тяжелее актуализировать)
  •   Не пользуюсь ИИ и не буду, так что пофигу:)
144 голосов


Нужна ли разработчику игр медийка?👀

Позавчера рассказывал про канал одного из учеников и на этом фоне показалось интересным обсудить такой вопрос:

Стоит ли разработчику игр заводить свой YouTube, Telegram-канал и вот это всё? Или это пустая трата сил, которые можно было потратить на разработку?

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

🧐Какие вообще плюсы можно получить?

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

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

❗️Но на самом деле монетизация своей медийки не всегда такая прямая. За время существования канал дал мне гораздо больше:

👉 Когда я решил уйти из найма, благодаря каналу смог быстро найти разработчиков к себе в команду.
👉 Познакомился с кучей интересных людей - с кем-то из них, возможно, ещё посотрудничаем в будущем.
👉 Помогал знакомым студиям находить разработчиков (тоже не за бесплатно)
👉 Брал проекты в аутсорс от тех, кто на меня вышел через ютуб

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

🔥 Блог как топливо для мотивации
Есть и менее очевидная штука. Например, некоторые мои ученики заводили каналы для того, чтобы поначалу подпитывать дисциплину, т.е. как бы брали некоторую ответственность перед другими людьми за то, что не остановятся и будут топить дальше, ведь когда на тебя хоть кто-то смотрит, забить на проект уже сложнее) Хоть это и не железная мотивация, но тем не менее дальше элементарно можно находить саратников в свой инди проект и, например, начинать что-то совместное

🥹 Медийка = вторая работа
Надо понимать, что просто выкладывать в пустоту постики - это путь вникуда. Надо постоянно над этим работать, думать над контентом, думать чем ты можешь быть полезен аудитории, через какие каналы развиваться и так далее. По началу, как и с любым делом, прикольно что-то делать, выпускать, новый опыт и тд, но в определенный момент розовые очки спадают и начинается вопрос дисциплины, а где дисциплина, там фактически появляется работа, которую нужно выполнять

🙈 Но медийка ≠ маркетинг игры
Это тоже надо понимать. Прокачивать свою медийность как разработчика и продвигать свою игру - это две разные задачи и аудитория у них разная.

Возьмём опять же мой канал. Я довольно редко делюсь здесь прогрессом разработки игр. Почему? Потому что вам это, скорее всего, не особо интересно, да и мне со своей стороны это особо не нужно) Вы тут в первую очередь ради того, чтобы научиться разрабатывать игры. А в сами игры вы, скорее всего, даже играть не будете - просто потому что вы не их ЦА. И это нормально.

Поэтому не надо пытаться усидеть на всех стульях сразу. Девлог для разработчиков соберёт вокруг вас разработчиков - это круто для знакомств и поиска команды, но игру он вряд ли продаст. А если цель - продвинуть игру, то и контент надо делать под игроков. Сначала решите, кого хотите собрать вокруг себя и от этого уже пляшите. Ну либо видите два канала параллельно (свой и игры)

😎 Так надо или нет?
Медийка - не обязаловка. Можно быть отличным разработчиком и нигде не светиться. Но если есть силы и желание - это одна из немногих вещей, которая работает на вас в долгую и отдаёт не только деньгами, а ещё людьми, возможностями и мотивацией

3.1k 0 18 26 56

Пост поддержки!)

Хочу с вами поделиться каналом Little Gamedev - небольшое инди-комьюнити, которое ведёт один из моих учеников, Максим. И меня искренне радует, как человек параллельно с учёбой, собственным проектом, работой умудряется еще и организовывать интересные движухи:)

Что там происходит:
🔥 "Тот самый субботник" - еженедельный конкурс скриншотов, но не обычный, где вы просто закидываете скрины в комменты, а там комьюнити голосует огоньками, конкурс идёт кругами по месяцу и топ-5 круга получает призы. В прошлом круге участвовало больше 60 проектов - для маленького канала это очень достойно
👉 "Инди-рулетка" - стримы с разборами инди-игр подписчиков и не только (что-то подобное думаю и тут ввести)
👉 Плейтесты - через бота канала можно подать свою игру на тест или потестить чужие.

Ну и сам Максим рассказывает про свой путь: пилит проекты, работает, учится и прорывается в геймдеве🔥

Так что если делаете свою игру - заходите, покажите её в ближайший субботник: 👉 https://t.me/littlegamedev

А в комментариях закидывайте свои каналы и проекты - интересно посмотреть, кто из подписчиков что пилит, а то давно у нас тут субботников не было:) 🧐



3.4k 0 52 137 128

Кстати, ребят, кто хочет попасть в геймдев через устройство на работу - щас очень хорошее время для поиска вакансий.

Уже просто несколько учеников написали, что после +- затишья летом щас пошли отклики и тестовые, поэтому решил напомнить что хорошие сезоны для поиска вакансий - это осень и конец зимы-начало весны

Пара моментов:

1) Не ограничивайте поиск только HH. Есть куча ТГ каналов с вакансиями, альтернативные сайты есть (например gdjob, который скоро обновиться и тп), плюс куча ИИшных сервисов щас появилось, тоже можно использовать

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

3) Пробуйте не только на Джуна вакансии, но и на миддла. Да знать надо по больше, но будет и гораздо больше выборка вакансий

4) Указывайте в качестве города Москву или большие города вашей страны + не бойтесь подаваться на удаленку в другие страны. Часто Русскоязычные компании бывают, и вопросы с оплатой так или иначе решаются

Ну и фигачьте оставляйте отклики и не останавливайтесь, если у вас есть цель! Отказы будут, игноры будут, но вам надо всего лишь один раз победить:)



4.2k 0 55 43 80

🔥 Замена mixamo?

Продолжаю делиться интересными находками.

Если вы хоть раз делали персонажа для своей игры, то наверняка знаете миксамо - сервис от Adobe, где на свою 3D-модельку можно накинуть скелет и готовые анимации. Пользуются им плюс-минус все, но вот Adobe на него давно подзабил как будто

На просторах интернета нашел интересный аналог Mesh2Motion.

Работает прямо в браузере:
👉 загружаешь свою модель
👉 вставляешь в неё скелет
👉 выбираешь анимации из библиотеки - их уже больше 150: ходьба, бег, атаки
👉 скачиваешь готовый файлик под юнити, годот или веб

Самое крутое, что риги и анимации есть не только под гуманоидов: там и птицы, и пауки, и даже кайдзю)
Всё бесплатно, в коммерческих проектах использовать можно, исходники открыты

🔥 Кроме того можно импортать прям в блендер анимации и там, например, дорабатывать с нейронками как вариант

Кстати щас тоже постепенно перебираю варианты пайплайнов для работы с ИИ над анимацией/графикой/балансом, чтобы можно было более менее в соло какие-то проекты закрывать. Было бы интересно такое? - ❤️

4.7k 1 212 17 136

🔥 5 ошибок в архитектуре игр с ECS! 🔥

Новый ролик на канале, в котором начинаем разбираться с разными аспектами разработки игр на ECS.

https://youtu.be/lRCqkmoaql0 - смотреть тута:)

Если вам зайдет ролик, то думаю выпустить несколько подобных частей - как мне кажется будет очень полезная серия практических уроков

Жду вашей поддержки и комментариев на ролике, всем спасибо!)



4.6k 0 55 38 66

Одна из самых зеаб**х вещей которую всей душой ненавижу 🤬

Это обновление каждый год наверное, а то и чаще всех игр со стора на новый API level, иначе гудбай (вот на днях снова попросили)

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

Раньше еще когда под разных издателей проекты пилили, то это было ну совсем неприятно:)))

Просто крик души...

Хотя вру, самая заебная вещь - это GDPR (пусть сгорит тот кто это придумал)

А вас что больше всего бесит в разработке?:))))


🧐 Как выстроить апдейт игры, чтобы порядок работы не превращался в кашу?

#разработка_на_практике

Не важно делаете вы игру на ООП или на ECS - всегда нужно контролировать порядок исполнения кода в вашей игре, хотя бы на верхнем уровне, иначе неизбежны проблемы, когда логика выполняется вперед ввода игрока (привет инпут лаги) или, например ИИ принимает решение по данным, которые уже не актуальны и тп.

✔️ Мы уже давно выработали простой и работающий подход:
думать не про выполнение отдельных механик, а про целые фазы выполнения игры, обычно их 5-10 штук.


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

Давайте, чтобы было понятнее распишу минимальный цикл, который у нас прослеживается почти в любой игре:

🔄 Синхронизация с Unity (в случае работы с ECS, с ООП обычно такого не надо).
В начале кадра надо с юнити подтянуть необходимые данные в ECS мир, потому что между кадрами могла посчитаться какая-то физика, коллизии и тп.

🕹 Ввод пользователя.
Считываем ввод пользователя в начале кадра, чтобы дальше геймплейная логика могла его обработать

🤖 Принятие решений ИИ.
Фактически считывание ввода от ИИ. Тут искуственный интеллект принимает решение о том, что надо сделает и также переводит это в некоторый ввод для геймплея

⚙️ Геймплей.
Тут идет основная симуляция: движение, бой, смерть, таймеры, абилки и тп. Тут меняется игровое состояние - всё, что реально происходит в игре, живёт тут

🎨 Презентация.
Берём итоговое состояние и отражаем его в Unity: дёргаем Animator, обновляем UI, спавним партиклы и звуки. Обычно этот слой только читает состояние и пишет в Unity - геймплейные данные она не трогает

🧹 Очистка.
Тут можно подчистить какой-то накопившийся за кадр мусор, если он есть

❓Почему порядок именно такой?
Каждая фаза готовит данные для следующей: Unity → ввод → логика → презентация → обратно в Unity. Данные текут в одну сторону - и это, наверное, самое важное правило

👀 Что это даёт?
- Когда фазы явные и зафиксированы, баги и тп. можно искать по стадиям и удобно сужать область поиска, а не бегать по всему проекту
- ИИ Агенту в 10раз проще отдавать какую-то работу, т.к. он прекрасно понимает куда что надо встраивать, может оценить порядок работы, и стабильнее делать качество
- Нет глупых логических гонок, которые надо постоянно фиксить
- Появляется что-то принципиально новое в игре, опять же это вписывается в общую концепцию. Например с мультиплеером вписывается какая-нибудь фаза синхронизация ввода, какие-то фазы или часть фазы можно вынести на сервер и тп.
- Повышается в целом понимание игровой системы, как человеком, так и агентом
- Для добавления новой механики тебе в 80% случаев достаточно просто выбрать нужную фазу (это уже фиксит многие проблемы), а оставшихся 20% надо выбрать порядок выполнения внутри своей фазы

🖥 Как это реализовать?
- В случае разработки на ECS на самом деле все просто и понятно. Располагаешь в нужном порядке системы, а сами системы упаковываешь в группы(фазы) по логике выполнения. Тут скажем так из коробки вся эта логика работы идет, я даже немножко упоминал это дело в недавнем ролике по ECS

- В случае ООП стоит завести какой-то классик типа GameLoop, который будет собирать в себя все верхнеуровневые сервисы какие у вас есть (спавнеры, классики инпута, сервис, который держит и обновляет мозги ботов и тп) и явно обновлять их работу. Обычно когда ты делаешь игрушку на ООП, то у тебя все довольно сильно завязано на событиях, что так или иначе скорее всего будет ломать порядок выполнения, но жить зачастую можно, если у тебя нет статик событий, через которые общается весь абсолютно геймплей

Мы в целом и так и так работали, собственно жить можно и так и так. Да с ECS это все нативнее получается, но там и к организации кода строже надо быть

Собственно, можно накинуть огонек, если было полезно🔥


GPT 6 Astra - конец разработчиков и закат человечества

Вышла тут на днях новая модель от OpenAI (убийца всего и вся) и снова полетели ролики с убийственными сайтами, играми с одного промпта и тд.

Я как хомячок не мог пройти мимо таких заявлений (ну когда ролики по 100-500к просмотров набирают, то хочешь не хочешь, а глаз цепляется) и решил потестить у себя на проектах. И вы не поверите...

Нихера особо с точки зрения разработки не поменялось. Ну отвечает местами по быстрее чем fable у Claude, но существенных различий за несколько дней использования не заметил (кроме того, что подписку сжирает с удовольствием)

Возможно если давать абстрактные задачи по типу сделай мне красивый сайт или сделай мне крутую игру про караваны, то astra выдаст результат по лучше (хотя это оч субъективно), но когда ты понимаешь чего хочешь, какую задачу решаешь, то как по мне и opus'а с головой хватает

Но признаюсь лендинги всякие или 3д модельки какие-нибудь делать не пробовал, ток в сторону разработки игр юзал, возможно в других областях что-то координально поменялось

Как по мне по большому счету история как с айфонами идет сейчас (инновационная камера, новейшие процессоры с олед экранчиками, а по факту уже сколько лет ничего особо не меняется)

Кто нибудь тестил? Какое у вас впечатление?

3.9k 0 20 63 65

Осень намечается интересная🤯

Что-то пропустил начало осени - щас много работы))) Но эти три месяца должны стать очень интересными:

1) Наконец то релизнем наш GooParty (ушли от прошлого названия), щас уже на исходе сил, но с верой в лучшее допиливаем UI, игровой туториал, заводим звуки и тп. И наконец сможем собрать новые метрики, а дальше решать вопрос развития проекта и привлечения инвестиций (ну либо произойдет совсем плохой плейтайм с рентеншеном и будем думать, что делать с этим соответственно)
p.s. кому интересно некоторые кадры последних дней из рабочего чатика прикрепил

2) Релиз новой обучающей программы для продвинутых ребят (реализация проекта продакшн уровня с ECS, UI MVP, addressables, DI, UniTask, CI/CD, как к этому подвязать ИИ и тд). Это будет 3-х месячная программа про то как делать серьезные проекты подконтрольно и не сойти сума. Про нее расскажу подробнее немного позже

3) Планируется интервью с мобильным издателем. Думаю многим тут будет оно полезно (насколько знаю даже некоторые из моих учеников уже обращались к ним)

4) Ну и уже несколько сценариев для новых роликов есть (главное чтобы хватило сил их реализовать)

В общем сезон огонь, хоть и не очень люблю осень🔥


Давненько не стримил

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

Может проекты ваши посмотрим, по коду пройдемся, заведем какой-нибудь топик с вопросами и тд

По кидайте в комментах идеи, может родим что-нибудь прикольное🔥

4k 0 0 20 38

Как делаются системы способностей. Часть 1

#система_способностей #разработка_на_практике

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

Если хочется продолжения или вам что-то из этого интересно подробнее не стесняйтесь ставить 🔥 и писать в комментах:)

И начать хочется с того из каких частей эта система может состоять

За все проекты, где мне так или иначе доводилось работать со способностями или чем-то похожим на способности я выделил 6 основных модулей. Причем необязательно использовать все и сразу, возможно для вашей игры или затеи понадобиться только часть из них:

🔣Мгновенные эффекты
То, что позволяет сделать какую-то одну мгновенную единицу действия. Т.е. некоторые атомарные кирпичики: нанести урон, подлечить, толкнуть, повесить статус и тд. Отработал и его роль на этом закончилась. Уже только с одним таким модулем можно наделать довольно много интересного и собирать большое количество механик

🔣Статы и модификаторы
Статы - изменяемые харакеристики игровых объектов: макс. здоровье, урон, скорость и тп. А модификаторы - то, как их можно менять: процентное изменение, плоская базовая добавка и тд. Т.е. у персонажа есть базовый урон 10, а вы взяли накинули на него список модификаторов на увеличение и теперь, пока висят модификаторы, у него 20 урона

🔣Статус эффекты
Их отличие от мгновенных в том, что эти живут какое-то время. Например баф скорости или урона (статус, который накидывает модификаторы персонажу и на время изменяет его статы). Или статусы можно рассматривать как геймплейные механики, например: горение, стан, инвиз. Т.е. у статус эффектов появляется своя механика длительности, тики, правила стакания при необходимости и тп.

🔣Таргетинг
Почему-то редко вижу упоминания этой вещи как отдельного модуля, хотя это довольно важная вещь. Нам очень часто надо задавать правила того, по кому прилетит урон, фильтровать объекты для применения способности и тд. Т.е. этот модуль отвечает за то, чтобы мы могли настраивать области действия способностей/эффектов

🔣Абилки (сами способности)
Это уже некоторая единица, которая собирает все вышеупомянутое и добавляет этому цену использования, кулдаун, условия применения и тд. Т.е. абилка выступает в роли некоторого агрегатора остальных модулей. Сама по своей сути ничего не делает обычно - она дирижёр со своим жизненным циклом и условиями использования

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

🧐 Что нам даёт такое разбиение?
Какой-нибудь файрбол перестаёт быть скриптом "Fireball.cs" и становится комбинацией: таргетинг (точка и область вокруг нее) + мгновенный урон + статус "горение". Хочется сделать ледяную стрелу? Делаем эффект создания проджектайла, и при попадании он накладывает статус замедления. Вампиризм - это реакция на нанесение урона в виде создания эффекта хила на источник урона. Т.е. новые способности собираются из готовых частей, а не пишутся с нуля и баланс правится в данных, а не в коде

❗️ВАЖНАЯ ВЕЩЬ О КОТОРОЙ СТОИТ ЗАДУМАТЬСЯ ВСЕМ
Иногда стоит относиться к системе способностей не как к основе для сложной магической системы, а как к базовой вещи в игре. Прыжок, дэш, пассивная добыча денег, обычная атака - все это тоже можно рассматривать как условные абилки. Это потом дает удобные возможности для добавления разных механик. Стан блокирует условный дэш, баф скорости ускоряет тебя, можно выдавать механики как некоторые способности по ходу игры, ускорение добычи золота в айдлерах повышать модификаторами и так далее. Разница просто в том, какие модули вам надо для игры реализовать, т.е. не всегда система способностей обязана выглядеть как в какой-нибудь доте, иногда она может проявляться в упрощенном или скрытом от игрока виде

В следующей части можем закопаться в статы например:) Почему не надо плодить типы данных, какие вещи удобно выражать статами и тп. 🔥


Ребят, нужна ваша поддержка крутого релиза!)

Буквально вчера в стиме в релиз вышла игрушка под названием Divinum - это экшен платформер с очень крутой боевкой.

Над ним работал один из моих учеников с командой и я бы очень хотел поддержать ребят и попросить вас игрушку добавить в вишлист/оформить в свою библиотеку🥰

Ребята уже неплохо стартанули, поэтому хочется помочь немножко с разгоном!)

p.s. по возможности распространите по своим чатикам! Спасибо🔥

5.3k 3 22 18 91

🔥 Unity MCP - как еще можно использовать?

Новый ролик на канале! Как установить MCP, какой выбрать, как можно использовать, конкретные примеры - все как вы любите:)

Поддержите лайком и комментарием😍

🔣 https://youtu.be/kKizb0LY4Sw - смотреть тут:)

p.s. ссылка на пост с крутой тулзой для анализа производительности

4.4k 0 52 22 64
Показано 20 последних публикаций.