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

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

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

Другие наши проекты: https://tprg.ru/media
Download Telegram
Что Defold 1.13.2 добавил для интерфейсов и 3D-физики

Цветной текст, встроенные спрайты и анимированные надписи теперь можно делать средствами Defold. В версии 1.13.2 rich text появился у Label-компонентов и текстовых GUI-узлов.

Для 3D-проектов расширился Lua API Bullet: доступны миры, тела, формы и ограничения. Добавились collision meshes для подробной статической геометрии. Редактор также получил HTTP-методы для сборки и запуска проектов.

Разбор релиза перечисляет новые возможности и изменения при обновлении. В существующем проекте стоит проверить собственные HTML-шаблоны, настройки Android R8 и переименованную константу события окна. Полные release notes связаны с анонсом.
❤1
Как SuperSplat сократил память для тяжёлых 3D-сцен

В Gaussian Splat-сцене могут быть миллионы элементов. Если держать полные копии данных в JavaScript, загрузка и экспорт быстро упираются в память браузера.

SuperSplat Editor 3.0 перенёс проекцию, отсечение, сортировку и операции выделения на GPU. Данные хранятся порциями в GPU storage, экспорт тоже идёт по частям.

В разборе перехода на WebGPU приводят сцену из 4,4 млн сплатов: JavaScript heap в загруженном состоянии снизился с 1557 до 105 МБ. Это замер памяти JavaScript, он не включает всю память GPU.

Новый редактор требует WebGPU. Для тяжёлых сцен есть режим Stochastic Alpha: во время движения он позволяет временно обходиться без дорогой сортировки.
❤2
Как масса влияет на бросок шара в Unity

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

В разборе боулинга на Unity бросок выполняется через Rigidbody.AddForce с ForceMode.Impulse. Импульс применяется сразу и учитывает массу: более тяжёлому шару для той же скорости нужен больший импульс.

Кеглю собирают из Capsule Collider и небольшого Box Collider у основания. Модель остаётся дочерним объектом, физические компоненты размещаются на родительском. UI-кнопка вызывает публичный метод броска. На этом примере удобно проверить соотношение масс и форму коллайдеров до настройки сложной игровой физики.
✍1
Как уложить замысел игры в одну страницу

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

One-page GDD помогает сначала собрать общую картину. В коротком документе связываются основной игровой цикл, составляющие его механики и особенность, по которой проект будет узнаваем.

Пример такого GDD показывает подход к организации этих элементов и возможность позже развернуть документ в подробный.

Для собственного прототипа можно начать с цепочки действий игрока и отметить, какая механика меняет привычный опыт. Если связи между действиями пока неясны, их стоит проверить в прототипе перед детализацией уровней и контента.
✍2
Как Godot переименовывает символы с учётом контекста

Переменная называется speed в нескольких методах. Простая замена текста затронет все совпадения, включая комментарии и строки, хотя изменить нужно только одну переменную.

В Godot 4.8 dev 7 появился инструмент переименования символов. Он учитывает контекст: различает идентификаторы классов, локальные переменные с одинаковыми именами, строки и комментарии.

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

Это возможность для проверки на копии проекта: переименовать символ и просмотреть изменения во всех затронутых скриптах. Godot 4.8 dev 7 пока остаётся сборкой для тестирования.
❤2
Как перейти с EDM4U на менеджер зависимостей Unity

Реклама, аналитика и покупки приносят в мобильную игру собственные Android- и iOS-библиотеки. Их версии могут конфликтовать ещё до запуска приложения.

Unity выпустила официальный External Dependency Manager через UPM. Он основан на EDM4U и читает те же XML-файлы зависимостей. Пакет бесплатен для Unity 2022.3 и новее; Google объявила deprecation EDM4U на 26 октября.

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

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

В разборе системы очков награда привязана к сигналу depleted ресурса здоровья. Сигнал вызывает метод отдельного ScorePoint-компонента, который уже обновляет общий счёт.

Объекты получают компонент с нужным количеством очков. Работа с Autoload-счётчиком сосредоточена в одном месте: дверям, противникам и предметам не приходится напрямую вызывать singleton.

При добавлении нового способа исчезновения врага важно проверить, какое событие запускает награду. В этом примере условие — исчерпание здоровья.
❤2
Forwarded from Нейроканал
Showboat и Rodney помогают показать работу ИИ-агента

Саймон Уиллисон собирает демонстрации кода с помощью двух своих инструментов. Showboat выполняет команды и записывает их вывод в документ. Rodney управляет Chrome из командной строки и делает скриншоты интерфейса.

uvx showboat --help

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

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

#ии #инструменты
💔2
Как подготовить шейдеры для загрузки вместе с игрой

Первый запуск игры может уходить на компиляцию шейдеров. Advanced Shader Delivery позволяет заранее подготовить базу скомпилированных шейдеров и доставить её через поддерживаемую витрину.

Разработчик формирует SODB с состояниями конвейера и DXIL. Затем компилятор превращает её в PSDB для нужных GPU и драйверов.

Инструмент AMD и схема интеграции позволяют собрать PSDB, зарегистрировать её локально и проверить результат. Для работы компилятора достаточно x64 Windows-компьютера без GPU.

Поддержка ограничена конкретными конфигурациями: у пользователя требуется Windows 11 24H2 или новее, а в описанной схеме доставка идёт через Xbox PC app. Покрытие версий драйверов нужно учитывать при подготовке баз.
❤1
Как задать редкость и количество лута в Godot

После победы над врагом нужно решить две вещи: сколько предметов появится и какие именно. Если смешать эти решения в одном условии, таблицу дропа будет труднее менять.

В разборе системы лута RandomRangeCounter задаёт число попыток, RandomScene выбирает сцену по весам, Spawner2D создаёт предмет, а ArcDistribute2D размещает его рядом с источником.

В примере железо, кобальт и золото имеют шансы 60%, 35% и 5% на каждый бросок. Попытки независимы: один предмет может выпасть несколько раз, а при нулевом количестве попыток дропа не будет.

Компоненты соединяются сигналами; запуск привязан к исчерпанию здоровья врага или разрушаемого объекта.
❤5
Как перенести тактильную механику на геймпад

В Scritchy Scratchy игрок стирает покрытие билета. Мышь и палец подходят для этого естественно; управление стиком потребовало заново продумать движение и привязку к области билета.

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

Разработчики сохранили один Unity-проект, чтобы исправления и контент попадали во все сборки. Слой между Input System и игровой логикой скрывает детали устройств. Такой подход всё равно требует проверки самой механики на каждом способе ввода.
Forwarded from Типичный программист
🧑‍💻 Какие навыки помогают вам в разработке в 2026 году?

Что вы чаще используете в работе? В каких задачах помогает ИИ, а где проще справиться самостоятельно?

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

Опрос анонимный и займёт около 5 минут. Результаты опубликуем в общем большом исследовании.

👉 Пройти опрос
Как 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: каждый раз проходить всю игру ради теста меню не придётся.
🔥3🥱1
Forwarded from Типичный программист
Общая папка для работы Claude Code и Codex

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

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

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

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

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

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

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

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