Лучший текст о том, почему в играх всё так долго: «The Door Problem» Лиз Ингланд. Тысяча двести слов про одни только двери.
Начинается с вопроса, который кажется пустяковым: какие двери в игре открываются, а какие нарисованы для вида. Дальше вопросы множатся. Как игрок отличит одну от другой — цветом, ручкой, мусором перед проходом? Дверь заперта навсегда или откроется по сюжету? Чем открывается: подходом, кнопкой, ключом, взломом, головоломкой? Могут ли из неё выходить враги и запирается ли она за ними?
Потом добавляется кооператив: когда дверь открывается, если игроков двое, и не запрёт ли один другого снаружи. На больших уровнях подключается подгрузка: оставшийся за дверью игрок может оказаться в выгружаемом куске карты. И размер: дверь должна пропускать игрока, союзников, врагов и крупного мини-босса.
В конце автор перечисляет, кого эта одна механика касается: дизайнера, художника, аниматора, звукорежиссёра, программиста поведения, сетевого программиста, тестировщиков, локализацию и поддержку.
Полезно показывать всем, кто спрашивает, почему простая фича не делается за день.
@make_game
Начинается с вопроса, который кажется пустяковым: какие двери в игре открываются, а какие нарисованы для вида. Дальше вопросы множатся. Как игрок отличит одну от другой — цветом, ручкой, мусором перед проходом? Дверь заперта навсегда или откроется по сюжету? Чем открывается: подходом, кнопкой, ключом, взломом, головоломкой? Могут ли из неё выходить враги и запирается ли она за ними?
Потом добавляется кооператив: когда дверь открывается, если игроков двое, и не запрёт ли один другого снаружи. На больших уровнях подключается подгрузка: оставшийся за дверью игрок может оказаться в выгружаемом куске карты. И размер: дверь должна пропускать игрока, союзников, врагов и крупного мини-босса.
В конце автор перечисляет, кого эта одна механика касается: дизайнера, художника, аниматора, звукорежиссёра, программиста поведения, сетевого программиста, тестировщиков, локализацию и поддержку.
Полезно показывать всем, кто спрашивает, почему простая фича не делается за день.
@make_game
✍3
В приключенческих играх Sierra можно застрять навсегда: забыл крем от загара в Лос-Анджелесе, сел на лайнер — и через несколько игровых дней умираешь на плоту, вернуться нельзя. Игра продолжает принимать ввод, просто выиграть уже невозможно. LucasArts таких ловушек не делала принципиально.
Кто-то написал анализатор, который находит эти состояния сам. Он декомпилирует скрипты движка SCI, абстрактной интерпретацией строит граф переходов между комнатами с условиями, перемещений предметов и записей сюжетных флагов, выводит охранные условия, проверяет их на модели и вшивает обратно в игру: переход в тупик просто перестаёт срабатывать.
Ничего про конкретную игру внутри не зашито: стартовая комната, комната победы и сигнал смерти выводятся из кода самой игры. Проверено на четырёх играх одним и тем же кодом: Leisure Suit Larry 2 и King's Quest IV на SCI0 1988 года, King's Quest VI и Laura Bow 2 на SCI1.1 1992 года.
Мысль на вынос: невозвратные переходы ищутся обходом графа состояний, а не плейтестом.
@make_game
Кто-то написал анализатор, который находит эти состояния сам. Он декомпилирует скрипты движка SCI, абстрактной интерпретацией строит граф переходов между комнатами с условиями, перемещений предметов и записей сюжетных флагов, выводит охранные условия, проверяет их на модели и вшивает обратно в игру: переход в тупик просто перестаёт срабатывать.
Ничего про конкретную игру внутри не зашито: стартовая комната, комната победы и сигнал смерти выводятся из кода самой игры. Проверено на четырёх играх одним и тем же кодом: Leisure Suit Larry 2 и King's Quest IV на SCI0 1988 года, King's Quest VI и Laura Bow 2 на SCI1.1 1992 года.
Мысль на вынос: невозвратные переходы ищутся обходом графа состояний, а не плейтестом.
@make_game
❤4
Геймдев перегрет. Куда идти 3D-моделлеру?
На рынке сотни Junior и Middle 3D-артистов, дерущихся за тестовые в студиях. А рядом есть сфера АГР (архитектурно-градостроительные решения), где заказчики готовы платить десятки тысяч рублей за одну модель, потому что делать по ГОСТам просто некому.
Как начать зарабатывать на АГР моделях для застройщиков — разбираем на бесплатном вебинаре от Академии Playestate.
👉 Линк на регистрацию
На рынке сотни Junior и Middle 3D-артистов, дерущихся за тестовые в студиях. А рядом есть сфера АГР (архитектурно-градостроительные решения), где заказчики готовы платить десятки тысяч рублей за одну модель, потому что делать по ГОСТам просто некому.
Как начать зарабатывать на АГР моделях для застройщиков — разбираем на бесплатном вебинаре от Академии Playestate.
👉 Линк на регистрацию
Интерактивность в glTF до сих пор жила вне файла: геометрия, материалы и анимации едут в ассете, а поведение каждый движок реализует у себя заново.
Khronos отправил на ратификацию расширение KHR_interactivity для glTF 2.0. Оно кладёт поведение прямо внутрь ассета в виде графов, переносимых между платформами. Babylon.js уже проигрывает такие файлы, Needle Tools помогли сделать экспортёр, который выгружает интерактив прямо из Unity Visual Scripting, у Magic Leap готов рантайм, а Android XR обещает воспроизведение через Jetpack XR SDK.
Рядом до статуса release candidate дошло расширение для гауссовых сплатов — само оно описывает несжатое представление, готовое к отправке на видеокарту; сжатие и анимация сплатов пока живут отдельными предложениями. В превью glTF 2.1 — сцены из нескольких ассетов и потоковая загрузка с полной совместимостью с 2.0.
Оттуда же цифра из опроса Khronos про шейдеры, больше 400 разработчиков: главной болью назвали отладку и профилирование шейдеров, 53 процента.
@make_game
Khronos отправил на ратификацию расширение KHR_interactivity для glTF 2.0. Оно кладёт поведение прямо внутрь ассета в виде графов, переносимых между платформами. Babylon.js уже проигрывает такие файлы, Needle Tools помогли сделать экспортёр, который выгружает интерактив прямо из Unity Visual Scripting, у Magic Leap готов рантайм, а Android XR обещает воспроизведение через Jetpack XR SDK.
Рядом до статуса release candidate дошло расширение для гауссовых сплатов — само оно описывает несжатое представление, готовое к отправке на видеокарту; сжатие и анимация сплатов пока живут отдельными предложениями. В превью glTF 2.1 — сцены из нескольких ассетов и потоковая загрузка с полной совместимостью с 2.0.
Оттуда же цифра из опроса Khronos про шейдеры, больше 400 разработчиков: главной болью назвали отладку и профилирование шейдеров, 53 процента.
@make_game
За первые две недели страницу How Many Dudes? в Steam добавили в желаемое 422 раза. По ранним меркам игру можно было закрывать — а к релизу вишлистов набралось 308 тысяч, и за три недели после выхода продалось 242 тысячи копий.
Крис Зуковски разобрал, что именно сработало. Два удачных YouTube Shorts принесли 769 вишлистов: приятно, но алгоритм Steam от этого не проснулся.
Проснулся он от демо. Его выложили 16 декабря, и оно попало в раздел New & Trending Free на зимней распродаже. Между Рождеством и Новым годом почти никто ничего не выпускает, вытеснять с витрины некому: игра провисела там не меньше 24 дней и собрала 36 946 вишлистов.
Делали её семь человек ровно год — после пятилетней разработки Crashlands 2.
@make_game
Крис Зуковски разобрал, что именно сработало. Два удачных YouTube Shorts принесли 769 вишлистов: приятно, но алгоритм Steam от этого не проснулся.
Проснулся он от демо. Его выложили 16 декабря, и оно попало в раздел New & Trending Free на зимней распродаже. Между Рождеством и Новым годом почти никто ничего не выпускает, вытеснять с витрины некому: игра провисела там не меньше 24 дней и собрала 36 946 вишлистов.
Делали её семь человек ровно год — после пятилетней разработки Crashlands 2.
@make_game
Мыши с частотой опроса выше килогерца роняли частоту кадров в играх на Godot под Windows, и на 8 кГц с захваченным курсором она падала ниже одного FPS. Юго Локурсьо разобрал причину и починку.
Windows шлёт приложению и обычные события
На Ryzen 9 9950X3D и RTX 5090 захваченная мышь на 8 кГц без вертикальной синхронизации дала 1703 FPS вместо «меньше одного». На картинке другой замер, с видимым курсором на 4 кГц: 1% low вырос в 45,8 раза.
Фикс уже в 4.7.2, в 4.7.1 его нет. Linux на Wayland и X11, как пишет автор, эта проблема обычно не задевает.
@make_game
Windows шлёт приложению и обычные события
WM_MOUSEMOVE, и сырой ввод WM_INPUT одновременно, даже когда курсор захвачен. Отказаться от обычных нельзя — сломается перетаскивание окна за заголовок. Поэтому сырой ввод теперь читается пачками и не рассылается сразу, а обычные события движения обрабатываются не чаще одного раза за кадр.На Ryzen 9 9950X3D и RTX 5090 захваченная мышь на 8 кГц без вертикальной синхронизации дала 1703 FPS вместо «меньше одного». На картинке другой замер, с видимым курсором на 4 кГц: 1% low вырос в 45,8 раза.
Фикс уже в 4.7.2, в 4.7.1 его нет. Linux на Wayland и X11, как пишет автор, эта проблема обычно не задевает.
@make_game
🔥1
WebGPU в Unity перестал быть экспериментальным: начиная с 6000.6 это полноценный графический бэкенд с обычной поддержкой, объявила команда Web Graphics.
По умолчанию он всё равно выключен. Включается вручную: снять Auto Graphics API в настройках плеера, добавить WebGPU в список и поднять наверх, оставив ниже WebGL 2 как запасной вариант. Уберёте WebGL 2 — проект просто не запустится там, где WebGPU нет.
Ради чего это: вычислительные шейдеры в браузере, а с ними GPU Resident Drawing, отсечение невидимого на GPU, апскейлер STP, VFX Graph на миллионы частиц, Adaptive Probe Volumes и скиннинг на GPU. На WebGL всё это было недоступно.
Ловушка при выкладке: WebGPU браузер отдаёт только в защищённом контексте, так что сборка по обычному HTTP или открытая файлом молча откатится на WebGL 2.
@make_game
По умолчанию он всё равно выключен. Включается вручную: снять Auto Graphics API в настройках плеера, добавить WebGPU в список и поднять наверх, оставив ниже WebGL 2 как запасной вариант. Уберёте WebGL 2 — проект просто не запустится там, где WebGPU нет.
Ради чего это: вычислительные шейдеры в браузере, а с ними GPU Resident Drawing, отсечение невидимого на GPU, апскейлер STP, VFX Graph на миллионы частиц, Adaptive Probe Volumes и скиннинг на GPU. На WebGL всё это было недоступно.
Ловушка при выкладке: WebGPU браузер отдаёт только в защищённом контексте, так что сборка по обычному HTTP или открытая файлом молча откатится на WebGL 2.
@make_game
❤1
Epic выложила хотфикс 5.8.2 к Unreal Engine 25 августа. Новых возможностей в нём почти нет, зато закрыт длинный список падений редактора: Sequencer роняли завершение работы, вкладка со ссылками на уничтоженный объект, привязка трека к актору вне уровня, конвертация привязки в spawnable-актора и перекомпиляция блюпринта во время отслеживания свойств. Отдельно исправлены падения при сборке Nanite Assemblies с Keep Triangle Percent меньше ста и недетерминированность такой сборки.
Самое заметное по числам — в транскодировании видео для Tiled Mipmap Video Player. Подготовка кадра резервировала около 20 ГБ видеопамяти на один кадр 16K вместо нужных 1,4 ГБ, память кончалась и подвешивала видеокарту. Теперь транскодер смотрит, сколько памяти свободно на старте задачи, и ограничивает число одновременно обрабатываемых кадров; долю запаса можно подкрутить настройками
Из практического: целевой Android SDK поднят до API 36, в сетевой физике починили передачу
Тем, кто собирает на маке, стоит подождать: известная проблема UE-377426 ломает компиляцию на Xcode 26.4 и новее, Epic рекомендует оставаться на 26.1.
@make_game
Самое заметное по числам — в транскодировании видео для Tiled Mipmap Video Player. Подготовка кадра резервировала около 20 ГБ видеопамяти на один кадр 16K вместо нужных 1,4 ГБ, память кончалась и подвешивала видеокарту. Теперь транскодер смотрит, сколько памяти свободно на старте задачи, и ограничивает число одновременно обрабатываемых кадров; долю запаса можно подкрутить настройками
TmvMedia.Transcode.MediaPlayer.MemoryBudgetFraction и TmvMedia.Transcode.FileSequence.MemoryBudgetFraction.Из практического: целевой Android SDK поднят до API 36, в сетевой физике починили передачу
TickOffset на физический поток, когда сервер не прислал ни одного реплицированного состояния, а PCG избавился от гонки при рассылке небезопасных делегатов вне игрового потока.Тем, кто собирает на маке, стоит подождать: известная проблема UE-377426 ломает компиляцию на Xcode 26.4 и новее, Epic рекомендует оставаться на 26.1.
@make_game
❤1
Рейкаст пролетает сквозь коллайдер, которого явно касается. Такой баг ловили те, кто включил инкрементальный статический broadphase в Unity Physics: у mesh collider на статическом теле не пересчитывались вложенные AABB, и запросы вроде рейкастов переставали его видеть. Рядом жила вторая версия той же беды — подмена ссылки на BlobAsset у PhysicsCollider на месте не подхватывалась, и запросы возвращали неверные данные.
Обе починили в 6000.5.10f1, вышедшей 26 августа. Если сцена собирает коллайдеры на лету, а трассировка выстрелов и проверки видимости иногда врут, обновление снимает вопрос.
В том же патче: атлас detail-текстур теперь общий для тайлов ландшафта с одинаковыми неинстансированными прототипами, и на многотайловых ландшафтах это заметно экономит память. Плеер больше не зависает и не портит кучу при выходе, если загружен AssetBundle и включена диагностика сборки. Запекание occlusion culling на больших сценах перестало ронять редактор.
Патч-релиз, ставить который стоит по совпадению симптомов, а не просто так :)
@make_game
Обе починили в 6000.5.10f1, вышедшей 26 августа. Если сцена собирает коллайдеры на лету, а трассировка выстрелов и проверки видимости иногда врут, обновление снимает вопрос.
В том же патче: атлас detail-текстур теперь общий для тайлов ландшафта с одинаковыми неинстансированными прототипами, и на многотайловых ландшафтах это заметно экономит память. Плеер больше не зависает и не портит кучу при выходе, если загружен AssetBundle и включена диагностика сборки. Запекание occlusion culling на больших сценах перестало ронять редактор.
Патч-релиз, ставить который стоит по совпадению симптомов, а не просто так :)
@make_game
❤1
Trail3D и группы узлов в шейдерном графе: что нового в Godot 4.8 dev 4
Godot выложила четвёртый dev-снапшот 4.8 — 224 правки от 86 контрибьюторов.
Главное для 3D — узел
В VisualShader появились группы узлов: повторяющийся кусок графа сворачивается в один блок и дальше используется как обычный узел. На скриншоте три одинаковых «пропеллера» и свёрнутая группа рядом.
В рендере — дешёвая аппроксимация multi-bounce ambient occlusion, сцены перестают выглядеть перезатемнёнными. Для Android завезли
Это pre-release: перед тем как открывать им проект, сделайте резервную копию или проверьте, что всё закоммичено.
@make_game
Godot выложила четвёртый dev-снапшот 4.8 — 224 правки от 86 контрибьюторов.
Главное для 3D — узел
Trail3D: следы за мечом, ракетой или машиной больше не нужно собирать из меша руками, считая UV и геометрию.В VisualShader появились группы узлов: повторяющийся кусок графа сворачивается в один блок и дальше используется как обычный узел. На скриншоте три одинаковых «пропеллера» и свёрнутая группа рядом.
В рендере — дешёвая аппроксимация multi-bounce ambient occlusion, сцены перестают выглядеть перезатемнёнными. Для Android завезли
AndroidSDKManager, он сам скачивает и настраивает Android SDK и Java.Это pre-release: перед тем как открывать им проект, сделайте резервную копию или проверьте, что всё закоммичено.
@make_game
❤2
Ранние ИИ-ассеты уехали в публичный пролог, и студии пришлось извиняться
Патрис Дезиле, сооснователь Assassin's Creed, ушедший из Ubisoft, показал на летнем фестивале новую игру 1666: Amsterdam. Получасовой пролог выложили бесплатно в Steam и Epic Games Store, и игроки за пару дней нашли в нём портреты и часть ключевого арта, похожие на сгенерированные.
Студия Panache Digital Games признала: в пролог попали ранние версии ассетов, сделанные с помощью генеративных моделей, включая внутриигровые портреты и внешние маркетинговые материалы. Их заменят нарисованными вручную в ближайшем обновлении; в раннем доступе и в полной версии сгенерированных ассетов не будет. Художников в студии больше десятка.
Рейтинг пролога в Steam — «смешанные». В отзывах пишут прямо: «убираю из желаемого и игнорирую компанию».
Практический вывод для всех, кто сейчас делает игру. Черновой ассет, сгенерированный на скорость ради прототипа, живёт в проекте дольше, чем кажется, и уезжает в билд вместе со всем остальным — вместе с промоматериалами, которые собирают из тех же папок. Заведите для таких файлов отдельный флаг в трекере ассетов и проверку перед сборкой демо: дешевле, чем публичное извинение и «смешанные» отзывы на странице, которую вы копили год.
Разбор на IGN.
@make_game
Патрис Дезиле, сооснователь Assassin's Creed, ушедший из Ubisoft, показал на летнем фестивале новую игру 1666: Amsterdam. Получасовой пролог выложили бесплатно в Steam и Epic Games Store, и игроки за пару дней нашли в нём портреты и часть ключевого арта, похожие на сгенерированные.
Студия Panache Digital Games признала: в пролог попали ранние версии ассетов, сделанные с помощью генеративных моделей, включая внутриигровые портреты и внешние маркетинговые материалы. Их заменят нарисованными вручную в ближайшем обновлении; в раннем доступе и в полной версии сгенерированных ассетов не будет. Художников в студии больше десятка.
Рейтинг пролога в Steam — «смешанные». В отзывах пишут прямо: «убираю из желаемого и игнорирую компанию».
Практический вывод для всех, кто сейчас делает игру. Черновой ассет, сгенерированный на скорость ради прототипа, живёт в проекте дольше, чем кажется, и уезжает в билд вместе со всем остальным — вместе с промоматериалами, которые собирают из тех же папок. Заведите для таких файлов отдельный флаг в трекере ассетов и проверку перед сборкой демо: дешевле, чем публичное извинение и «смешанные» отзывы на странице, которую вы копили год.
Разбор на IGN.
@make_game
👌4❤2