Григорий Дядиченко – Telegram
Григорий Дядиченко
2.83K subscribers
395 photos
159 videos
7 files
1.19K links
Разработчик игр, интерактивных стендов и интерактивной рекламы. Эксперт в области интерактивов и XR.

100+ проектов за 5 лет.

По вопросам сотрудничества писать: @it_bizdev
Реклама в канале: https://vk.cc/cNhGLE
Download Telegram
Радужный кристалл с реймаршингом и SDF
https://varun.ca/ray-march-sdf/

Это конечно не про Unity, но мне очень понравилось оформление статьи. Плюс важно помнить, что шейдеры они и в африке шейдеры. Чуть может меняться синтаксис и доступные инструкции + оформления инпута и аутпута. Но суть и логика одинакова и на чистом GLSL и в шейдерлабе. Шейдерлаб это просто упрощение с компиляцией под разные платформы по сути. Но шейдеры даже чисто для js полезно разбирать и изучать используемые в них подходы. А в данной статье ещё и разбирается физика процесса с иллюстрациями и пошаговая интерактивная инструкция. В общем кайф.

#новости
🔥7
Сделано в Unity — Июнь
https://blog.unity.com/news/made-with-unity-monthly-june-2023-roundup

Люблю эти посты в блоге Unity. Всегда интересно посмотреть, что другие делают с Unity.

#новости
🔥7
Учимся игровой разработке
https://github.com/notpresident35/awesome-learn-gamedev

Большой список обучающих материалов в сфере геймдева. Практически по любой специальности. Такое нам надо.

#интересное
🔥21
Интересные патрули в игре и цепи Маркова
https://leanrada.com/notes/dynamic-patrol-stealth-games/

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

#интересное
🔥11
ИИ в Sims
https://youtu.be/9gf2MT-IOsg

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

#интересное
🔥9
This media is not supported in your browser
VIEW IN TELEGRAM
Хоррор в стиле манги
https://80.lv/articles/a-work-in-progress-horror-game-with-manga-like-art-style/

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

#новости
🔥21❤‍🔥5
Антиалиасинг шаг в Shader Graph
https://www.youtube.com/watch?v=YYHl2ebt_oE

Алиасинг или знаменитая лесенка которая всех бесит. В целом есть много способов борьбы с алиасингом. И вот один из них. За одну минуту быстро и довольно понятно. Вообще если стоит разобрать что такое алиасинг, какой он бывает и какие методы борьбы с ним существуют ставьте ❤️‍🔥. Так как это не только лесенка в спрайтах, а как на примере стилизации выше в тенях. Так же есть огромная проблема под названием Specular Aliasing и прочее, которое играет большую роль в VR играх.

Выше пример красивый, но да пока это только демка, так как рябь на потолке, лесенка в тенях, правильная отрисовка тонких контуров на отдалении — это всё решаемые проблемы. И если в такой стилистике оно ещё и рябить перестанет, то это будет просто пушка.

#интересное
❤‍🔥31
ПРАКТИКON
https://news.1rj.ru/str/justGameDesign/465

Коллеги по цеху делают марафон по созданию игр в жанре платформер. Там вы сможете:

• Узнать ключевые особенности платформера и историю жанра
• Научиться основам работы в игровых движках
• Опубликовать проект на itch.io
• Получить поддержку от экспертов и комьюнити
• Добавить готовый проект в своё портфолио
• Набрать баллы и потратить их на классный мерч и книги!

Зарегистрироваться можно тут.
А почитать подробнее в этом посте.

#новости
❤‍🔥8🔥2
Про антиалиасинг
https://habr.com/ru/articles/343876/

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

#интересное
🔥4
Подборка интересных каналов

Посоветую несколько полезных каналов, в основном для тестировщиков. Наверняка кому-то пригодится. Каналы авторские и интересные.

@qa_studio
Шаг за шагом рассказываем, как стать Junior QA.
Подборки вакансий без опыта каждую неделю, аналитка по рынку вакансий раз в месяц, интенсивы по тестированию и, конечно, мемчики.

@juniors_qa
Лайв канал про будни джунов-тестировщиков.
Пишем в подробностях как тестируем сайты, мобилки и API.

@qadictionary
Авторский канал от QA в Wildberries. Это сборник квизов с терминами и их пояснение на понятном языке. Более 90% из них постоянно встречаются в работе! Отлично подойдет тем, кто хочет быть незаменимым тестировщиком. Подпитывай свои знания вместе со мной!

@qa_and_it
Канал для тестировщиков. Как для новичков, так и для бывалых. Ежедневно делимся материалами по тематике: авторские посты и мысли автора, интересные статьи, обучающие видео, новости, ИТ-юмор и опросы

@datamisha
Авторский канал от data engineer’а в сбере. Рассказываю про data технологии (data engineering, data science, data analytics) и об it в целом. Можно почитать какой выбрать язык программирования и про SQL

@ProQuality_Community
Сообщество специалистов, интересующихся современными технологиями и трендами в области обеспечения качества! Мы делимся полезной информацией для QA, проводим развлекательно-обучающие квизы и многое другое.

#интересное
🔥16❤‍🔥8🥱7
Я не люблю программирование

Знаете — пора признаться. Я не особый фанат программирования. Внезапно, не правда ли в блоге по сути на 90% посвящённому программированию? Стоит наверное уточнить в каком смысле. Где-то в 26, когда я ещё читал мануалы процессоров, изучал ассемблер и низкий уровень, ковырялся в IL который генерит шарп. В общем изучал глубокую базу и т.п. — мне это надоело. Сейчас мне не особо интересно такое понятие как — идеальный код. Я понял, что я люблю в первую очередь решать задачи бизнеса.

Конечно как разраб влезть в какой-нить бесполезный холивар на 4 часа обсуждения — это святое. Но я не люблю поиски идеальных решений, идеального кода и так далее. Я привык решать задачи "достаточно хорошим решением". Я замечал что многие любят преждевременные оптимизации, углубляться на тему того, что вот тут то можно было бы написать лучше и удобнее. И так далее. Мне это как-то стало в определённый момент неинтересно. Решение прикладных задач в контексте бизнес требований достаточными инструментами — это быстрее и эффективнее.

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

В общем мне интереснее делать игры, делать проекты, делать визуализации данных и прочее, чем искать тот самый one piece идеальный код. Но это не значит что мой подход и моё мнение "правильное". Это просто один из подходов к работе и к разработке в целом. Как говорится "Данные мысли не являются инвестиционной рекомендацией".

#мысли
🔥53❤‍🔥6🤯2
Красивый пак моделей в стиле древнего Рима
https://80.lv/articles/roman-temple-ruins-asset-pack-for-unity/

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

#новости
🤣3❤‍🔥1🔥1
Про авто-тестирование в геймдеве

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

До этого хочется написать, а зачем вообще нужно покрытие тестами? Одна из основных задач тестов "контроль работоспособности абстракций". В любом коде так или иначе возникает некоторый набор абстракций. Возьмём простой пример (писать так точно не надо) У нас идёт игра Moba. У нас есть понятие Ability. От него идут Fire Ball Ability, Frost Bolt Ability и так далее. И в базовом классе описан метод Launch, который проверяет количество маны персонажа и делает всякие другие проверки. Для запуска нужен таргет. Мы создаём тест, в котором у нас должен умирать противник с такими-то характеристиками по настройкам баланса. То есть пускаем мок скилл в мок таргет. И так со всеми скиллами. Результат теста — все таргеты всегда мертвы. И при заданных характеристиках скилл вообще запущен.

Такой тест позволит отслеживать что "скиллы не сломались за счёт изменений" той же базовой реализации метода Launch в 100 скиллах. Или при изменении баланса, так как "ящик должен умирать с одного фаерболла". Классно, удобно и так далее. Но вот вопрос. А сколько таких мест в средней игре, что у нас есть какая-то абстракция на реализацию которой опирается 100 конкретных реализаций. Игры в разы конкретнее и несут (да и должны нести) в разы меньше сложных абстракций нежели возникает в серверной разработке. То есть потребность в тестировании сильно зависит от игры. Можно подобрать примеры типа WoW (хотя там опять таки больше бекенд чем клиентские разрабы обложатся тестами).

Поэтому любопытно, а как вы считаете насколько необходимо автотестирование в играх? Именно в клиентской части. Ток не на уровне "религии" — оно надо, потому что мне так сказали. А какие проблемы оно решает, чем полезно, чем удобно, чтобы как же тот же Test Driven Development стоил того, чтобы с ним морочиться.

#мысли
🔥10❤‍🔥1
Я пытаюсь объяснить геймдизайну, почему нам сложно добавить лук в шутер за один день.

P.S. Я просто обожаю эту картинку, и она мне снова на глаза попалась :)

#мем
🤣18🔥5
Неочевидный момент InputSystem

Сижу с утра разбираюсь с управлением с помощью руля в Unity (кстати вообще нетривиальная задача как оказалось). И не могу понять что происходит. Вроде нашёл какой маппинг отвечает за баранку, вроде даже чёт возвращается. Конечно любопытно что на колесе положение 0 — это +-1, поэтому нужно хранить память о знаках и т.п. Ну да пёс с ним, думаю это вопросы к конкретному рулю.

Сделал вывод в логи. И в какой-то момент значения перестают меняться. При этом лог идёт, апдейт отрабатывает. Оказывается, если нажать на инспектор то инпут система перестаёт обновляться. Весьма неожиданно. То есть апдейт работает, логи обновляются (иначе бы это как бы сам дурак Run in background нажми), а инпут систем не обновляется. Нажимаешь снова на GameView — всё работает. Забавно. Не самый очевидный прикол :)

#интересное
🤯10🤣5🔥2
Григорий Дядиченко
Неочевидный момент InputSystem Сижу с утра разбираюсь с управлением с помощью руля в Unity (кстати вообще нетривиальная задача как оказалось). И не могу понять что происходит. Вроде нашёл какой маппинг отвечает за баранку, вроде даже чёт возвращается. Конечно…
Ну да, проверил с контроллером от PS5 — та же фигня. То есть дело в InputSystem 100%, а не в конкретном хардваре. Так же обновил инпут систем до 1.6.3.

Я просто не люблю такие баги, когда что-то не работает в интеграции двух блекбоксов. Потому что часто бывает вообще непонятно что делать. Изначально я испугался, что вообще руль перестаёт возвращать значения через несколько секунд работы. Но так как это звучит как бред, то получилось догадаться, что дело не в этом. А то иначе бы пришлось молиться чтобы "так было только в редакторе" :)
🔥3
Счётчик действий
https://gist.github.com/Nox7atra/1d57515111611a141b081a91d2e90d12

Как всегда в какой-то момент меня начинает утомлять писать одни и те же конструкции по 100 раз, и я выношу их в миниатюрные скрипты. У вас бывало такое, что вы хотите чтобы что-то происходило по множественному нажатию какой-то кнопки или какому-то действию? Допустим очень часто хочется чёт такое для дебага, чтобы не сидеть и не ждать пока честно пройдётся что-то, а сделать такой чит. Собственно вот простенький пример класса для этого дела. Пример его применения что-то вроде такого

private ActionCounter _skipLevelAction;
private void Awake()
{
_skipLevelAction = new ActionCounter(3, 0.5f);
_skipLevelAction.ResolveAction += DebugEndLevel;
}

private void Update()
{
_skipLevelAction.Process(Time.deltaTime);
if (Input.GetKeyDown(KeyCode.RightArrow) || Input.GetMouseButtonDown(0))
{
_skipLevelAction.Action();
}
}

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

#сниппет
🔥8🥱3❤‍🔥1
Бла-бла-бла про ИИ
https://blog.unity.com/games/where-might-ai-take-gamedev-next

В целом ничего нового для тех кто следит за развитием ИИ в игровой индустрии и т.п. в блоге Юнити не написали. NPC, генерация ассетов, безопасность пользователей. В списке удивил разве что геймдизайн. Я то и в ассеты без допила человеческой рукой в обозримом будущем не верю. А вот то что ИИ геймдизайн будет интересным — и подавно. Что он будет генерить что-то и можно будет говорить "вау, это сделал компьютер сам" — да. А так по сути ИИ занимается на мой взгляд копированием и сборкой гомункулов. Только у него нет этого... как же его... Вкуса.

То есть описанный в статье бесконечно процедурно генерируемый мир — это фентези. Так как там не будет сверху человека, который будет следить за адекватностью происходящего. Хотя поживём увидим. Что будет ИИ майнкрафт и без глубоких технических навык и наработки скиллов можно будет делать чёт симпатичное — это да. И что игры наконец-то может будут стоить более разумных бюджетов. Если не слышали новость, что ребята из SEGA заявляют что 70 миллионов $ станет нормой для игр. А то где же такие деньги наскребсти :)

Озвучки или что-то техническое неиронками решать кайф. И я уверен, что вот это превратится в реальные инструменты и тулы. Процедурные анимации — вообще было бы прикольно уметь даже не в реалтайме анализировать старые фильмы и брать оттуда движения и мимику актёров для игровых персонажей. Инструментарий для голосовой автоматической озвучки на все языки, с забором голоса и автоматическим липсинком. Это думаю будет и будет круто. Но что то мне всё происходящее всё равно напоминает. Как человек который побывал на хайпе метавёрсов, AR&VR, и лёгкий хайп умных часов прошёл :) В общем посмотрим.

#новости
🔥6❤‍🔥1