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 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 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 Explained механику сначала разбирают на мини-судоку, а затем переносят на сетку 3×3. Разбор пригодится, если хотите реализовать управляемую процедурную генерацию и понимать, почему тайл сокращает варианты вокруг. | 751 |
| 6 | Как A* ищет короткий путь по игровой карте
Для алгоритма карта выглядит как граф: узлы обозначают положения, рёбра задают допустимые переходы. Поиск в ширину обходит граф равномерно, алгоритм Дейкстры учитывает стоимость перемещения, а A* использует оценку расстояния до цели и направляет поиск преимущественно к ней.
В примере проход по воде стоит в десять раз дороже прохода по траве. Представление карты тоже влияет на производительность: A* быстрее работает с меньшим числом узлов, хотя сетку проще использовать.
Интерактивный разбор Red Blob Games содержит анимации и код на Python: от очереди и восстановления пути до приоритетов и эвристики. Откройте его, если настраиваете навигацию персонажей и хотите увидеть, как граф и стоимость переходов меняют поиск. | 816 |
| 7 | Как устроены автоматы состояний и паттерн State в игровой логике
У героини платформера появились прыжок, приседание и атака в падении. Каждое действие добавляло булевый флаг, а сочетания быстро стали источником ошибок: персонаж менял спрайт на стоящий прямо в воздухе или снова прыгал во время атаки.
Конечный автомат оставляет одно текущее состояние: героиня стоит, прыгает, приседает или атакует в падении. Кнопка запускает только разрешённый переход, остальные команды игнорируются. Даже перечисление со switch исключает невозможные сочетания и собирает обработку состояния в одном месте.
В главе Game Programming Patterns этот пример развивается от простого switch до паттерна State и более сложных автоматов. Подойдёт, если логика персонажа уже обрастает проверками. | 825 |
| 8 | Создаём match-3 на Unity с раздельной логикой и визуализацией
Туториал ведёт от пустой сцены к прототипу на Unity 2022.3.2f1: игрок меняет плитки местами и собирает линии минимум из трёх одинаковых элементов. Игровая логика отделена от представления, а Match3Skin связывает её с основным контроллером. Визуальную оболочку можно заменить, не переписывая правила.
Плитки получают разные формы ещё до цвета, чтобы их различали люди с нарушением цветовосприятия. Префабы возвращаются в универсальный пул, а двумерная сетка хранит ячейки в обычном массиве: Unity сериализует его и сохраняет данные после горячей перезагрузки кода.
В пошаговом разборе Catlike Coding есть код обработки перетаскивания, пула объектов и сериализуемой сетки. Получится крепкая основа для собственного прототипа match-3. | 859 |
| 9 | Как собрать орбитальную камеру в Unity без Cinemachine
В руководстве Catlike Coding автор собирает камеру от третьего лица вокруг сферы в Unity 2019.2.18f1. Позиция обновляется в LateUpdate после движения цели, а заданная дистанция сохраняется вдоль направления взгляда.
Если физика двигает сферу с фиксированным шагом, а кадры выводятся с другой частотой, камера дрожит. Интерполяция Rigidbody сглаживает движение. Радиус фокуса отсекает малые сдвиги, а экспоненциальное центрирование плавно возвращает цель в середину кадра независимо от частоты обновления.
Для ручной орбиты автор хранит вертикальный и горизонтальный углы, строит по ним поворот и берёт время без учёта замедления или паузы. Такую камеру можно понять и настроить под управление своего проекта. | 860 |
| 10 | С днем программиста, коллеги!
Желаем, чтобы код компилировался с первого раза, баги находились до релиза, а таски «на пять минут» действительно занимали пять минут.
И конечно, пусть в жизни будет больше приятных сюрпризов — один из них мы уже подготовили. Скорее переходите по ссылке, трясите коробку и забирайте свой подарок ко Дню программиста: https://tprg.ru/8c1C | 839 |
| 11 | Как устроена физика Celeste и TowerFall
В Celeste и TowerFall физика построена на двух классах. Solid описывает геометрию уровня, Actor отвечает за подвижные объекты. Коллайдеры прямоугольные, их координаты и размеры целочисленные.
Actor накапливает дробную часть перемещения, округляет остаток, затем идёт по одному пикселю и перед каждым шагом проверяет препятствие. При столкновении движение останавливается и вызывается переданный обработчик.
Движущаяся платформа сначала запоминает пассажиров, затем сдвигается и расталкивает пересёкшихся с ней актёров. Остальных пассажиров она переносит на полное расстояние. В разборе физики Celeste и TowerFall есть код схемы, обработка зажатых объектов и варианты столкновений для тайлового платформера. | 846 |
| 12 | Как читать ввод геймпада в JavaScript и находить дрейф стиков
Gamepad API прост, но первая проверка может объявить неисправный контроллер здоровым. Chromium держит значение оси на нуле, пока хотя бы раз не увидит её около центра: по модулю меньше 0,1. Поэтому сильный дрейф может оставаться скрытым сколько угодно.
Есть и вторая ловушка: navigator.getGamepads() возвращает снимок состояния. Его нужно вызывать заново в каждом кадре requestAnimationFrame, а пустые ячейки массива пропускать.
Я сохранил практический разбор freeCodeCamp как чеклист для браузерного тестера. После подключения попросите пользователя провести стики через центр, дождитесь ненулевого значения каждой оси и только затем ищите дрейф. Без контроллера опрашивайте API редко, после подключения переходите к каждому кадру. | 813 |
| 13 | Как 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-холста. Three.js рендерит 3D-сцены, React Three Fiber описывает их компонентами, а язык материалов TSL компилируется и для WebGPU, и для WebGL. Так студия сохраняет совместимость со старым графическим API, не отказываясь от нового.
Интерфейс тоже рисуется внутри Three.js через изменённый @pmndrs/uikit, поэтому проходит через ту же постобработку, что и сцены. Плавную прокрутку ведёт доработанная библиотека Lenis: она фиксирует переходы между главным экраном и разделом работ.
Для геймдева здесь узнаваемая архитектура: меню, 3D и эффекты собраны в одном графическом конвейере. В разборе Codrops осталось устройство выборочного рендеринга и переходов между сценами. | 920 |
| 16 | Первый кадр на WebGPU пришлось ждать почти 20 секунд
В веб-проекте Cerebrium одна область рендеринга содержала несколько окружений со своими материалами, частицами, светом и постобработкой. Перед стартом Three.js обходил графы узлов на TSL, языке описания шейдеров Three.js, собирал из них шейдеры и компилировал графические конвейеры. На эталонной машине эта подготовка занимала почти 20 секунд, хотя после запуска производительность рендеринга проблемой не была.
Проверяйте два этапа отдельно: скорость уже запущенного рендера и время до первого кадра. В насыщенной сцене стоит отдельно профилировать сборку шейдеров и создание конвейеров до показа изображения.
В разборе Codrops есть весь путь выбора между WebGPU и WebGL, устройство нескольких окружений в одном холсте и объяснение, почему более чистой архитектуры оказалось недостаточно. | 976 |
| 17 | Сотни стеклянных карточек уложились в один рендер-проход
В браузерном эксперименте на Three.js каждая карточка — плоская сетка. Скругления, фаска и преломление рассчитываются в материале, который смещает выборку из видеотекстуры: изображение будто проходит через стекло. Сцена на WebGPU обходится без освещения, постобработки и промежуточных буферов.
Бесконечность тоже имитируется. Карточка, ушедшая за край, переносится на противоположный, а сетку размещают на большой сфере. Наклон и уменьшение элементов по краям создают глубину без бесконечной геометрии.
В разборе Codrops есть код на TSL, языке шейдеров Three.js, расчёт нормалей из карты высот и настройка числа выборок под мощные и мобильные графические процессоры. Приём можно примерить к меню выбора уровней и галереям с десятками анимированных элементов. | 991 |
| 18 | Если вы несли мобильную игру в Supersonic, издатель у вас поменялся
Unity продала издательский бизнес Supersonic студии Tripledot Studios за $40 млн, о сделке объявили в начале августа. Вместе с бизнесом переходят продуктовая команда, SDK и технология автоматической закупки пользователей: то, чем издатель разгоняет игру после софт-лонча. Supersonic будет работать рядом с Lion Studios, собственным издателем Tripledot.
Аргумент покупателя: ИИ сделал игры быстрее и дешевле в производстве, но не сделал проще их запуск. Узкое место переехало из сборки в вывод на рынок, и $40 млн Tripledot платит именно за эту часть цепочки, объясняет сооснователь компании Лиор Шифф.
Для инди это меняет адрес, но не расклад: билд вы соберёте и вдвоём, а закупку трафика на миллионы игроков всё так же берёте у чужой компании. Вы бы отдали проект издателю ради трафика или тянули бы его сами? | 983 |
| 19 | Листву в 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 их можно сделать объёмными
Светящаяся линия в трёхмерной сцене быстро выдаёт плоскую основу: на ней нет блика, а освещение не меняется по ширине. У ленты meshline причина в устройстве геометрии. Пары вершин раздвигаются уже в экранных координатах, лента всегда повёрнута к камере, поэтому у неё нет поверхности с нормалью, на которую может подействовать свет.
В разборе Codrops ленты заменили настоящими трубками. Их координаты и нормали вычисляет видеокарта поверх материала с физической моделью освещения, а исходную геометрию не приходится пересобирать.
Для эффектов в three.js граница практичная: meshline подходит экранным штрихам, а для нитей, которые должны ощущаться частью освещённой сцены, нужны трубки. | 1 031 |
