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

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

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

Другие наши проекты: https://tprg.ru/media
Download Telegram
Как Godot экономит видеопамять на далёких текстурах

Объект вдали занимает несколько пикселей, а его текстура может оставаться в видеопамяти в полном разрешении. В предварительной сборке Godot 4.8 dev 5 появился mip-level texture streaming: движок загружает нужные уровни детализации текстуры и освобождает лишние.

Стриминг включается в настройках проекта и требует перезапуска редактора. Затем текстуру нужно импортировать как Texture2D Streamed. Для отдельных ресурсов можно задать минимальное и максимальное разрешение, чтобы сохранить важные детали. Во время игры настройки доступны через TextureStreaming.

В разборе новой функции показаны параметры проекта и импорта. Механизм особенно полезен для больших 3D-миров с множеством текстур. Пока он доступен в предварительной сборке 4.8.
❤7
Forwarded from Веб-страница
This media is not supported in your browser
VIEW IN TELEGRAM
Gran Turismo 4 переехала в Chrome — с гонками, звуком и сохранениями

В PS2 Web Recomp старые игры запускают прямо во вкладке. Gran Turismo 4 проходит меню и гонки, играет музыку и сохраняет прогресс в браузере. По замерам автора, PAL-версия держит 50 FPS в Chrome на встроенной графике ноутбука при удвоенном разрешении PS2.

Машинный код игры заранее переводят в C++, затем собирают в WebAssembly. Графику рисует WebGPU, а окружение воспроизводит нужные части системы и железа PS2. После Gran Turismo автор запустил God of War II: вторая игра помогла найти ошибки, которых первая не замечала.

📎 В репозитории проекта есть код, скрипты сборки и подробности оптимизации. Готового каталога игр здесь нет: понадобится свой образ диска, который скрипты превратят в локальную веб-страницу.
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡1
Как сбросить временную петлю без пересоздания всего мира

В Echo Weaver после каждой петли мир возвращается в исходное состояние, а герой сохраняет знания. Команда разделила данные по сроку жизни, чтобы сброс был управляемым.

Тяжёлая геометрия и маркеры переходов остаются загруженными. Сцена с игроком, менеджером игры и данными текущего забега при сбросе удаляется и создаётся заново. Активные части мира выгружаются, затем загружаются только нужные для начала петли.

Состояние забега хранится в словаре и очищается. Данные, которые должны пережить петлю, записываются на диск; объекты читают свои значения при загрузке. Переносимые предметы пришлось вынести в постоянный слой: привязка к отдельным частям мира приводила к пропаже ключей и дубликатам.

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

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

В туториале для Godot 4 кнопка передаёт путь выбранной сцены в SceneTransition. Переход выполняется после завершения анимации перекрывающего экран эффекта.

Каждому уровню назначают уникальный идентификатор переключателя. При победе SwitchTrigger активирует его, а соответствующий SwitchMonitor отслеживает состояние. Узел SwitchGate проверяет, что все необходимые уровни пройдены, и разрешает переход к финалу.

Монитор на кнопке также меняет её вид после прохождения этапа. Условия удобно проверять во время запуска через значения SwitchSingleton: каждый раз проходить всю игру ради теста меню не придётся.
🔥2🥱1
Forwarded from Типичный программист
Общая папка для работы Claude Code и Codex

Луи-Франсуа Бушар собрал заметки, инструкции-скиллы, скрипты и итоги встреч в Obsidian. Его связка устроена так:

Папка хранит исходные материалы и решения
↓
Индекс указывает, где искать данные для задачи
↓
Claude Code планирует работу
↓
Codex выполняет задачи по его вызову

В описании этого рабочего процесса Бушар объясняет, зачем даёт агенту сведения для конкретной задачи. Начать предлагает с общей папки, короткого индекса и одного повторно используемого скилла.

#ии #инструменты
Как H3VR2 распределяет бюджет кадра в VR

В H3VR2 оружие моделируют с учётом массы компонентов, пружин и свойств патронов. Для такой симуляции на Quest 3 команда заранее определяла, на что можно потратить время кадра.

Баллистику построили на ECS и Burst. Это позволило уменьшить шаги расчёта столкновений, точнее учитывать сопротивление воздуха и прохождение снаряда через разные материалы. Внутренние механизмы оружия рассчитываются собственными системами; PhysX работает с объектами в общем игровом пространстве.

Подробные модели оружия занимают значительную часть бюджета рендеринга, поэтому окружение проектировали с ограничениями на полигоны, текстуры и плотность объектов. Для настройки сотен вариантов оружия команда создала инспекторы с вычислениями и проверками на базе Odin.

В разборе разработки объясняют, как эти ограничения повлияли на архитектуру и дизайн уровней.
Эмодзи в комментарии сломал пинбол на Android

После сентябрьского обновления Android 17 Visual Pinball перестал загружать столы с эмодзи в комментариях к VBScript. Парсер выдавал Invalid character, хотя комментарий вообще не должен исполняться.

Причина оказалась в системной библиотеке bionic. Функция wcspbrk() ищет конец комментария по переводу строки, но ошибочно останавливалась на эмодзи. При определённом наборе разделителей сбой затрагивал и кириллицу.

Опубликованные исходники отличались от библиотеки на телефоне, поэтому автор дошёл до дизассемблера. Сотрудник Google подтвердил баг и нашёл проблемы в тестах: один проверял только ASCII, другой содержал неверный ожидаемый результат.

Разработчики libwinevbs обошли ошибку, заменив проблемные вызовы обычными циклами. На GitHub есть багрепорт с воспроизведением и исправление для игры.
Как доставлять Gaussian Splat-модели в мобильный браузер

Фотореалистичную 3D-модель мало быстро отрисовать: сначала её нужно загрузить на телефон. У Solaya типичный оптимизированный ресурс занимает 30–60 МБ, поэтому доставка данных стала отдельной частью архитектуры.

Модели хранятся сжатыми в blob-хранилище, движок PlayCanvas доставляется через CDN. Сжатие применяется на уровне модели и CDN, а кеширование на ближайших к пользователю узлах уменьшает задержку и нагрузку на хранилище.

При пересборке ресурса сбрасывается кеш только этой модели. Остальные данные остаются доступными из прогретого кеша. Один просмотрщик используется в вебе и мобильном приложении.

В интервью команды Solaya разобран сервис для визуализации товаров. Его схема доставки полезна и для веб-проектов с тяжёлыми 3D-ресурсами. Для игровых столкновений splat-модели понадобится отдельно подготовленная геометрия.
Что добавить в прогрессию, когда игрок нашёл выигрышную стратегию

В About Time игрок набирает нужное количество очков, получает награды и вкладывает их в улучшения. Геймдизайнер Henrique Campos видит риск: найдя сильную комбинацию, игрок может перестать искать новые варианты.

В разборе игровой петли автор предлагает награждать прохождение дальних раундов новыми шестерёнками или слотами. Между забегами можно открывать стартовые наборы часов и улучшения, меняющие вероятность появления нужных элементов.

Ещё одна идея — дерево улучшений за отдельную валюту. Оно позволило бы выбирать направление развития между попытками. Необязательные детали истории могли бы дать дополнительный повод продолжать игру.

Это предложения по развитию About Time. Разбор показывает, как отделить рост чисел от открытия новых возможностей и проверить, остаются ли у игрока интересные решения после освоения основной механики.
❤2
Как отлаживать физику покадрово в PlayCanvas

Тело проваливается сквозь пол или неожиданно отскакивает, а на обычной скорости трудно понять причину. В PlayCanvas Editor 2.34 появился запуск с Inspector: можно остановить приложение и посмотреть состояние сцены в нужный момент.

В меню Launch включите Inspector. F9 ставит приложение на паузу, F10 продвигает его на один кадр. Объект можно выбрать прямо во вьюпорте и проверить текущие свойства его компонентов.

Во вкладке Physics включите Draw physics world: поверх сцены появятся коллайдеры и точки контакта. Затем пройдите несколько кадров, наблюдая, когда возникает столкновение и как меняется положение тела.

В обзоре обновления показан этот процесс на физической сцене. Inspector требует Engine 2.23 или новее. Большинство свойств доступны только для чтения; панель также позволяет включать и выключать сущности.
Как собрать плавный цикл ходьбы персонажа

Если ноги двигаются, а персонаж будто едет по полу, стоит проверить опорную фазу шага. В цикле ходьбы на месте стопа должна равномерно двигаться назад относительно тела, пока игра перемещает героя вперёд.

В уроке hyperPad Art Studio анимацию собирают на готовом скелете Nova. Сначала задают два положения контакта с землёй, затем добавляют перенос свободной ноги, проседание под весом и подъём перед следующим шагом.

Для секундного цикла при 24 FPS противоположный контакт приходится на кадр 12, а кадр 24 повторяет начальную позу. Это убирает скачок на границе повторов.

Проверьте каждый ботинок отдельно: опорная стопа остаётся на высоте земли, свободная проходит по дуге. Сильное замедление у каждого ключа может сделать шаг дёрганым — в уроке движение ног начинают с линейной интерполяции. Root остаётся на месте.
❤1
Как связать материалы стилизованного окружения

Дом, забор и трава могут хорошо выглядеть по отдельности, но спорить друг с другом в общей сцене. Художница Tulika Roy рассказывает, как удерживала единую палитру при создании окружения Outstead в UE5.

Для деревянных объектов она подготовила trim sheet с базовыми цветами, тенями и бликами. Папку с этими слоями в Substance 3D Painter превратила в Smart Material и использовала на дверях, столбах и других деталях дома. Особенности каждого объекта дорисовывала вручную.

Цвет травы связала с ландшафтом через Runtime Virtual Texture. Материал травы читает цвет земли под собой: правка участка ландшафта меняет и растительность на нём. Отдельный материал для каждой зоны создавать не пришлось.

В разборе сцены есть примеры текстур и настройки растительности. Композицию автор проверила ещё на блокинге: дорожка, ограда и холмы направляют взгляд к дому.