Пасля чатырох гадоў распрацоўкі апублікаваны рэліз вольнага гульнявога рухавічка Godot 4.0, прыдатнага для стварэння 2D-і 3D-гульняў. Рухавічок падтрымлівае простую для вывучэння мову задання гульнявой логікі, графічнае асяроддзе для праектавання гульняў, сістэму разгортвання гульняў у адзін клік, шырокія магчымасці анімацыі і сімуляцыі фізічных працэсаў, убудаваны адладчык і сістэму выяўлення вузкіх месцаў у прадукцыйнасці. Код гульнявога рухавічка, асяроддзі праектавання гульняў і спадарожных сродкаў распрацоўкі (фізічны рухавічок, гукавы сервер, бэкенды 2D/3D рэндэрынгу і да т.п.) распаўсюджваюцца пад ліцэнзіяй MIT.
Зыходныя тэксты рухавічка былі адкрыты ў 2014 годзе студыяй OKAM, пасля дзесяці гадоў развіцця прапрыетарнага прадукта прафесійнага ўзроўню, які выкарыстоўваўся для стварэння і публікацыі многіх гульняў для PC, гульнявых кансоляў і мабільных прылад. Рухавічком падтрымліваюцца ўсе папулярныя стацыянарныя і мабільныя платформы (Linux, Windows, macOS, Wii, Nintendo 3DS, PlayStation 3, PS Vita, Android, iOS, BBX), а таксама распрацоўка гульняў для Web. Гатовыя для запуску бінарныя зборкі сфарміраваны для Linux, Android, Windows і macOS.
У галінку Godot 4.0 уключана каля 12 тысяч змен і выпраўлена 7 тысяч памылак. У распрацоўцы рухавічка і напісанні дакументацыі прынялі ўдзел каля 1500 чалавек. Сярод ключавых змен:
- Прапанаваны два новых бэкенда рэндэрынгу (кластэрызаваны і мабільны) на базе графічнага API Vulkan, якія прыйшлі на змену бэкендам, якія выконваюць адмалёўку праз OpenGL ES і OpenGL. Для старых і маламагутных прылад інтэграваны бэкенд забеспячэння сумяшчальнасці на базе OpenGL, які выкарыстоўвае новую архітэктуру рэндэрынгу. Для дынамічнай адмалёўкі з ніжэйшым дазволам задзейнічана тэхналогія суперсэмплінга AMD FSR (FidelityFX Super Resolution), якая выкарыстоўвае алгарытмы прасторавага маштабавання і рэканструкцыі дэталяў для зніжэння страты якасці малюнка пры павелічэнні маштабу і пераўтварэнні ў больш высокае дазвол. Рэалізаваны рухавічок рэндэрынгу на базе Direct3D 12, які дазволіць палепшыць падтрымку платформаў Windows і Xbox.
- Дададзена магчымасць працы з інтэрфейсам у шматваконным рэжыме (розныя панэлі і часткі інтэрфейсу можна адмацоўваць у выглядзе асобных вокнаў).
- Дададзены новы рэдактар інтэрфейсаў карыстальніка і новы віджэт візуальнага праектавання.
- Дададзены новы рэдактар тэм афармлення.
- Цалкам перапісана сістэма кіравання асвятленнем і ценямі, у якой задзейнічана якая працуе ў рэжыме рэальнага часу тэхналогія глабальнага асвятлення SDFGI (Signed Distance Field Global Illumination). Значна падвышана якасць адмалёўкі ценяў.
- Вузел GIProbe, які выкарыстоўваецца для напаўнення сцэны адлюстраваным святлом, заменены на вузел VoxelGI, аптымальны для апрацоўкі ў рэжыме рэальнага часу асвятлення ў сцэнах з невялікімі ці сярэднімі інтэр'ерамі памяшканняў. Для маламагутнага абсталявання пакінутая магчымасць папераджальнага рэндэрынгу святла і ценяў пры дапамозе карт асвятлення, для паскарэння адмалёўкі якіх зараз задзейнічаны GPU.
- Рэалізаваны новыя тэхнікі аптымізацыі рэндэрынгу. Дададзена аўтаматычнае аклюзіўнае абразанне (occlusion culling), якое дынамічна вызначае і выдаляе мадэлі, схаваныя за іншымі паверхнямі для павышэння прадукцыйнасці рэндэрынгу і зніжэння нагрузкі на CPU і GPU.
- Дададзены рэжым SSIL (Screen Space Indirect Lighting), які дазваляе павысіць якасць рэндэрынгу на высокапрадукцыйным абсталяванні за кошт паляпшэння апрацоўкі цёмных абласцей і непрамога асвятлення. Акрамя таго, прадстаўлены дадатковыя налады імітацыі безуважлівага непрамога асвятлення пры дапамозе тэхнікі SSAO (Screen Space Ambient Occlusion), такія як выбар узроўня ўплыву прамога святла.
- Прапанаваны рэалістычныя адзінкі асветленасці, якія дазваляюць карэктаваць інтэнсіўнасць святла і выкарыстоўваць для кіравання яркасцю фінальнай сцэны штатныя наладкі камеры, такія як дыяфрагма, вытрымка і ISO.
- Дададзены новыя інструменты для рэдагавання узроўняў для двухмерных гульняў. Унесены радыкальныя змены ў працэс распрацоўкі 2D-гульняў. Дададзены новы рэдактар тайлавых карт (tilemap), якім з'явілася падтрымка пластоў, аўтазапаўнення ландшафту, рандамізаванай расстаноўкі раслін, камянёў і розных аб'ектаў, гнуткага вылучэння аб'ектаў. Уніфікавана праца з тайлавымі картамі і наборамі фрагментаў для пабудовы карты (tileset). Забяспечана аўтаматычнае пашырэнне фрагментаў у наборы для выключэння прабелаў паміж суседнімі фрагментамі. Дададзена новая функцыя расстаноўкі аб'ектаў на сцэне, якую, напрыклад, можна выкарыстоўваць для дадання персанажаў у вочкі тайлавай сеткі.
- Пры 2D-адмалёўцы рэалізавана магчымасць выкарыстання груп палатна, якія дазваляюць змешваць перакрываюцца элементы палатна, напрыклад, можна аб'яднаць разам некалькі спрайт і змяшаць іх з фонам, як калі б гэтыя спрайт былі адным элементам. Дададзена ўласцівасць Clip Children, якое дазваляе выкарыстоўваць любы 2D-элемент у якасці маскі. У 2D-рухавічок таксама дададзена опцыя, якая дазваляе выкарыстоўваць метад згладжвання MSAA (Multisample Anti-Aliasing) для павышэння якасці малюнкаў і стварэння больш гладкіх краёў.
- Палепшана праца з асвятленнем і ценямі ў 2D-гульнях. Значна падвышана прадукцыйнасць пры выкарыстанні некалькіх крыніц святла. Дададзена магчымасць імітацыі трохмернасці праз змяненне ўзроўню асвятлення на картах нармалей, а таксама стварэння такіх візуальных эфектаў, як доўгія цені, арэолы і выразныя контуры.
- Дададзены эфект аб'ёмнага туману, які выкарыстоўвае тэхніку часова рэпраекцыі для дасягнення рэалістычнага віду і высокай прадукцыйнасці.
- Дададзеныя шэйдары аблокаў, якія дазваляюць дынамічна генераваць аблокі, якія змяняюцца ў рэжыме рэальнага часу.
- Рэалізавана падтрымка "дэкаляў", метаду праецыравання матэрыялу на паверхню.
- Дададзеныя прымяняюцца для ўсёй гульнявой прасторы эфекты на базе часціц, якія выкарыстоўваюць GPU і падтрымліваюць атрактары, сутыкненні, шлейфы і выпраменьвальнікі.
- Пашыраны магчымасці інтэрфейсу для візуальнага рэдагавання шэйдараў.
- Пашыраны мова шэйдараў, у якім з'явілася падтрымка структур, макрасаў прэпрацэсара, падстаноўкі шэйдараў (аператар include), уніфікаваных масіваў і выкарыстання "varying" для перадачы дадзеных з апрацоўшчыка фрагмента ў апрацоўшчык асвятлення.
- Дададзена магчымасць прымянення вылічальных шэйдараў, якія выкарыстоўваюць GPU для паскарэння алгарытмаў.
- У мове сцэнарыяў GDScript палепшана сістэма статычнай тыпізацыі, дададзены новы сінтаксіс вызначэння ўласцівасцяў, прапанаваны ключавыя словы await і super, дададзены аперацыі map/reduce, рэалізавана новая сістэма анатацый, з'явілася магчымасць выкарыстання unicode-знакаў у імёнах зменных і назовах функцый. Дададзены інструмент для аўтаматычнай генерацыі дакументацыі. Падвышаная прадукцыйнасць і стабільнасць GDScript runtime. У асяроддзі распрацоўкі забяспечана магчымасць паказу адразу некалькіх памылак, дабаўлены новыя папярэджанні для тыпавых праблем.
- Пашыраны магчымасці распрацоўкі гульнявой логікі на мове C#. Дададзена падтрымка платформы .NET 6 і мовы C# 10. Для скалярных значэнняў задзейнічаны 64-разрадныя тыпы. Многія API перакладзены з тыпаў int і float на long і double. Дана магчымасць вызначэння сігналаў у форме падзей C#. Дададзена магчымасць распрацоўкі пашырэнняў GDExtensions на мове C#.
- Дададзена эксперыментальная падтрымка пашырэнняў (GDExtension), якія можна выкарыстоўваць для пашырэння магчымасцяў рухавічка без яго перазборкі і без занясення змен у код.
- Прапанаваны па змаўчанні ўласны рухавічок сімуляцыі фізічных працэсаў Godot Physics, аптымізаваны для рашэння задач, уласцівых кампутарным гульням, і даведзены да парытэту ў функцыянальнасці з раней выкарыстоўваным рухавічком Bullet (напрыклад, у Godot Physics дададзена апрацоўка новых форм сутыкненняў, падтрымка карты вышынь і магчымасць SoftBody для сімуляцыі адзення). Праведзена аптымізацыя прадукцыйнасці і пашырана прымяненне шматструменнасці з падзелам нагрузкі на розныя ядры CPU пры сімуляцыі фізічных працэсаў у 2D-і 3D-акружэннях. Вырашаны многія праблемы з сімуляцыяй.
- Прапанавана новая сістэма адмалёўкі тэксту, якая прадстаўляе больш кантролю за абразаннем і пераносам тэксту, а таксама забяспечвае высокую выразнасць пры любых экранных дазволах.
- Пашыраны інструменты для лакалізацыі і працы над перакладам.
- Дададзены асобны дыялог для імпарту 2D- і 3D-рэсурсаў, які падтрымлівае прадпрагляд і змяненне настроек імпартуемай сцэны, матэрыялаў і фізічных уласцівасцей.
- У рэдактар дададзены новыя фішкі, такія як панэль для адкату змен і новы дыялог выбару колеру і абнаўленні палітры.
- Абноўлены інтэрфейс інспектавання, панэль кіравання сцэнай і рэдактар скрыптоў. Палепшана падсветка сінтаксісу, дададзена магчымасць адлюстравання некалькіх курсораў, прадастаўлены сродкі для рэдагавання фарматаў JSON і YAML.
- Пашыраны магчымасці рэдактара анімацыі, у якім з'явілася падтрымка змешвання фігур і палепшаны працэсы на базе крывой Безье. Перапісаны код для 3D-анімацыі, у якім рэалізавана падтрымка сціску для скарачэння спажывання памяці. Перапісана сістэма для змешвання анімацыі і стварэння пераходных эфектаў. Пашыраны магчымасці для стварэння складаных анімацый. Для захоўвання і паўторнага выкарыстання створаных анімацый прапанаваны бібліятэкі анімацыі.
- Дададзены рэжым стварэння фільмаў, які выконвае пакадравы рэндэрынг сцэны з максімальнай якасцю для стварэння заставак і запісы відэа.
- Пашыраная падтрымка 3D-шлемаў і платформаў віртуальнай рэальнасці. У асноўны склад рухавічка ўбудаваная падтрымка стандарту OpenXR, які вызначае ўніверсальны API для стварэння прыкладанняў віртуальнай і дапоўненай рэальнасці. У Windows і Linux забяспечана падтрымка ўсіх папулярных 3D-шлемаў, у тым ліку шлемы SteamVR, Oculus і Monado.
- Павышана стабільнасць падсістэмы для арганізацыі сеткавай гульні і спрошчаны працэс распрацоўкі шматкарыстальніцкіх гульняў.
- Пашыраны магчымасці гукавой сістэмы, убудавана падтрымка паліфаніі, дададзены API для сінтэзу маўлення і рэалізавана магчымасць зацыклення гуку.
- Забяспечана магчымасць запуску інтэрфейсу Godot на Android-планшэтах і ў web-браўзэры.
- Дададзена новая сістэма зборкі гульняў для розных архітэктур CPU. Напрыклад, зараз можна выканаць зборку для Raspberry Pi, Microsoft Volterra, Surface Pro X, Pine Phone, VisionFive, ARM Chromebook і Asahi Linux.
- У API унесены змены, якія парушаюць сумяшчальнасць. Пераход з Godot 3.x на Godot 4.0 запатрабуе перапрацоўкі прыкладанняў, але для галінкі Godot 3.x забяспечаны працяглы цыкл падтрымкі, тэрмін якога будзе залежаць ад запатрабаванасці старога API карыстачамі.
Крыніца: opennet.ru