Pull to refresh
8K+
93
Григорий Дядиченко@DyadichenkoGA

Master of Unity3D

37
Rating
278
Subscribers
Send message

Стрельба в шутерах по-простому: от мгновенного луча до отката времени на сервере

Level of difficultyMedium
Reading time21 min
Reach and readers10K

Всем привет! Меня зовут Гриша Дядиченко, я технический директор и основатель White Label Games. Уже больше десяти лет работаю с компьютерной графикой, AR/VR и компьютерным зрением — в основном это заказная разработка, плюс собственные прототипы по вечерам, до которых дотягиваются руки.

Делал я как-то на работе, по вечерам в свободное время, VR-шутер. Стрельбу, понятное дело, заложил себе на выходные: ну а что, raycast из ствола, событие попадания, отнял здоровье — делов-то. К вечеру воскресенья оно даже работало. Только ощущалось так, будто тыкаешь противника палкой: ни веса, ни отдачи, ни чувства, что ты вообще попал. Знакомо, наверное, каждому, кто хоть раз ставил в сцену оружие и жал «выстрел» — механически всё верно, а стрельба вялая и какая-то ненастоящая. Половина лечения тут — чистая полировка: вспышки, звук, тряска камеры, импакт-эффекты. А вот вторая половина — невидимая математика под капотом: та, что решает, ощущается стрельба честной и отзывчивой или кривой и несправедливой. Спред, который мозг считывает как «нечестный». Отдача, которую можно выучить. Попадание, которое по сети то засчитывается, то нет. Вот это всё и разберём.

Сталкивались ли вы с ситуацией, когда в шутере вы точно попали по противнику, а сервер сказал «промах»? Или с тем, что AI-противник стреляет в вас сверхскоростным снарядом и ни разу не попадает в движущуюся цель? Или с тем, что AK-47 в Counter-Strike рисует «семёрку» из пуль вверх и влево — и это, конечно же, никакой не баг, а вполне продуманная механика? Под капотом у всех этих ситуаций — конкретная математика.

Читать далее

Поведение толпы по-простому: от стай скворцов до тысячи юнитов в кадре

Level of difficultyMedium
Reading time17 min
Reach and readers7.3K

Всем привет! Меня зовут Гриша Дядиченко, я технический директор и основатель White Label Games. Уже больше десяти лет работаю с компьютерной графикой, AR/VR и компьютерным зрением — в основном это заказная разработка, плюс собственные прототипы по вечерам, до которых дотягиваются руки.

Сталкивались ли вы с ситуацией, когда у вас в игре уже двести юнитов, а FPS почему-то уехал, хотя визуально на сцене ничего особенного нет? Или с тем, что хочется сделать настоящую орду — плотную, с реакцией на стрельбу, обтекающую укрытия — а получается стайка, которая либо разбегается как пыль, либо слипается в один шарик и едет им по всей карте?

Чтож, давайте по порядку. Как это устроено у настоящих скворцов над Римом и причём тут код, какие именно три правила Рейнольдса и как они балансируются весами, как сетка побеждает O(N²) и где она сама ломается, что такое ORCA и как она разруливает встречные потоки в коридоре, как steering behaviors дают агенту цель и обход препятствий, и что лежит под капотом конкретных шипнутых игр от AC Unity до World War Z.

Читать далее

Драматургия через математику: WFC + Entropy Bias

Level of difficultyMedium
Reading time11 min
Reach and readers8.3K

Как одна модификация формулы превращает генератор карт в дизайнера уровней

Всем привет! Меня зовут Григорий Дядиченко, и я технический продюсер. Играли в Hades? Там дизайнер уровней не бросает кубики. Он точно знает, где игрок поймает дыхание после погони, где встретит соблазн свернуть с пути, где сундук стоит под прицелом элитника, а где — просто в углу за колонной. В простой случайной генерации таких решений нет: карты рождаются «равномерными» и драматургически мёртвыми. Сегодня хочется поговорить о том, как одной модификацией в формуле Wave Function Collapse вернуть в генератор жизнь. Разберём Entropy Bias, Entropy Cascade, Tile Probability Bias и семантические слои. Если вам интересна тема процедурной генерации и немножко математики — добро пожаловать под кат.

Читать далее

Почему ваш персонаж телепортируется при высоком FPS: float precision в играх

Level of difficultyEasy
Reading time6 min
Reach and readers8.6K

Всем привет! Меня зовут Григорий Дядиченко, и я разрабатываю разные проекты на заказ. Сталкивались ли вы с ситуацией, когда персонаж в вашей игре начинает немного дёргаться, если поиграть достаточно долго? Или пуля иногда пролетает сквозь тонкую стену, хотя коллайдер на месте? Если да — добро пожаловать в мир проблем float precision.

Сегодня хочется поговорить о том, почему тип float — при всей его повсеместности — может создавать тонкие и неочевидные баги в играх. Разберём, как он устроен, где именно он начинает врать, и что с этим делать.

Если вам интересна эта тема — добро пожаловать под кат!

Читать далее

Дитеринг и бандинг в Unity URP: как избавиться от полос и артефактов

Level of difficultyEasy
Reading time7 min
Reach and readers8.4K

Всем привет! Меня зовут Григорий Дядиченко, и я разрабатываю разные проекты на заказ. Сегодня хотелось бы поговорить про дитеринг и бандинг — две стороны одной медали в мире компьютерной графики.

Читать далее

О графике в Unity: видеокарты и их работа

Level of difficultyEasy
Reading time8 min
Reach and readers12K

Всем привет! Меня зовут Григорий Дядиченко, я уже что-то разрабатываю на Unity десять лет. В прошлой статье была база — графический конвейер, но в разы полезнее понимать, а как графика вообще работает. Понимание работы GPU позволяет понимать суть оптимизаций и почему они именно так работают, а не охотится на ведьм. Если интересуетесь темой — добро пожаловать под кат!

Читать далее

О графике в Unity: Графический конвейер

Level of difficultyEasy
Reading time7 min
Reach and readers8.4K

Всем привет! Меня зовут Григорий Дядиченко, я уже что-то разрабатываю на Unity десять лет. Давно ничего не писал, и тут собрался с силами и решил, что хочу написать про компьютерную графику. А точнее пройтись по её базе в контексте Unity. Если интересуетесь темой — добро пожаловать под кат!

Читать далее

От винта! Рычаги и винты в Unity

Level of difficultyEasy
Reading time9 min
Reach and readers5K

Всем привет! Меня зовут Григорий Дядиченко, и я разрабатываю разные проекты на заказ. Сегодня хотелось бы поговорить про рычаги и винты, и их реализацию в Unity. Сейчас как раз на хайпе Apple Vision Pro, а подобные штуки бывают весьма полезны в проектах с виртуальной и дополненной реальностью. Если вы интересуетесь Unity разработкой и темой MR — добро пожаловать под кат! Может данная реализация пригодится в вашем проекте.

Читать далее

Интересное из мира Unity #5 (24.02.23 — 02.03.23)

Reading time3 min
Reach and readers2.8K

Всем привет! Меня зовут Григорий Дядиченко, и я технический продюсер. В новом выпуске: обновление в физике, как работает Job System, красивое процедурно генерируемое небо и многое другое. Заходите под кат!

Читать далее

Интересное из мира Unity #4 (17.02.23 — 23.02.23)

Level of difficultyEasy
Reading time3 min
Reach and readers4.3K

Всем привет! Меня зовут Григорий Дядиченко, и я технический продюсер. Как работает Behavior Tree, Asperite получил поддержку Unity, ракеты из аниме, и многое другое в нашем пятничном дайджесте. Плюс бонусная рубрика. Вы интересуетесь Unity? Заходите под кат!

Читать далее

Интересное из мира Unity #3 (10.02.23 — 16.02.23)

Level of difficultyEasy
Reading time2 min
Reach and readers4.2K

Всем привет! Меня зовут Григорий Дядиченко, и я технический продюсер. Модель персонажа с помощью ИИ, математика для игровых разработчиков, как сделать красивую шерсть на URP и многое другое в сегодняшнем дайджесте. Если вам интересна Unity разработка, добро пожаловать под кат.

Читать далее

Интересное из мира Unity #2 (03.02.23 — 09.02.23)

Level of difficultyEasy
Reading time2 min
Reach and readers2.6K

Всем привет! Меня зовут Григорий Дядиченко, и я технический продюсер. А вот и второй выпуск дайджеста для Unity разработчиков. Интересные инструменты, красивые проекты, и всё что попалось мне на глаза за эту неделю. Если вам интересна Unity разработка — добро пожаловать под кат!

Читать далее

Интересное из мира Unity #1 (27.01.23 — 2.02.23)

Reading time2 min
Reach and readers2.5K

Всем привет! Меня зовут Григорий Дядиченко, и я технический продюсер. Я решил вести дайджест новостей по Unity, отбирая интересные посты из того, что произошло за неделю. Красивые проекты, интересные ролики и многое другое. Если вам интересна Unity разработка — добро пожаловать под кат!

Читать далее

Что такое тексел?

Reading time5 min
Reach and readers14K

Всем привет! Меня зовут Григорий Дядиченко, и я технический продюсер. Сегодня хочется поговорить о текстурах. О том, что такое тексель и о других базовых понятиях компьютерной графики. Что такое тексел или тексель? Если вам интересна эта тема — добро пожаловать под кат!

Читать далее

UI Роутер в Unity

Reading time10 min
Reach and readers5.6K

Всем привет! Меня зовут Григорий Дядиченко, и я технический продюсер. Обсуждая по работе архитектуру речь зашла про UI. Есть много разных подходов к тому как работать с графическим пользовательским интерфейсом в Unity. Хотелось предложить один вариант реализации переходов по интерфейсу плюс заодно показать пример использования атрибутов и рефлексии в C#.

Читать далее

Задачка «Вооружимся архитектурой»

Reading time5 min
Reach and readers8.6K

Всем привет! Меня зовут Дядиченко Григорий, и я технический продюсер. В своём блоге в телеграм я периодически публикую задачки по Unity. Решение одной задачки получается слишком длинным, чтобы писать про него в блог. Поэтому я решил это оформить в статью. Задачка звучит так.

Вы решили сделать с друзьями свой скайрим. У вас пока в игре есть два вида оружия: молот и меч. Они отличаются уроном, прочностью и скоростью атаки. Плюс логикой атаки. Атака молота аое в круговой зоне. Атака меча бьёт до 3 ближайших противников. К вам пришёл катжит и за лунный сахар предложил купить у него схему архитектуры на картинке выше. Предложите решение лучше. В чём проблема данной схемы?

Читать далее

Почему ТЗ стоит денег?

Reading time7 min
Reach and readers5.3K

Всем привет, меня зовут Дядиченко Григорий и я технический продюсер. Я в аутсорсе в роли фрилансера, аутсорс студии, заказчика и подрядчика уже 6 лет. В 2017 году я ушёл с последней постоянной работы и занимаюсь подрядом в том или ином виде. Сегодня хочется обсудить техническое задание. Почему оно стоит денег? Зачем вообще нужно качественное тз? Если вам интересна данная тема — добро пожаловать под кат.

Читать далее

Как сделать билд минимального размера в Unity?

Reading time7 min
Reach and readers23K

Всех с Новым Годом! Меня зовут Григорий Дядиченко, и я технический продюсер. Размер билда. Сегодня хотелось бы поговорить о нём и составить некий чек-лист, который полезно проходить перед выкладкой проекта. Если вам интересно, как можно инструментами Unity уменьшить вес сборки — добро пожаловать под кат!

Читать далее

Определение комбинации в Техасском Холдеме

Reading time7 min
Reach and readers12K

Всем привет! Меня зовут Григорий Дядиченко, и я технический продюсер. А в прошлом я был профессиональным игроком в покер. Сейчас я решил сделать на Unity пример проекта с покером, который выложу в опенсорс, когда я его доделаю. А пока хочется посмотреть на интересную задачку с определением сильнейшей комбинации в техасском холдеме. Разберём хеш-функции, битовые операции, поиск подмножеств определённой длинны из множества, биномиальный коэффициент и другое. Если вам интересна эта тема, то добро пожаловать под кат!

Читать далее

Фильтрация шума в дополненной реальности

Reading time6 min
Reach and readers3K

Всем привет! Меня зовут Гриша Дядиченко, и я технический продюсер. Сегодня хочется поговорить про шум, про его фильтрацию и зачем нужно про это знать при работе с технологиями дополненной реальности. Если вы интересуетесь или работаете с AR добро пожаловать под кат!

Читать далее

Information

Rating
234-th
Location
Москва, Москва и Московская обл., Россия
Registered
Activity

Specialization

Разработчик игр, Технический директор
Ведущий
Git
C#
C++
Python
ООП
.NET
Английский язык
Научно-исследовательская работа
Алгоритмы и структуры данных
Прикладная математика