Как Godot переименовывает символы с учётом контекста
Переменная называется speed в нескольких методах. Простая замена текста затронет все совпадения, включая комментарии и строки, хотя изменить нужно только одну переменную.
В Godot 4.8 dev 7 появился инструмент переименования символов. Он учитывает контекст: различает идентификаторы классов, локальные переменные с одинаковыми именами, строки и комментарии.
В разборе предварительной сборки показаны примеры такого рефакторинга. Функция пока экспериментальная и требует отдельного включения.
Это возможность для проверки на копии проекта: переименовать символ и просмотреть изменения во всех затронутых скриптах. Godot 4.8 dev 7 пока остаётся сборкой для тестирования.
Переменная называется 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. После переключения стоит проверить сборки обеих платформ и разрешение нативных зависимостей.
Реклама, аналитика и покупки приносят в мобильную игру собственные 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.
При добавлении нового способа исчезновения врага важно проверить, какое событие запускает награду. В этом примере условие — исчерпание здоровья.
Враг может исчезнуть после смерти, телепортироваться или выйти из боя. Если начислять очки при любом удалении узла, игрок получит награду и за события, к которым не причастен.
В разборе системы очков награда привязана к сигналу depleted ресурса здоровья. Сигнал вызывает метод отдельного ScorePoint-компонента, который уже обновляет общий счёт.
Объекты получают компонент с нужным количеством очков. Работа с Autoload-счётчиком сосредоточена в одном месте: дверям, противникам и предметам не приходится напрямую вызывать singleton.
При добавлении нового способа исчезновения врага важно проверить, какое событие запускает награду. В этом примере условие — исчерпание здоровья.
❤2
Forwarded from Нейроканал
Вспомните последний раз, когда ИИ сделал для вас рабочий результат: код, тесты, документацию или требования. Как вы его проверяли?
Anonymous Poll
15%
Внимательно разобрал сам
37%
Проверил на практике: тесты, запуск, реальные данные
26%
И разобрал, и проверил на практике
1%
Отдал на ревью коллеге
12%
Не проверял, сразу использовал
6%
Не было такого случая или не помню
3%
Другое (напишу в комментариях)
👎2
Forwarded from Нейроканал
Showboat и Rodney помогают показать работу ИИ-агента
Саймон Уиллисон собирает демонстрации кода с помощью двух своих инструментов. Showboat выполняет команды и записывает их вывод в документ. Rodney управляет Chrome из командной строки и делает скриншоты интерфейса.
Эту команду автор предлагает дать агенту: в справке есть всё необходимое, чтобы тот создал документ с демонстрацией новой функции.
Уиллисон замечал и обход механизма: агент напрямую правит текст отчёта. Тогда записанный вывод может расходиться с реальным запуском. Содержимое демонстрации тоже требует проверки.
#ии #инструменты
Саймон Уиллисон собирает демонстрации кода с помощью двух своих инструментов. 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. Покрытие версий драйверов нужно учитывать при подготовке баз.
Первый запуск игры может уходить на компиляцию шейдеров. 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% на каждый бросок. Попытки независимы: один предмет может выпасть несколько раз, а при нулевом количестве попыток дропа не будет.
Компоненты соединяются сигналами; запуск привязан к исчерпанию здоровья врага или разрушаемого объекта.
После победы над врагом нужно решить две вещи: сколько предметов появится и какие именно. Если смешать эти решения в одном условии, таблицу дропа будет труднее менять.
В разборе системы лута RandomRangeCounter задаёт число попыток, RandomScene выбирает сцену по весам, Spawner2D создаёт предмет, а ArcDistribute2D размещает его рядом с источником.
В примере железо, кобальт и золото имеют шансы 60%, 35% и 5% на каждый бросок. Попытки независимы: один предмет может выпасть несколько раз, а при нулевом количестве попыток дропа не будет.
Компоненты соединяются сигналами; запуск привязан к исчерпанию здоровья врага или разрушаемого объекта.
❤5
Как перенести тактильную механику на геймпад
В Scritchy Scratchy игрок стирает покрытие билета. Мышь и палец подходят для этого естественно; управление стиком потребовало заново продумать движение и привязку к области билета.
В разборе переноса игры между платформами команда описывает итерации управления, вибрации и интерфейса. На Android силу вибрации пришлось проверять на разных устройствах: одинаковая настройка давала слишком сильный отклик на части телефонов.
Разработчики сохранили один Unity-проект, чтобы исправления и контент попадали во все сборки. Слой между Input System и игровой логикой скрывает детали устройств. Такой подход всё равно требует проверки самой механики на каждом способе ввода.
В Scritchy Scratchy игрок стирает покрытие билета. Мышь и палец подходят для этого естественно; управление стиком потребовало заново продумать движение и привязку к области билета.
В разборе переноса игры между платформами команда описывает итерации управления, вибрации и интерфейса. На Android силу вибрации пришлось проверять на разных устройствах: одинаковая настройка давала слишком сильный отклик на части телефонов.
Разработчики сохранили один Unity-проект, чтобы исправления и контент попадали во все сборки. Слой между Input System и игровой логикой скрывает детали устройств. Такой подход всё равно требует проверки самой механики на каждом способе ввода.
Forwarded from Типичный программист
🧑💻 Какие навыки помогают вам в разработке в 2026 году?
Что вы чаще используете в работе? В каких задачах помогает ИИ, а где проще справиться самостоятельно?
Мы решили собрать портрет современного разработчика — и приглашаем вас поделиться своим опытом. Расскажите, какие навыки вам пригодились и как вы используете ИИ. Если обходите его стороной, нам тоже интересно узнать почему.
Опрос анонимный и займёт около 5 минут. Результаты опубликуем в общем большом исследовании.
👉 Пройти опрос
Что вы чаще используете в работе? В каких задачах помогает ИИ, а где проще справиться самостоятельно?
Мы решили собрать портрет современного разработчика — и приглашаем вас поделиться своим опытом. Расскажите, какие навыки вам пригодились и как вы используете ИИ. Если обходите его стороной, нам тоже интересно узнать почему.
Опрос анонимный и займёт около 5 минут. Результаты опубликуем в общем большом исследовании.
👉 Пройти опрос
Как Godot экономит видеопамять на далёких текстурах
Объект вдали занимает несколько пикселей, а его текстура может оставаться в видеопамяти в полном разрешении. В предварительной сборке Godot 4.8 dev 5 появился mip-level texture streaming: движок загружает нужные уровни детализации текстуры и освобождает лишние.
Стриминг включается в настройках проекта и требует перезапуска редактора. Затем текстуру нужно импортировать как
В разборе новой функции показаны параметры проекта и импорта. Механизм особенно полезен для больших 3D-миров с множеством текстур. Пока он доступен в предварительной сборке 4.8.
Объект вдали занимает несколько пикселей, а его текстура может оставаться в видеопамяти в полном разрешении. В предварительной сборке Godot 4.8 dev 5 появился mip-level texture streaming: движок загружает нужные уровни детализации текстуры и освобождает лишние.
Стриминг включается в настройках проекта и требует перезапуска редактора. Затем текстуру нужно импортировать как
Texture2D Streamed. Для отдельных ресурсов можно задать минимальное и максимальное разрешение, чтобы сохранить важные детали. Во время игры настройки доступны через TextureStreaming.В разборе новой функции показаны параметры проекта и импорта. Механизм особенно полезен для больших 3D-миров с множеством текстур. Пока он доступен в предварительной сборке 4.8.
❤6
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: вторая игра помогла найти ошибки, которых первая не замечала.
📎 В репозитории проекта есть код, скрипты сборки и подробности оптимизации. Готового каталога игр здесь нет: понадобится свой образ диска, который скрипты превратят в локальную веб-страницу.
В 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 после каждой петли мир возвращается в исходное состояние, а герой сохраняет знания. Команда разделила данные по сроку жизни, чтобы сброс был управляемым.
Тяжёлая геометрия и маркеры переходов остаются загруженными. Сцена с игроком, менеджером игры и данными текущего забега при сбросе удаляется и создаётся заново. Активные части мира выгружаются, затем загружаются только нужные для начала петли.
Состояние забега хранится в словаре и очищается. Данные, которые должны пережить петлю, записываются на диск; объекты читают свои значения при загрузке. Переносимые предметы пришлось вынести в постоянный слой: привязка к отдельным частям мира приводила к пропаже ключей и дубликатам.
В интервью разработчиков разобраны архитектура сброса и ошибки на границах этих слоёв.
В Echo Weaver после каждой петли мир возвращается в исходное состояние, а герой сохраняет знания. Команда разделила данные по сроку жизни, чтобы сброс был управляемым.
Тяжёлая геометрия и маркеры переходов остаются загруженными. Сцена с игроком, менеджером игры и данными текущего забега при сбросе удаляется и создаётся заново. Активные части мира выгружаются, затем загружаются только нужные для начала петли.
Состояние забега хранится в словаре и очищается. Данные, которые должны пережить петлю, записываются на диск; объекты читают свои значения при загрузке. Переносимые предметы пришлось вынести в постоянный слой: привязка к отдельным частям мира приводила к пропаже ключей и дубликатам.
В интервью разработчиков разобраны архитектура сброса и ошибки на границах этих слоёв.
Как открыть финал после прохождения уровней в любом порядке
Меню в духе Mega Man позволяет самому выбирать следующий уровень. Для финала нужно отдельно учитывать, какие этапы игрок уже прошёл.
В туториале для Godot 4 кнопка передаёт путь выбранной сцены в
Каждому уровню назначают уникальный идентификатор переключателя. При победе
Монитор на кнопке также меняет её вид после прохождения этапа. Условия удобно проверять во время запуска через значения
Меню в духе Mega Man позволяет самому выбирать следующий уровень. Для финала нужно отдельно учитывать, какие этапы игрок уже прошёл.
В туториале для Godot 4 кнопка передаёт путь выбранной сцены в
SceneTransition. Переход выполняется после завершения анимации перекрывающего экран эффекта.Каждому уровню назначают уникальный идентификатор переключателя. При победе
SwitchTrigger активирует его, а соответствующий SwitchMonitor отслеживает состояние. Узел SwitchGate проверяет, что все необходимые уровни пройдены, и разрешает переход к финалу.Монитор на кнопке также меняет её вид после прохождения этапа. Условия удобно проверять во время запуска через значения
SwitchSingleton: каждый раз проходить всю игру ради теста меню не придётся.🔥1🥱1
Forwarded from Типичный программист
Общая папка для работы Claude Code и Codex
Луи-Франсуа Бушар собрал заметки, инструкции-скиллы, скрипты и итоги встреч в Obsidian. Его связка устроена так:
Папка хранит исходные материалы и решения
↓
Индекс указывает, где искать данные для задачи
↓
Claude Code планирует работу
↓
Codex выполняет задачи по его вызову
В описании этого рабочего процесса Бушар объясняет, зачем даёт агенту сведения для конкретной задачи. Начать предлагает с общей папки, короткого индекса и одного повторно используемого скилла.
#ии #инструменты
Луи-Франсуа Бушар собрал заметки, инструкции-скиллы, скрипты и итоги встреч в Obsidian. Его связка устроена так:
Папка хранит исходные материалы и решения
↓
Индекс указывает, где искать данные для задачи
↓
Claude Code планирует работу
↓
Codex выполняет задачи по его вызову
В описании этого рабочего процесса Бушар объясняет, зачем даёт агенту сведения для конкретной задачи. Начать предлагает с общей папки, короткого индекса и одного повторно используемого скилла.
#ии #инструменты
Forwarded from Типичный программист
Типичный программист
Общая папка для работы Claude Code и Codex Луи-Франсуа Бушар собрал заметки, инструкции-скиллы, скрипты и итоги встреч в Obsidian. Его связка устроена так: Папка хранит исходные материалы и решения ↓ Индекс указывает, где искать данные для задачи ↓ Claude…
Приходится ли вам копипастить данные и какие именно, когда переходите из одной нейросети в другую?
Anonymous Poll
17%
Код
29%
Описание задачи
14%
Документацию
18%
Результаты работы
19%
Настройки и контекст: историю чатов, промпты, скиллы
50%
Ничего, использую один инструмент
👎2🤪2