fa
Feedback
GameDev: разработка игр

GameDev: разработка игр

رفتن به کانال در Telegram

Всё про геймдев для девелоперов, художников, левел- и геймдизайнеров, сценаристов Разместить рекламу: @tproger_sales_bot Другие каналы: @tproger_channels Другие наши проекты: https://tprg.ru/media

نمایش بیشتر
7 630
مشترکین
+124 ساعت
+107 روز
-1830 روز
جذب مشترکین
سپتامبر '26
سپتامبر '26
+44
در 2 کانال‌ها
اوت '26
+71
در 1 کانال‌ها
Get PRO
ژوئیه '26
+80
در 6 کانال‌ها
Get PRO
ژوئن '26
+83
در 1 کانال‌ها
Get PRO
مه '26
+85
در 1 کانال‌ها
Get PRO
آوریل '26
+61
در 0 کانال‌ها
Get PRO
مارس '26
+118
در 6 کانال‌ها
Get PRO
فوریه '26
+92
در 1 کانال‌ها
Get PRO
ژانویه '26
+90
در 6 کانال‌ها
Get PRO
دسامبر '25
+86
در 7 کانال‌ها
Get PRO
نوامبر '25
+133
در 4 کانال‌ها
Get PRO
اکتبر '25
+97
در 0 کانال‌ها
Get PRO
سپتامبر '25
+91
در 2 کانال‌ها
Get PRO
اوت '25
+115
در 1 کانال‌ها
Get PRO
ژوئیه '25
+82
در 0 کانال‌ها
Get PRO
ژوئن '25
+78
در 2 کانال‌ها
Get PRO
مه '25
+90
در 1 کانال‌ها
Get PRO
آوریل '25
+146
در 2 کانال‌ها
Get PRO
مارس '25
+139
در 2 کانال‌ها
Get PRO
فوریه '25
+90
در 1 کانال‌ها
Get PRO
ژانویه '25
+72
در 0 کانال‌ها
Get PRO
دسامبر '24
+67
در 1 کانال‌ها
Get PRO
نوامبر '24
+71
در 2 کانال‌ها
Get PRO
اکتبر '24
+74
در 1 کانال‌ها
Get PRO
سپتامبر '24
+67
در 1 کانال‌ها
Get PRO
اوت '24
+72
در 2 کانال‌ها
Get PRO
ژوئیه '24
+71
در 1 کانال‌ها
Get PRO
ژوئن '24
+63
در 2 کانال‌ها
Get PRO
مه '24
+60
در 1 کانال‌ها
Get PRO
آوریل '24
+60
در 0 کانال‌ها
Get PRO
مارس '24
+68
در 0 کانال‌ها
Get PRO
فوریه '24
+49
در 0 کانال‌ها
Get PRO
ژانویه '24
+69
در 0 کانال‌ها
Get PRO
دسامبر '23
+80
در 2 کانال‌ها
Get PRO
نوامبر '23
+54
در 0 کانال‌ها
Get PRO
اکتبر '23
+72
در 2 کانال‌ها
Get PRO
سپتامبر '23
+64
در 0 کانال‌ها
Get PRO
اوت '23
+80
در 0 کانال‌ها
Get PRO
ژوئیه '23
+63
در 0 کانال‌ها
Get PRO
ژوئن '23
+64
در 0 کانال‌ها
Get PRO
مه '23
+62
در 0 کانال‌ها
Get PRO
آوریل '23
+74
در 0 کانال‌ها
Get PRO
مارس '23
+97
در 0 کانال‌ها
Get PRO
فوریه '23
+103
در 0 کانال‌ها
Get PRO
ژانویه '23
+170
در 0 کانال‌ها
Get PRO
دسامبر '22
+192
در 0 کانال‌ها
Get PRO
نوامبر '22
+212
در 0 کانال‌ها
Get PRO
اکتبر '22
+158
در 0 کانال‌ها
Get PRO
سپتامبر '22
+181
در 0 کانال‌ها
Get PRO
اوت '22
+235
در 0 کانال‌ها
Get PRO
ژوئیه '22
+297
در 0 کانال‌ها
Get PRO
ژوئن '22
+206
در 0 کانال‌ها
Get PRO
مه '22
+272
در 0 کانال‌ها
Get PRO
آوریل '22
+200
در 0 کانال‌ها
Get PRO
مارس '22
+194
در 0 کانال‌ها
Get PRO
فوریه '22
+299
در 0 کانال‌ها
Get PRO
ژانویه '22
+138
در 0 کانال‌ها
Get PRO
دسامبر '21
+86
در 0 کانال‌ها
Get PRO
نوامبر '21
+92
در 0 کانال‌ها
Get PRO
اکتبر '21
+129
در 0 کانال‌ها
Get PRO
سپتامبر '21
+136
در 0 کانال‌ها
Get PRO
اوت '21
+476
در 0 کانال‌ها
Get PRO
ژوئیه '21
+674
در 0 کانال‌ها
Get PRO
ژوئن '21
+491
در 0 کانال‌ها
Get PRO
مه '21
+4 020
در 0 کانال‌ها
Get PRO
آوریل '21
+4 007
در 0 کانال‌ها
تاریخ
رشد مشترکین
اشارات
کانال‌ها
15 سپتامبر+3
14 سپتامبر+2
13 سپتامبر+3
12 سپتامبر+3
11 سپتامبر+6
10 سپتامبر+3
09 سپتامبر+7
08 سپتامبر+1
07 سپتامبر+3
06 سپتامبر+3
05 سپتامبر+2
04 سپتامبر+1
03 سپتامبر+6
02 سپتامبر+1
01 سپتامبر0
پست‌های کانال
Как создать эффект текущей жидкости в Unity с картой течения Для эффекта воды, грязи или лавы физическая симуляция не нужна.
Как создать эффект текущей жидкости в Unity с картой течения Для эффекта воды, грязи или лавы физическая симуляция не нужна. В уроке для Unity 2017.4.4f1 текстуру смещают по UV, а карта течения задаёт направление и скорость для участков поверхности. Карта хранит двумерный вектор в красном и зелёном каналах. Шейдер переводит значения 0…1 в −1…1 и вычитает из UV вектор, умноженный на время. Участки деформируются по-разному, поэтому материал не выглядит жёстко сдвигаемой плоскостью. Чтобы растяжение не копилось, прогресс берут из дробной части времени и сбрасывают раз в секунду. Переход маскируют: перед сбросом цвет умножают на коэффициент, падающий до нуля, после него коэффициент растёт. В уроке Catlike Coding есть код шейдера, импорт карты без sRGB для хранения векторов и разбор артефактов DXT1.

2
Как рассчитать поле зрения и освещение на 2D-карте В разборе Red Blob Games показан алгоритм для стен из отрезков. Лучи направляются к началу и концу каждой стены, а ближайшие пересечения задают треугольники. Эффективная версия сортирует концы стен по углу и поворачивает луч на 360°, сохраняя стены на его пути. При смене ближайшей стены начинается новый треугольник. Их объединение даёт область, видимую из выбранной точки. Результат пересекают с кругом, градиентом или конусом, чтобы ограничить обзор, добавить затухание света или фонарик. Расчёт применим к факелам, камерам и поиску укрытий игровым ИИ. Есть песочница и код на Haxe, но автор предупреждает о пропущенных оптимизациях и проблемах численной устойчивости: для проекта лучше изучить более надёжные реализации по ссылкам.
473
3
⚡️ Запустите Web Shop, выполняйте задания и выигрывайте призы Xsolla приглашает разработчиков мобильных игр на Web Shop Arena
⚡️ Запустите Web Shop, выполняйте задания и выигрывайте призы Xsolla приглашает разработчиков мобильных игр на Web Shop Arena 2026 — конкурс с призовым фондом $100 000. Это не просто соревнование: вместе с экспертами Xsolla вы шаг за шагом построите собственный канал прямых продаж — от запуска Web Shop и настройки платежей до продвижения и LiveOps. Каждая студия получает возможность выиграть до $5 000 за выполнение челленджей. А 4 студии с лучшими Web Shop в финале смогут выиграть дополнительные призы — от денежной выплаты до рекламного бюджета на сумму до $18 000 с партнёром Emarka. Заявки принимаются до 30 сентября. ➡️ Подать заявку
624
4
Как убрать задержку управления с помощью предсказания на клиенте При авторитетном сервере команда проходит до сервера и обратно, прежде чем игрок увидит движение. Предсказание на клиенте убирает эту паузу: клиент сразу применяет ввод локально, а сервер по-прежнему определяет истинное состояние мира. Сложность начинается, когда ответ приходит после нескольких команд. Клиент присваивает каждой порядковый номер, а сервер возвращает номер последней обработанной. Получив ответ, клиент принимает состояние сервера, удаляет подтверждённые команды и заново применяет ещё не обработанные. Так персонаж не прыгает назад из-за запоздалого снимка мира. В разборе Габриэля Гамбетты есть схемы с задержкой 100 и 250 мс и важная граница: эффект атаки можно показать сразу, но здоровье противника лучше менять только после ответа сервера.
657
5
Как Wave Function Collapse генерирует сетку из тайлов Wave Function Collapse (WFC) строит генератор на решении ограничений. К
Как Wave Function Collapse генерирует сетку из тайлов Wave Function Collapse (WFC) строит генератор на решении ограничений. Каждая клетка сетки хранит набор допустимых тайлов, а правила задают, какие края соседних тайлов могут соприкасаться. На каждом шаге алгоритм выбирает клетку с наименьшим числом вариантов, случайно оставляет в ней один тайл и пересчитывает соседей. Если выбор исключает часть комбинаций рядом, ограничения распространяются дальше по сетке. Случайность даёт разные результаты, но каждый из них должен соблюдать заданные правила. В материале Wave Function Collapse Explained механику сначала разбирают на мини-судоку, а затем переносят на сетку 3×3. Разбор пригодится, если хотите реализовать управляемую процедурную генерацию и понимать, почему тайл сокращает варианты вокруг.
751
6
Как A* ищет короткий путь по игровой карте Для алгоритма карта выглядит как граф: узлы обозначают положения, рёбра задают доп
Как A* ищет короткий путь по игровой карте Для алгоритма карта выглядит как граф: узлы обозначают положения, рёбра задают допустимые переходы. Поиск в ширину обходит граф равномерно, алгоритм Дейкстры учитывает стоимость перемещения, а A* использует оценку расстояния до цели и направляет поиск преимущественно к ней. В примере проход по воде стоит в десять раз дороже прохода по траве. Представление карты тоже влияет на производительность: A* быстрее работает с меньшим числом узлов, хотя сетку проще использовать. Интерактивный разбор Red Blob Games содержит анимации и код на Python: от очереди и восстановления пути до приоритетов и эвристики. Откройте его, если настраиваете навигацию персонажей и хотите увидеть, как граф и стоимость переходов меняют поиск.
816
7
Как устроены автоматы состояний и паттерн State в игровой логике У героини платформера появились прыжок, приседание и атака в
Как устроены автоматы состояний и паттерн State в игровой логике У героини платформера появились прыжок, приседание и атака в падении. Каждое действие добавляло булевый флаг, а сочетания быстро стали источником ошибок: персонаж менял спрайт на стоящий прямо в воздухе или снова прыгал во время атаки. Конечный автомат оставляет одно текущее состояние: героиня стоит, прыгает, приседает или атакует в падении. Кнопка запускает только разрешённый переход, остальные команды игнорируются. Даже перечисление со switch исключает невозможные сочетания и собирает обработку состояния в одном месте. В главе Game Programming Patterns этот пример развивается от простого switch до паттерна State и более сложных автоматов. Подойдёт, если логика персонажа уже обрастает проверками.
825
8
Создаём match-3 на Unity с раздельной логикой и визуализацией Туториал ведёт от пустой сцены к прототипу на Unity 2022.3.2f1:
Создаём match-3 на Unity с раздельной логикой и визуализацией Туториал ведёт от пустой сцены к прототипу на Unity 2022.3.2f1: игрок меняет плитки местами и собирает линии минимум из трёх одинаковых элементов. Игровая логика отделена от представления, а Match3Skin связывает её с основным контроллером. Визуальную оболочку можно заменить, не переписывая правила. Плитки получают разные формы ещё до цвета, чтобы их различали люди с нарушением цветовосприятия. Префабы возвращаются в универсальный пул, а двумерная сетка хранит ячейки в обычном массиве: Unity сериализует его и сохраняет данные после горячей перезагрузки кода. В пошаговом разборе Catlike Coding есть код обработки перетаскивания, пула объектов и сериализуемой сетки. Получится крепкая основа для собственного прототипа match-3.
859
9
Как собрать орбитальную камеру в Unity без Cinemachine В руководстве Catlike Coding автор собирает камеру от третьего лица во
Как собрать орбитальную камеру в Unity без Cinemachine В руководстве Catlike Coding автор собирает камеру от третьего лица вокруг сферы в Unity 2019.2.18f1. Позиция обновляется в LateUpdate после движения цели, а заданная дистанция сохраняется вдоль направления взгляда. Если физика двигает сферу с фиксированным шагом, а кадры выводятся с другой частотой, камера дрожит. Интерполяция Rigidbody сглаживает движение. Радиус фокуса отсекает малые сдвиги, а экспоненциальное центрирование плавно возвращает цель в середину кадра независимо от частоты обновления. Для ручной орбиты автор хранит вертикальный и горизонтальный углы, строит по ним поворот и берёт время без учёта замедления или паузы. Такую камеру можно понять и настроить под управление своего проекта.
860
10
С днем программиста, коллеги! Желаем, чтобы код компилировался с первого раза, баги находились до релиза, а таски «на пять ми
С днем программиста, коллеги! Желаем, чтобы код компилировался с первого раза, баги находились до релиза, а таски «на пять минут» действительно занимали пять минут.  И конечно, пусть в жизни будет больше приятных сюрпризов — один из них мы уже подготовили. Скорее переходите по ссылке, трясите коробку и забирайте свой подарок ко Дню программиста: https://tprg.ru/8c1C
839
11
Как устроена физика Celeste и TowerFall В Celeste и TowerFall физика построена на двух классах. Solid описывает геометрию уро
Как устроена физика Celeste и TowerFall В Celeste и TowerFall физика построена на двух классах. Solid описывает геометрию уровня, Actor отвечает за подвижные объекты. Коллайдеры прямоугольные, их координаты и размеры целочисленные. Actor накапливает дробную часть перемещения, округляет остаток, затем идёт по одному пикселю и перед каждым шагом проверяет препятствие. При столкновении движение останавливается и вызывается переданный обработчик. Движущаяся платформа сначала запоминает пассажиров, затем сдвигается и расталкивает пересёкшихся с ней актёров. Остальных пассажиров она переносит на полное расстояние. В разборе физики Celeste и TowerFall есть код схемы, обработка зажатых объектов и варианты столкновений для тайлового платформера.
846
12
Как читать ввод геймпада в JavaScript и находить дрейф стиков Gamepad API прост, но первая проверка может объявить неисправны
Как читать ввод геймпада в JavaScript и находить дрейф стиков Gamepad API прост, но первая проверка может объявить неисправный контроллер здоровым. Chromium держит значение оси на нуле, пока хотя бы раз не увидит её около центра: по модулю меньше 0,1. Поэтому сильный дрейф может оставаться скрытым сколько угодно. Есть и вторая ловушка: navigator.getGamepads() возвращает снимок состояния. Его нужно вызывать заново в каждом кадре requestAnimationFrame, а пустые ячейки массива пропускать. Я сохранил практический разбор freeCodeCamp как чеклист для браузерного тестера. После подключения попросите пользователя провести стики через центр, дождитесь ненулевого значения каждой оси и только затем ищите дрейф. Без контроллера опрашивайте API редко, после подключения переходите к каждому кадру.
813
13
Как Celeste незаметно прощает неточный ввод Celeste остаётся сложной, но управление ощущается отзывчивым: разработчики расшир
Как Celeste незаметно прощает неточный ввод Celeste остаётся сложной, но управление ощущается отзывчивым: разработчики расширяют окна времени и позиции в пользу игрока. После схода с края прыгнуть можно ещё несколько мгновений. Зажатая перед приземлением кнопка срабатывает точно в кадр касания. У вершины прыжка гравитация вдвое слабее, пока кнопка нажата, поэтому есть время поправить траекторию. При ударе головой об угол Мэдлин сдвигают в сторону, а боковой рывок у края поднимает её на платформу. Импульс движущейся платформы хранится несколько кадров после остановки. Принцип для разработчика: немного расширить допуски и незаметно помочь игроку выполнить задуманное действие. В авторском разборе Celeste & Forgiveness собраны десять приёмов, включая прыжки от стены и возврат выносливости при поздней смене направления.
818
14
Настройте синусоиду тремя параметрами Если движение объекта уже задано синусоидой, размах меняет коэффициент A. При A=2 значение становится вдвое больше в обоих направлениях. За скорость повторения отвечает w в sin(wx). Базовый период равен 2π; при w=2 он сокращается до π, поэтому цикл проходит вдвое быстрее. Для нужного периода p используйте w=2π/p. Фаза θ задаёт точку начала цикла, не меняя размах или частоту. В примере sin(x+π/2) синусоида сразу оказывается на положительном пике и сдвигается влево на π/2; отрицательная θ сдвигает её вправо. В разборе Eli Bendersky параметры можно покрутить в интерактивной демонстрации. Если синусоида уже задаёт колебание объекта, камеры или числового параметра шейдера, меняйте A, w и θ по отдельности: так видно, что отвечает за размах, темп и стартовую точку.
904
15
Прокрутка может переключать 3D-сцены без разрыва рендера Shader Development Studio собрала почти весь сайт внутри HTML-холста
Прокрутка может переключать 3D-сцены без разрыва рендера Shader Development Studio собрала почти весь сайт внутри HTML-холста. Three.js рендерит 3D-сцены, React Three Fiber описывает их компонентами, а язык материалов TSL компилируется и для WebGPU, и для WebGL. Так студия сохраняет совместимость со старым графическим API, не отказываясь от нового. Интерфейс тоже рисуется внутри Three.js через изменённый @pmndrs/uikit, поэтому проходит через ту же постобработку, что и сцены. Плавную прокрутку ведёт доработанная библиотека Lenis: она фиксирует переходы между главным экраном и разделом работ. Для геймдева здесь узнаваемая архитектура: меню, 3D и эффекты собраны в одном графическом конвейере. В разборе Codrops осталось устройство выборочного рендеринга и переходов между сценами.
920
16
Первый кадр на WebGPU пришлось ждать почти 20 секунд В веб-проекте Cerebrium одна область рендеринга содержала несколько окру
Первый кадр на WebGPU пришлось ждать почти 20 секунд В веб-проекте Cerebrium одна область рендеринга содержала несколько окружений со своими материалами, частицами, светом и постобработкой. Перед стартом Three.js обходил графы узлов на TSL, языке описания шейдеров Three.js, собирал из них шейдеры и компилировал графические конвейеры. На эталонной машине эта подготовка занимала почти 20 секунд, хотя после запуска производительность рендеринга проблемой не была. Проверяйте два этапа отдельно: скорость уже запущенного рендера и время до первого кадра. В насыщенной сцене стоит отдельно профилировать сборку шейдеров и создание конвейеров до показа изображения. В разборе Codrops есть весь путь выбора между WebGPU и WebGL, устройство нескольких окружений в одном холсте и объяснение, почему более чистой архитектуры оказалось недостаточно.
976
17
Сотни стеклянных карточек уложились в один рендер-проход В браузерном эксперименте на Three.js каждая карточка — плоская сетк
Сотни стеклянных карточек уложились в один рендер-проход В браузерном эксперименте на Three.js каждая карточка — плоская сетка. Скругления, фаска и преломление рассчитываются в материале, который смещает выборку из видеотекстуры: изображение будто проходит через стекло. Сцена на WebGPU обходится без освещения, постобработки и промежуточных буферов. Бесконечность тоже имитируется. Карточка, ушедшая за край, переносится на противоположный, а сетку размещают на большой сфере. Наклон и уменьшение элементов по краям создают глубину без бесконечной геометрии. В разборе Codrops есть код на TSL, языке шейдеров Three.js, расчёт нормалей из карты высот и настройка числа выборок под мощные и мобильные графические процессоры. Приём можно примерить к меню выбора уровней и галереям с десятками анимированных элементов.
991
18
Если вы несли мобильную игру в Supersonic, издатель у вас поменялся Unity продала издательский бизнес Supersonic студии Tripl
Если вы несли мобильную игру в Supersonic, издатель у вас поменялся Unity продала издательский бизнес Supersonic студии Tripledot Studios за $40 млн, о сделке объявили в начале августа. Вместе с бизнесом переходят продуктовая команда, SDK и технология автоматической закупки пользователей: то, чем издатель разгоняет игру после софт-лонча. Supersonic будет работать рядом с Lion Studios, собственным издателем Tripledot. Аргумент покупателя: ИИ сделал игры быстрее и дешевле в производстве, но не сделал проще их запуск. Узкое место переехало из сборки в вывод на рынок, и $40 млн Tripledot платит именно за эту часть цепочки, объясняет сооснователь компании Лиор Шифф. Для инди это меняет адрес, но не расклад: билд вы соберёте и вдвоём, а закупку трафика на миллионы игроков всё так же берёте у чужой компании. Вы бы отдали проект издателю ради трафика или тянули бы его сами?
983
19
Листву в path tracing больше не надо прореживать ради фреймтайма Каждое дерево, которое качается на ветру, заставляет пересоб
Листву в path tracing больше не надо прореживать ради фреймтайма Каждое дерево, которое качается на ветру, заставляет пересобирать структуру ускорения лучей, поэтому в трассируемых сценах растительность режут первой. На GDC 2026 в RTX Mega Geometry показали систему листвы на секционированных структурах ускорения: они разбиты на части, которые обновляются независимо, и анимация задевает не всю сцену. Листва целиком остаётся в трассировке пути, а CD PROJEKT RED планирует применить это в «Ведьмаке 4». Что ещё приехало из анонсов NVIDIA: • ReSTIR PT в RTX Dynamic Illumination: точные зеркальные отражения; • Linear Swept Sphere в RTX-ветке Unreal Engine 5.7: волосы трассируются попрядно; • Advanced Shader Delivery: скомпилированные шейдеры приезжают вместе с загрузкой игры, и стоттеров на компиляции в рантайме больше нет. Ветка UE 5.7 вышла в марте, остальные SDK лежат в RTX Kit.
1 019
20
Плоские нити не ловят свет, но в WebGPU их можно сделать объёмными Светящаяся линия в трёхмерной сцене быстро выдаёт плоскую
Плоские нити не ловят свет, но в WebGPU их можно сделать объёмными Светящаяся линия в трёхмерной сцене быстро выдаёт плоскую основу: на ней нет блика, а освещение не меняется по ширине. У ленты meshline причина в устройстве геометрии. Пары вершин раздвигаются уже в экранных координатах, лента всегда повёрнута к камере, поэтому у неё нет поверхности с нормалью, на которую может подействовать свет. В разборе Codrops ленты заменили настоящими трубками. Их координаты и нормали вычисляет видеокарта поверх материала с физической моделью освещения, а исходную геометрию не приходится пересобирать. Для эффектов в three.js граница практичная: meshline подходит экранным штрихам, а для нитей, которые должны ощущаться частью освещённой сцены, нужны трубки.
1 031