Godot 4.4.3 вже доступний для завантаження. Цей реліз включає виправлення помилок та нові функції. Вебсайт-редактор, XR-редактор та Android-редактор доступні для тестування.Godot 4.4.3 вже доступний для завантаження. Цей реліз включає виправлення помилок та нові функції. Вебсайт-редактор, XR-редактор та Android-редактор доступні для тестування.

Godot 4.4 Dev 3: Вершинне затінення, 2D пакетна обробка та інше

2025/12/08 02:15

Ми повернулися з черговим великим оновленням розробки, в якому за останні кілька тижнів було об'єднано понад 330 комітів! Учасники продовжують працювати над дивовижними новими речами, а ми продовжуємо об'єднувати наш список важливих функцій, які не потрапили до версії 4.3. Загальний результат - багато чудових речей, стиснутих у короткий проміжок часу.

\ Багато змін у цьому випуску - це виправлення помилок, які будуть перенесені до Godot 4.3 і випущені у версії 4.3.1! Тому, будь ласка, добре протестуйте цей випуск, щоб ми могли бути впевнені у змінах і випустити 4.3.1 з ними якомога швидше.

\ Майте на увазі, що хоча ми намагаємося переконатися, що кожен знімок розробки достатньо стабільний для загального тестування, це за визначенням попередня версія програмного забезпечення. Обов'язково робіть часті резервні копії або використовуйте систему контролю версій, таку як Git, щоб зберегти свої проєкти у випадку пошкодження або втрати даних.

\ Перейдіть до розділу Завантаження і спробуйте його прямо зараз, або продовжуйте читати, щоб дізнатися більше про покращення в цьому випуску. Ви також можете спробувати Вебсайт редактор, XR редактор або Android редактор для цього випуску (приєднайтеся до групи тестування Android редактора, щоб отримати доступ до попередніх збірок).


Оригінальна ілюстрація обкладинки взята з Fogpiercer, карткової гри покрокової битви, де ваша колода - це потяг! Вона розроблена в Godot 4.3 студією Mad Cookies Studio. Ви можете додати гру до списку бажань у Steam і стежити за розробниками у X.

Особливості

Якщо ви пропустили їх, перегляньте примітки до випуску 4.4 dev 1 і dev 2 для огляду деяких ключових функцій, які вже були в тому знімку, і тому все ще доступні для тестування в dev 3.

\ Ось кілька особливостей, які можуть вас особливо зацікавити!

\

@export_tool_button анотація

Можливість створювати кнопку в інспекторі зі скриптів інструментів була дуже затребуваною функцією, і багато учасників взяли на себе завдання реалізувати це в GH-96290: нові учасники jordi-star і Macksaur, а також супроводжувачі Ernest і Danil!

\ Ця нова функція дозволяє вам бути ще більш виразними з інструментами розробки, які ви можете легко створювати за допомогою скриптів @tool.

\ Давайте розглянемо приклад:

@tool extends Sprite2D # With a callable (could also be a local function). @export_tool_button("Toot", "Callable") var print_action = print.bind("toot") # With a lambda. @export_tool_button("Randomize Color", "ColorRect") var color_action = func(): self_modulate = Color(randf(), randf(), randf())

\

Масштабно оптимізований запуск сцени для великих проєктів

Робота над покращенням досвіду запуску сцени не сповільнилася, все ще завдяки дивовижним внескам Hilderin. Цей знімок розробки вводить масштабне покращення швидкості завантаження редактора для великих проєктів (GH-95678). Великі проєкти можуть очікувати до 3-кратного підвищення швидкості при завантаженні проєкту і подібного прискорення при виконанні будь-яких операцій, які сканують файлову систему.

Вершинне затінення

Цей випуск розробки повторно вводить довгоочікувану опцію вершинного затінення для матеріалів (GH-83360), завдяки учаснику ywmaa, який впровадив свою другу основну функцію в Godot, після підтримки експорту для Blender Geometry Nodes. Вершинне затінення використовується в основному для досягнення раннього стилю PSX і для оптимізації продуктивності на старіших і менш потужних пристроях.

\ Ви можете увімкнути вершинне затінення або з існуючого StandardMaterial3D, ORMMaterial3D, ShaderMaterial, або примусово увімкнути його для всіх матеріалів за допомогою налаштування проєкту rendering/shading/overrides/force_vertex_shading.

\

Додавання пакетної обробки до RendererCanvasRenderRD

Після вирішення проблеми з бекендом рендерингу Metal, об'єднаного в попередньому знімку, Stuart взявся за ще один вражаючий внесок у рендеринг: 2D пакетну обробку!

\ Пакетна обробка була реалізована в рендерері Compatibility з моменту випуску 4.0. Цей випуск приносить ті ж переваги продуктивності іншим бекендам, реалізуючи пакетну обробку при використанні бекендів Forward+ і Mobile (GH-92797). Тепер продуктивність 2D порівнянна між усіма бекендами.

\ Пакетна обробка - це оптимізація продуктивності, яка різко зменшує кількість викликів малювання в сцені. Переваги пакетної обробки будуть особливо помітні в сценах з великою кількістю рендерингу тексту або повторюваних спрайтів, які використовують одну текстуру (наприклад, при використанні тайлмапів або створенні bullet hell).

\ Ми плануємо подальші покращення для пакетної обробки на бекендах RD, які повинні дозволити їй бути ще швидшою, ніж бекенд Compatibility. Слідкуйте за оновленнями в наступних випусках розробки!

Оцінювач виразів (REPL) у відлагоджувачі

Оцінювач виразів додає нову вкладку до нижньої панелі, яка дозволяє вам оцінювати вирази, використовуючи локальний стан ваших скриптів під час зупинки на точці зупинки. Багато користувачів знайомі з цим робочим процесом з інших відлагоджувачів REPL.

\ Ця функція була в розробці деякий час і нещодавно була завершена і об'єднана (GH-97647), дякуємо Oğuzhan, Erik і Tomek за те, що довели її до фінішу.

Реалізація автозапуску для всіх профілювальників

Поширеною скаргою користувачів є те, що їм потрібно повертатися до редактора після запуску гри, щоб увімкнути профілювальник. Це ускладнювало вимірювання продуктивності в перші кілька секунд завантаження сцени і було загальною проблемою для розробників.

\ Hendrik представив прапорець, який дозволяє вам налаштувати профілювальник на автоматичний запуск при запуску двигуна і негайно захоплювати цінні дані профілювання (GH-96759).

Додавання маркерів до анімації

Маркери дозволяють створювати підрегіони анімації, до яких можна перейти або зациклити без відтворення всієї анімації.

\ Маркери навіть підтримуються всередині дерева анімації, де ви можете легко вибрати маркери анімації для зациклення або початку відтворення.

\ Для отримання додаткової інформації перегляньте запит на злиття GH-91765, який був одним з перших внесків ChocolaMint у Godot!

Підтримка камери Linux

Раніше Godot підтримував доступ до камери пристрою лише на пристроях macOS і iOS. Довготривалий запит на злиття pkowal1982 GH-53666 нарешті був об'єднаний і додає підтримку платформи Linux, дозволяючи розробникам отримувати доступ до підключених камер з їхньої гри.

Резервний перехід на OpenGL 3, якщо інші драйвери рендерингу не підтримуються

В даний час при спробі запустити Godot з бекендом Forward+ або Mobile на пристрої, який не підтримує Vulkan, D3D12 або Metal, двигун надасть користувачеві сповіщення ОС, повідомляючи, що у них немає підтримки необхідного графічного API, і їм потрібно спробувати знову з бекендом Compatibility. Це сповіщення виявилося заплутаним для користувачів, і процес відкриття сцени виявився незручним.

\ Тепер з GH-97142, першим внеском від SheepYhangCN, двигун автоматично перейде на використання OpenGL (бекенд Compatibility), коли інші бекенди недоступні. Це повинно забезпечити найбільш плавний можливий досвід для користувачів на старіших пристроях.

\ Оскільки бекенди Compatibility можуть виглядати інакше, ніж інші бекенди, розробники ігор можуть не хотіти, щоб Godot автоматично переходив на них. У цьому випадку вони можуть вимкнути налаштування проєкту rendering/rendering_device/fallback_to_opengl3, щоб уникнути резервного переходу, і користувачі з пристроями, які підтримують лише OpenGL, тоді отримають повідомлення про те, що їхнє обладнання не підтримується.

І більше!

Тут занадто багато захоплюючих змін, щоб перерахувати їх усі, але ось вибрана колекція:

  • 2D: Виправлено рожевий GradientTexture2D (GH-94744).
  • 2D: Виправлено втрату панелі інструментів UV у вузлі полігону (GH-96466).
  • 3D: PathFollow3D оновлює трансформацію негайно за замовчуванням (GH-96140).
  • Анімація: Оновлення AnimationPlayer в реальному часі при зміні властивостей кривої Безьє або редактора Безьє (GH-96753).
  • Аудіо: Виправлено переповнення одного кадру в кінці файлів WAV (GH-96768).
  • Аудіо: Використання LocalVector для зберігання даних для оптимізації AudioStreamMp3 (GH-97026).
  • Система збірки: CI: Оновлення хука pre-commit clang-format до 19.1.0 (GH-97483).
  • Ядро: Додано підтримку callable для методів масиву find і rfind (GH-95449).
  • Ядро: Виправлено неможливість використання ResourceLoader в C# після потокового завантаження в GDScript (GH-92888).
  • Ядро: Додано домен перекладу (GH-95787).
  • Ядро: WorkerThreadPool: Переробка взаємодії з ScriptServer (GH-96959).
  • Ядро: StringName: Виправлено порожній хеш (GH-96586).
  • Dotnet: Генерація строго типізованого методу для підняття сигнальних подій і виправлення доступності подій (GH-68233).
  • Редактор: Виправлено продуктивність перемальовування гізмо MeshInstance3D для PlaneMesh з більшим значенням subdiv (GH-96934).
  • Редактор: Виправлено помилку повторного відкриття неіснуючої сцени при запуску (GH-97028).
  • GDExtension: GDExtension: Дозволено імена класів бути юнікодом (GH-96501).
  • GDScript: Виправлено проблему з недетермінованими бінарними токенами GDScript (GH-96855).
  • GDScript: Виправлено перевірку типів Dictionary.merge() (GH-96864).
  • GDScript: Виправлено оператор[] для типізованих словників (GH-96797).
  • GUI: GraphEdit: Покращено продуктивність сітки з точковим візерунком (GH-96910).
  • GUI: Виправлено мінімальний розмір TabContainer (GH-97132).
  • Імпорт: Додано підтримку стиснення BC1 до Betsy (GH-95915).
  • Навігація: Виправлено AStar2D, AStar3D, AStarGrid2D, які не повертають шлях, коли пункт призначення вимкнений/твердий, навіть з опцією allowpartialpath (GH-94246).
  • Фізика: Перенесено Godot Physics 2D в модуль; додано фіктивний сервер фізики 2D (GH-95261).
  • Фізика: Перенесено Godot Physics 3D в модуль; додано фіктивний сервер фізики 3D (GH-95252).
  • Фізика: Додано забуту перевірку getspace() в GodotArea3D::removesoftbodyfrom_query() (GH-97130).
  • Портування: Виправлено захоплення фокусу менеджером проєктів на i3 (GH-96829).
  • Рендеринг: Використання відстані до поверхні AABB для обчислення Mesh LOD замість використання опор (GH-92290).
  • Рендеринг: Виправлено заломлення об'єктів BaseMaterial3D, розташованих перед матеріалом (GH-93449).
  • Рендеринг: Виправлено неправильний оператор тонування Reinhard (GH-93324).
  • Рендеринг: Використання часового накопичення для покращення якості тіней (GH-97428).
  • Рендеринг: Виправлено regionfilterclip_enabled для уникнення просочування спрайтів для інтерпольованих спрайтових листів (GH-97602).
  • Візуальні шейдери: Додано векторні операції до вузла Remap (GH-97314).
  • Сторонні бібліотеки: mbedTLS: Увімкнено підтримку TLS 1.3 (GH-96394).
  • XR: Виправлено запуск XR додатків з редактора Android (GH-96868).

Журнал змін

136 учасників надіслали 332 покращення для цього нового знімка. Перегляньте наш інтерактивний журнал змін для повного списку змін з попереднього знімка 4.4-dev2.

\ Цей випуск побудований з коміту f4af8201b.

Завантаження

Завантажити Godot 4.4 dev3

\ Стандартна збірка включає підтримку GDScript і GDExtension.

\ Збірка .NET (позначена як mono) включає підтримку C#, а також GDScript і GDExtension.

  • Дивіться також підтримку платформ C#.

\ Хоча супроводжувачі двигуна намагаються забезпечити стабільність кожного попереднього знімка і кандидата на випуск, це за визначенням попередня версія програмного забезпечення. Обов'язково робіть часті резервні копії або використовуйте систему контролю версій, таку як Git, щоб зберегти свої проєкти у випадку пошкодження або втрати даних.

Відомі проблеми

  • Помилка "Attempting to use an uninitialized RID" виводиться при відкритті редактора (GH-97694). Це нешкідлива помилка, і вона не повинна мати помітного впливу на ваш проєкт.

\ З кожним випуском ми приймаємо, що будуть різні проблеми, які вже були повідомлені, але ще не виправлені. Перегляньте трекер проблем GitHub для повного списку відомих помилок.

Звіти про помилки

Як тестувальника, ми заохочуємо вас відкривати звіти про помилки, якщо ви зіткнулися з проблемами з цим випуском. Будь ласка, спочатку перевірте існуючі проблеми на GitHub, використовуючи функцію пошуку з відповідними ключовими словами, щоб переконатися, що помилка, з якою ви зіткнулися, ще не відома.

\ Зокрема, дуже важливо повідомляти про будь-які зміни, які можуть спричинити регресію у ваших проєктах (наприклад, якщо щось, що добре працювало в попередніх випусках 4.x, але більше не працює в цьому знімку).

Підтримка

Godot - це некомерційний, відкритий ігровий двигун, розроблений сотнями учасників у їхній вільний час, а також кількома розробниками, які працюють частково або повний робочий день, найнятими завдяки щедрим пожертвам від спільноти Godot. Велике спасибі всім, хто вніс свій час або фінансову підтримку в проєкт!

\ Якщо ви хочете фінансово підтримати проєкт і допомогти нам забезпечити наші майбутні найми, ви можете зробити це за допомогою платформи Godot Development Fund, якою керує Godot Foundation. Існують також кілька альтернативних способів пожертвування, які можуть бути для вас більш підходящими.


Clay John

\ Також опубліковано тут

\ Фото Denys Nevozhai на Unsplash

Відмова від відповідальності: статті, опубліковані на цьому сайті, взяті з відкритих джерел і надаються виключно для інформаційних цілей. Вони не обов'язково відображають погляди MEXC. Всі права залишаються за авторами оригінальних статей. Якщо ви вважаєте, що будь-який контент порушує права третіх осіб, будь ласка, зверніться за адресою service@support.mexc.com для його видалення. MEXC не дає жодних гарантій щодо точності, повноти або своєчасності вмісту і не несе відповідальності за будь-які дії, вчинені на основі наданої інформації. Вміст не є фінансовою, юридичною або іншою професійною порадою і не повинен розглядатися як рекомендація або схвалення з боку MEXC.