GameDev: разработка игр
7.62K subscribers
979 photos
208 videos
1 file
1.41K links
Всё про геймдев для девелоперов, художников, левел- и геймдизайнеров, сценаристов

Разместить рекламу: @tproger_sales_bot

Другие каналы: @tproger_channels

Другие наши проекты: https://tprg.ru/media
Download Telegram
SteamDB теперь принадлежит владельцу Nexus Mods, и это касается тех, кто смотрит по ней продажи

xPaw тянул SteamDB с 2013 года почти в одиночку, объём работы дорос до полной занятости, и в январе он начал искать партнёра. Итог объявили 2 сентября: сайт становится частью структуры Nexus Mods. Обещания в FAQ: имя и адрес остаются, текущие бесплатные функции не уходят за paywall, рекламных сетей не будет.

Для разработчика важны две вещи. Первая: история билдов и манифестов SteamDB, которой больше десяти лет, поедет в мод-менеджеры Nexus, чтобы предупреждать игроков об обновлении, которое сломает моды, и фиксировать точную версию игры в коллекциях. Если ваша игра поддерживает моды, жалоб «после патча всё сломалось» должно стать меньше. Вторая: API для разработчиков и издателей обещан со словами «скорее всего», условий нет, а значит, парсинг страниц может однажды закрыться. Что ещё обещали и чего не сказали, на сайте.

@make_game
😭4👍2
BLARM анимирует статичную 3D-модель по обычному видео без рига и скелета

Девять авторов из Roblox, UMass Amherst и Технического университета Крита выложили на arXiv метод, который берёт статичную сетку и монокулярное видео и возвращает согласованную по времени анимацию. Ни скелета, ни cage, ни весов скиннинга: движение раскладывается на 31 обучаемый жёсткий компонент плюс корневой, с постоянными весами вершин к компонентам.

Скорость для такого класса задач непривычная: 16 кадров на RTX 4080 за 3,13 секунды. ActionMesh на том же тесте тратит 350 секунд, Mesh4D 55,33. По метрикам на ActionBench: CD-3D 1,71, CD-4D 3,07, CD-Motion 7,15. Обучение заняло 1,5 дня на восьми H200.

Ограничения авторы показывают честно: ошибки на соседних визуально похожих участках и при неподходящей топологии сетки, длинные видео обрабатываются авторегрессионно. Кода и весов пока нет, статья под CC BY 4.0. Для техартистов это повод следить за репозиторием: пайплайн «снял на телефон, получил анимацию ассета» перестаёт быть фантастикой. Статья на arXiv.

@make_game
👍3❤1😇1
Сегодня в 21:00 по Москве Epic покажет, как один человек собрал сетевую игру на Blueprint за семь дней

В эфире Inside Unreal Кристофер Мэйн разберёт свой рабочий процесс: онлайн-игра в жанре puzzle extraction, ретро-эстетика, мультиплеер, всё на Blueprints без C++. Заявлены концепт, 3D-моделирование и риггинг, анимация, текстуры и звук, то есть полный пайплайн от идеи до сетевого прототипа за неделю. Анонс и ссылка на трансляцию на форуме Epic.

Это анонс, а не отчёт: как поведёт себя такой прототип под нагрузкой и что пришлось выкинуть ради срока, узнаем только в эфире. Если делаете сетевой прототип в одиночку, час на этот стрим окупится хотя бы списком того, чего не делать :)

@make_game
🗿6🔥1🤨1
Бесплатные ассеты рассортировали по тому, насколько опасно тащить их в коммерческую игру

Скачать бесплатно и иметь право продать игру с этим внутри две разные вещи, и ловит людей именно лицензия. Автор поста в r/gamedev собрал каталог по уровням риска. Самый спокойный ярус, CC0 и public domain без обязательного указания авторства: Poly Haven (модели, текстуры, HDRI), ambientCG (тысячи PBR-материалов без аккаунта), Kenney (3D-наборы, спрайты, UI, аудио), Quaternius (low-poly, многое уже под риг).

Смешанные лицензии, где условия меняются от файла к файлу: Sketchfab, OpenGameArt, itch.io, где правила задаёт конкретный автор. Со звуком отдельное предупреждение: на бесплатных аудиосайтах рядом с CC0 попадаются перезалитые дорожки из фильмов, игр и YouTube; Freesound смешивает CC0 и CC BY, а бандлы Sonniss с GDC названы профессиональными и чистыми по лицензии. В конце бесплатный софт (Blender, Godot, Krita, Blockbench, Pixelorama, Material Maker) и учебные ресурсы. Автор раскрыл, что два ресурса из списка принадлежат ему, и обещает поддерживать список.

@make_game
✍4👍1
Разработчик с двадцатилетним стажем прошёл всю Gamescom и записал, куда смещается рынок

Восемь дней, больше 1700 экспонентов, 70% из-за пределов Германии, инди-зона выросла на 16% до 420 студий; официальная пресс-служба потом насчитала 368 тысяч посетителей из 131 страны. На этом фоне автор описывает главное ощущение инди: внимание стало самым дефицитным ресурсом, и маленький стенд конкурирует не с соседом, а с тридцатиминутным роликом GTA VI, вышедшим прямо во время выставки, и с How To Fish, продавшей миллион копий за два дня.

Из трендов: аутсорс-разработка и сервисные подрядчики растут, студии из Саудовской Аравии нанимают западных ветеранов удалённо, а спрос на ИИ, по словам автора, поднимает цены на игровое железо. Из бытового: у инди-команд украли ноутбуки из запертого шкафа в холле 4.1. Если планируете выставку в следующем году, пост стоит прочитать до бронирования стенда.

@make_game
✍4😭1
Свой движок сегодня у 13% релизов на Steam, но на них приходится 43% проданных копий

Цифры из VGInsights: в 2024 году собственный движок использовали примерно 13% релизов на Steam против 71% в 2012-м. Тренд выглядит окончательным, и разговор на этом обычно заканчивается.

Не заканчивается. На эти 13% пришлось 43% проданных копий. Да, в основном это AAA с собственными технологиями, но цифра показывает, что своя технология до сих пор может окупаться, а не только тешить самолюбие.

Прежде чем отвечать на «зачем», автор берётся определить, что вообще считать движком, и термин оказывается настолько широким, что под него подводили даже Claude Code: сцена собирается каждый кадр, раскладывается по элементам, растеризуется и диффится с предыдущей.

Это первая часть серии, дальше обещают практику. Читать стоит, если мысль про свой движок у вас периодически всплывает и вы её каждый раз гоните.
👀2
Epic выложила запись стрима о том, что MCP уже умеет внутри редактора Fortnite

Model Context Protocol это способ дать ИИ-агенту доступ к инструментам программы, и Epic встроила его в UEFN, редактор для Fortnite Creative. В записи эфира Магнус Энебакк, евангелист языка Verse, показывает базовые сценарии и всё, что MCP на сегодня умеет делать в редакторе. Ссылка на запись на форуме Epic, сама трансляция доступна по fn․gg/mcp-uefn-stream.

Если вы не делаете карты для Fortnite, смотреть всё равно есть зачем: UEFN построен на Unreal Engine со своим набором возможностей и ограничений, и по нему видно, какие операции редактора Epic считает безопасными для агента, а какие нет. Это подсказка о том, куда пойдёт MCP в большом Unreal Editor :)

@make_game
🎉1
Godot против движка, о котором вы, скорее всего, не слышали

Limn Engine открытый, бесплатный, дружелюбный к новичку и умеет 2D. Ровно как Godot, и на этом сходство заканчивается.

Сравнение построено вокруг того, чем они на самом деле различаются, и автор не назначает победителя. Godot известен и оброс экосистемой, Limn моложе и компактнее, и второе не автоматически хуже.

Полезно, если присматриваетесь ко второму движку под небольшой проект и не хотите тащить туда тяжёлый инструмент просто потому, что он под рукой.
1❤1👏1
Расставить деревья случайно, но чтобы не налезали друг на друга: алгоритм Бридсона и две его оптимизации

Задача из любого процедурного леса, россыпи камней или системы частиц: точки должны быть случайными, но не ближе заданного радиуса. Наивный вариант, кидать точки и отбрасывать близкие, быстро упирается в почти стопроцентный процент отказов. Джастин Стайнман разбирает одностраничный алгоритм Роберта Бридсона 2007 года, у которого почти тысяча цитирований: сетка с ячейкой r / sqrt(d), где в каждой ячейке не больше одной точки, активный список и до 30 попыток на кольце от r до 2r вокруг каждой точки.

Дальше две простые доработки. Для 2D: точка помнит родителя и не тратит попытки на сектор кольца, где заведомо слишком близко к нему. Вторая работает и в 3D. Есть объяснение, как равномерно сэмплировать кольцо и почему 2r * x^(1/d) на случайном единичном векторе при x, равномерном на отрезке от 1/2^d до 1, даёт правильное распределение, и пример на GPU. Метод старый, разбор свежий, применять можно в любом движке.

@make_game
❤2👍1
Трое выходцев из Epic делают движок, который можно дописывать кодом, а не скриптами

Unity и Unreal сделали примерно 70% релизов на Steam в 2025 году, и место для нового движка звучит как утопия. Арьян Бруссе, Сьорд Де Йонг и Михал Валиент, за плечами которых Epic Games, Guerrilla и Apple, считают иначе: возможность появилась только сейчас.

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

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

Проверить обещание пока нельзя, но заявка редкая: последние годы новые движки заходили через удобство, а не через открытость внутренностей.
🤔7😁1😢1
Движок на C++20 с Vulkan, ECS и обработкой событий без блокировок

Аргументация автора против готовых движков конкретная: пустой стартовый проект в современном движке компилируется в сотни мегабайт бинарных зависимостей, а объектная иерархия вида Actor, Pawn, Character разбрасывает данные сущностей по куче и стабильно промахивается мимо кешей L1 и L2.

Eisen Engine отвечает на это архитектурой: явные абстракции рендера над Vulkan и OpenGL, система сущностей и компонентов с выравниванием под кеш-линию, диспетчеризация событий без блокировок и тик-цикл, рассчитанный на ИИ-нагрузку.

Разбор интересен как чертёж: видно, какие решения принимаются, когда за спиной нет чужого рантайма.
❤3👎1
Физика, стеклянные деформации и процедурный звук в одном эксперименте на WebGPU

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

В сцене сходятся три вещи: физика, деформации стекла и процедурно генерируемый звук. Последнее в браузерных демках встречается редко, и именно связка звука с симуляцией отличает эксперимент от обычного шейдерного этюда.

Компактный образец того, на что уже сегодня годится WebGPU в связке с TSL, без разрастания в полноценный проект.
👍3❤1🤔1💋1
Forwarded from Zen of Python
EVE Online начала переезд на Python 3 после двух десятилетий на второй ветке

Под каждым прыжком через гейт, каждым ордером на рынке и каждым флитфайтом в EVE лежит очень много Python. Он держит New Eden больше двадцати лет, и теперь CCP объявила о начале перехода на третью ветку.

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

Это редкий публичный кейс переезда живого продакшена такого возраста. Обещают в итоге более быстрый поиск багов, место под новые фичи и общее ускорение, но дорога, по их же словам, длинная.
💊1
Unity расспросила инди-разработчицу, как она на самом деле пользуется Copilot

Своих ИИ-инструментов у Unity теперь хватает: ассистент прямо в редакторе и интеграции с привычным инструментарием вышли в бету. Тем интереснее, что компания отдельно поговорила про чужой инструмент.

Собеседница выбрана не случайно: Стейси Хаффнер была principal developer advocate в Microsoft, ведёт собственную инди-студию и больше десяти лет делает игры, а её опыт покрывает .NET, Xbox и Unity. То есть это практика, а не маркетинговая подводка к бете.

В разговоре пять приёмов, которыми она встраивает Copilot в свой процесс разработки игр. Примерить их стоит, если Copilot у вас уже открыт в проекте, но дальше автодополнения дело не идёт.
👎1
Точек от MediaPipe мало, чтобы натянуть шейдер на лицо игрока: нужна топология и проекция

Для аватара или AR-маски трекер отдаёт 468 точек в кадре, и на этом всё: ни граней, ни UV-развёртки, рендерить нечего.

Поверхность собирается отдельно: фиксированную топологию лица Google надо достать и натянуть на точки, а UV перенести с канонической модели. Дальше проекция обязана повторить то, что происходит с картинкой на экране: её зеркалят и обрезают под размер контейнера. Иначе меш разъезжается с видео, а текстура садится вверх ногами.

Второй источник проблем: распознавание и рендер идут по разным часам. Трекер пишет результат в изменяемую ссылку, а рендер мутирует существующий BufferGeometry, и 468 позиций не проходят через реактивность каждый кадр. В движке приём тот же: обновлять буфер вершин, а не пересобирать меш.

Разбор на Codrops идёт по шагам, вместе с настройкой GPU-делегата.
👎2😇1
Заглавную тему DOOM сыграла схема из 555-х таймеров, в которой нет ни одной строчки кода

Когда в проекте играет зацикленный трек, за темп и высоту нот отвечает аудиодвижок. Автор собрал то же самое на россыпи микросхем, и разбор схемы на Hackaday читается как устройство трекера изнутри.

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

Полезно как схема мышления про процедурный звук: сетка времени, таблица нот, генератор тона. Чиптюн-саундтрек в вашем движке раскладывается на те же три части, и отлаживать его проще, когда видно, какая из них врёт.
❤7
Сцена в Three.js может обновляться сама, пока вы правите модель в Blender

Подвинули объект в Blender, экспортировали glTF, перезагрузили страницу, увидели не тот масштаб, и всё сначала. Сама правка занимает минуту, круг вокруг неё — пять.

На Codrops Andrew Woan разбирает, как эту рутину снимает связка ИИ-агента и Blender MCP: сервера, через который агент выполняет команды прямо в Blender.

Что уже работает:
• аддон с вкладкой экспорта, после которого сцена в Three.js перезагружается сама (кейс Merci-Michel);
• синхронизация поворота, масштаба и перемещения в обе стороны, так что править можно там, где удобнее;
• инстансы из аддона Geoscatter и модификатора Scatter on Surface (Blender 5.0+) доезжают до Three.js через MCP.

К статье приложены демка и исходники. Пайплайн держится на Blender и glTF, поэтому переносится на любой рантайм, который грузит ту же сцену.
🫡1
Порт движка ломается незаметно, но записанные демки ловят это бесплатно

Переносите движок на другой язык, и сложнее всего доказать, что геймплей остался прежним. Инженер перевёл doomgeneric на Rust утилитой c2rust: 73 095 строк за 23,2 секунды. Сам перевод занял секунды, дольше всего шла проверка.

Первый гейт — записи демок. Каждое игровое решение DOOM считает в фиксированной точке, поэтому одно расхождение рассинхронизирует воспроизведение: счётчик тиков перестаёт совпадать с записью.

Второй гейт: хеш каждого кадра, который движок отдаёт на экран. Из 11 113 кадров разошёлся один. Но контрольный прогон оригинального C-бинарника против самого себя дал то же расхождение на том же пикселе: DOOM читает один неинициализированный пиксель памяти, и перевод это повторил.

Отсюда приём: сначала прогоните эталон против эталона, иначе шум собственной сборки уедет в отчёт как чужой баг.
⚡1❤1
Пружинящую деформацию модели в Three.js собирают на костях, а не на симуляции мягкого тела

Гнущийся объект в вебе обычно делают либо запечённой анимацией, которая не отвечает на ввод, либо симуляцией мягкого тела, которая съедает кадр.

В демке Codrops Эйфелева башня работает катапультой: тянешь её мышью, она гнётся и копит энергию, отпускаешь — и шар летит через Париж. Гибкость держит библиотека Wiggle: в модель встраивают цепочку костей, каждая догоняет родительскую по пружинному закону, поэтому объект качается в ответ на действие игрока, а не проигрывает готовый клип.

Париж вокруг собран не руками: город стримится из Cesium ion, это фотореалистичные 3D-тайлы Google. На стороне Three.js остаются анимация, столкновения и приземление.

Приём переносится на любую модель с костями: антенна, хвост, ветка. В статье остались расчёт траектории и стыковка геоданных с физикой.
В Unity 6.3 LTS 3D-модели рендерятся прямо в 2D-сцене со спрайтами

Обычно 3D-модель босса или вращающегося меча для 2D-игры запекают в спрайтовую анимацию покадрово. В 6.3 2D Renderer в Universal Render Pipeline рисует Mesh Renderer и Skinned Mesh Renderer в одной сцене со спрайтами: модель остаётся моделью.

Под 2D-физику завезли Box2D v3 с низкоуровневыми API: многопоточный расчёт, более предсказуемый результат от запуска к запуску и визуальная отладка коллайдеров в редакторе и рантайме.

А Shader Build Settings дают исключать и конвертировать ключевые слова шейдеров (по ним при сборке плодятся варианты) без единой строки кода, и Unity обещает заметно сократить время компиляции. Рядом Sprite Atlas Analyser: отчётом показывает, где атласы собраны неэффективно.

У 6.3 два года поддержки, и Unity советует начинать новые проекты на ней. Остальное собрано в разборе на GameFromScratch.
👎2❤1🍾1