Efter fyra Ärs utveckling har lanseringen av den fria spelmotorn Godot 4.0 publicerats, som Àr lÀmplig för att skapa 2D- och 3D-spel. Motorn stöder ett lÀttförstÄeligt sprÄk för spelloop-logik, en grafisk miljö för spelutveckling, ett klick för att distribuera spel, omfattande animations- och fysiksimuleringsmöjligheter, en inbyggd debugger och ett system för att identifiera prestandaflaskhalsar. Koden för spelmotorn, spelutvecklingsmiljön och de medföljande utvecklingsverktygen (fysikmotor, ljudserver, backend för 2D/3D-rendering, etc.) distribueras under MIT-licensen.
KÀllkoden för motorn öppnades 2014 av studion OKAM, efter tio Är av utveckling av en proprietÀr produkt av professionell nivÄ, som har anvÀnts för att skapa och publicera mÄnga spel för PC, spelkonsoler och mobila enheter. Motorn stödjer alla populÀra stationÀra och mobila plattformar (Linux, Windows, macOS, Wii, Nintendo 3DS, PlayStation 3, PS Vita, Android, iOS, BBX), samt utveckling av spel för webben. FÀrdiga körbara binÀrpaket har skapats för Linux, Android, Windows och macOS.
I Godot 4.0 ingÄr omkring 12 000 förÀndringar och 7 000 buggar har ÄtgÀrdats. UngefÀr 1500 personer har varit involverade i utvecklingen av motorn och skrivandet av dokumentationen. Bland de viktigaste förÀndringarna:
- TvÄ nya rendering-backends (kluster- och mobil) baserade pÄ grafik-API:et Vulkan har föreslagits, vilka ersÀtter backends som utförde rendering via OpenGL ES och OpenGL. För Àldre och mindre kraftfulla enheter har en kompatibilitetsbackend baserad pÄ OpenGL integrerats, som anvÀnder en ny rendering-arkitektur. För dynamisk rendering med lÀgre upplösning har teknologin AMD FSR (FidelityFX Super Resolution) implementerats, som anvÀnder algoritmer för rumslig skalning och detaljÄteruppbyggnad för att minska kvalitetsförlust vid uppskalning och omvandling till högre upplösning. En renderingmotor baserad pÄ Direct3D 12 har genomförts, vilket kommer att förbÀttra stödet för Windows och Xbox-plattformarna.

- Möjligheten att arbeta med grÀnssnittet i ett flerfönsterlÀge har lagts till (olika paneler och delar av grÀnssnittet kan lossas som separata fönster).

- En ny anvÀndargrÀnssnitteditor och en ny visuell designwidget har lagts till.

- En ny temaeditor har lagts till.

- Systemet för ljus- och skugghantering har skrivits om helt, dÀr den realtidsaktiverade teknologin för global belysning SDFGI (Signed Distance Field Global Illumination) anvÀnds. Kvaliteten pÄ skuggrendering har ökat avsevÀrt.

- GIProbe-noden, som anvÀnds för att fylla scenen med reflekterat ljus, har ersatts av VoxelGI-noden, som Àr optimal för att behandla belysning i realtid i scener med smÄ eller medelstora inomhusinteriörer. För lÄgpresterande utrustning finns möjligheten till förhandsrendering av ljus och skuggor med hjÀlp av ljuskartor, dÀr GPU nu Àr involverad för att snabba upp renderingstiden.

- Nya tekniker för renderingoptimering har införts. Automatisk ocklusiv avskÀrning (occlusion culling) har lagts till, vilket dynamiskt identifierar och tar bort modeller som döljs bakom andra ytor för att öka renderingens prestanda och minska belastningen pÄ CPU och GPU.

- En SSIL (Screen Space Indirect Lighting) -lÀge har lagts till, vilket möjliggör ökad renderingskvalitet pÄ högpresterande utrustning genom att förbÀttra behandlingen av mörka omrÄden och indirekt belysning. Dessutom finns det ytterligare instÀllningar för simulering av diffus indirekt belysning med hjÀlp av SSAO (Screen Space Ambient Occlusion) -tekniken, som till exempel möjligheten att vÀlja nivÄn av pÄverkan frÄn direkt ljus.
- Realistiska enheter för belysning har föreslagits, vilket gör det möjligt att justera ljusstyrka och anvÀnda standardkamerainstÀllningar, sÄsom blÀndare, exponering och ISO, för att kontrollera ljusstyrkan i den slutliga scenen.
- Nya verktyg för redigering av nivÄer för tvÄdimensionella spel har lagts till. Radikala förÀndringar har genomförts i utvecklingsprocessen för 2D-spel. En ny tilemap-redigerare har lagts till, som nu har stöd för lager, automatiskt fyllande av landskap, randomiserad placering av vÀxter, stenar och olika objekt, samt flexibel selektion av objekt. Arbetet med tilemaps och fragmentuppsÀttningar för kartor (tileset) har enhetsanpassats. Automatiskt utökningssystem för fragment i uppsÀttningen har införts för att utesluta luckor mellan angrÀnsande fragment. En ny funktion för placering av objekt pÄ scenen har lagts till, vilket kan anvÀndas för att lÀgga till karaktÀrer i rutnÀtsrutor.
- Vid 2D-rendering har möjligheten att anvÀnda grupper av dukar implementerats, vilket gör det möjligt att blanda överlappande dukelement, till exempel kan flera sprites kombineras och blandas med bakgrunden, som om dessa sprites var ett enda element. Egenskapen Clip Children har lagts till, vilket gör att vilken 2D-element som helst kan anvÀndas som en mask. En funktion har Àven lagts till i 2D-motorn som gör det möjligt att anvÀnda metoden för MSAA (Multisample Anti-Aliasing) för att förbÀttra bildkvaliteten och skapa mjukare kanter.

- Arbetet med belysning och skuggor i 2D-spel har förbÀttrats. Prestandan har avsevÀrt ökat vid anvÀndning av flera ljuskÀllor. Möjligheten att simulera tredimensionalitet genom att Àndra ljusnivÄerna pÄ normalmaps har lagts till, liksom skapandet av visuella effekter som lÄnga skuggor, halo-effekter och skarpa konturer.

- Effekten av volymetrisk dimma har lagts till, som anvÀnder en teknik för temporÀr reprojektion för att uppnÄ en realistisk look och hög prestanda.

- Molnshaders har lagts till, vilket gör det möjligt att dynamiskt generera moln som förÀndras i realtid.

- Stöd för "decal"-tekniken har implementerats, som innebÀr att material projiceras pÄ ytor.
- Partikeleffekter som anvÀnds över hela spelrymden har lagts till, som utnyttjar GPU och stödjer attraktorer, kollisioner, svansar och emitterare.
- Möjligheterna i anvÀndargrÀnssnittet för visuell redigering av shaders har utökats.

- SprÄket för shaders har utvidgats för att inkludera stöd för strukturer, makron i preprocessorer, shader substitution (include-operatorer), enhetliga arrayer och anvÀndning av "varying" för att överföra data frÄn fragment-shader till ljusbehandlare.
- Möjligheten att anvÀnda compute shaders har lagts till, vilket anvÀnder GPU för att pÄskynda algoritmer.
- I GDScript-sprÄket har systemet för statisk typning förbÀttrats, en ny syntax för egendefiniering av egenskaper har lagts till, nyckelorden await och super har introducerats, map/reduce-operationer har lagts till, ett nytt annoteringssystem har implementerats, och det har blivit möjligt att anvÀnda unicode-tecken i variabelnamn och funktionsnamn. Ett verktyg för automatisk dokumentationsgenerering har lagts till. Prestandan och stabiliteten i GDScript-runtime har förbÀttrats. Utvecklingsmiljön har fÄtt möjlighet att visa flera fel samtidigt, och nya varningar för typiska problem har lagts till.

- Möjligheterna för utveckling av spel-logik i C# har utvidgats. Stöd för .NET 6 och C# 10 har lagts till. 64-bitstyper anvÀnds för skalÀra vÀrden. MÄnga API:er har översatts frÄn int- och float-typer till long och double. Möjligheten att definiera signaler i form av C#-evenemang har införts. Utvecklingen av GDExtensions-Àndringar pÄ C# har blivit möjlig.
- Experimentellt stöd för förlÀngningar (GDExtension) har lagts till, vilket kan anvÀndas för att utvidga motorfunktioner utan att omkompilera den och utan att göra Àndringar i koden.
- Den egen fysiksimulatorn Godot Physics har föreslagits som standard, optimerad för att lösa uppgifter som Àr typiska för datorspel och har nÄtt paritet i funktionalitet med den tidigare anvÀnda motorn Bullet (till exempel har Godot Physics fÄtt nya former av kollisioner, stöd för höjdkartor och möjligheten att anvÀnda SoftBody-noder för att simulera klÀder). Prestandan har optimerats, och tillÀmpningen av flertrÄdad körning har utvidgats med lastbalansering pÄ olika CPU-kÀrnor vid simulering av fysiska processer i 2D- och 3D-miljöer. MÄnga problem med simuleringen har ÄtgÀrdats.
- Ett nytt textsymboliseringssystem har föreslagits, vilket ger mer kontroll över avkortning och radbrytning av text, samt sÀkerstÀller hög skÀrpa vid alla skÀrmupplösningar.
- Verktygen för lokalisering och översÀttning har utvidgats.
- En separat dialog för import av 2D- och 3D-resurser har lagts till, vilket stödjer förhandsgranskning och Àndringar i instÀllningarna för den importerade scenen, material och fysiska egenskaper.

- Nya widgets har lagts till i editorn, som en panel för att Ängra Àndringar och en ny fÀrgdialog som uppdaterar paletten.

- AnvÀndargrÀnssnittet för inspektion har uppdaterats, kontrollpanel scenen och skripteditorn. Syntaxmarkeringen har förbÀttrats, flera markörer kan nu visas, och verktyg för att redigera JSON- och YAML-format har tillhandahÄllits.
- Redigeringsmöjligheterna för animationer har utökats, med stöd för blandning av former och förbÀttrade processer baserade pÄ Bézier-kurvor. Koden för 3D-animation har skrivits om för att stödja komprimering som minskar minnesanvÀndningen. Systemet för blandning av animationer och skapande av övergÄngseffekter har skrivits om. Det har ocksÄ blivit möjligt att skapa komplexa animationer. Animationsbibliotek har skapats för att lagra och ÄteranvÀnda skapade animationer.

- LÀget för filminspelning har lagts till, vilket gör en bildruta för bildruta rendering av scenen med högsta kvalitet för att skapa trailers och spela in video.
- Stödet för 3D-headsets och plattformar för virtuell verklighet har utökats. Stödet för standarden OpenXR, som definierar ett universellt API för att skapa applikationer för virtuell och förstÀrkt verklighet, har integrerats i motorn. I Windows och Linux stöds alla populÀra 3D-headsets, inklusive SteamVR, Oculus och Monado.
- Stabiliteten i subsystemet för nÀtverksorganisering har förbÀttrats, och processen för att utveckla multiplayer-spel har förenklats.
- Möjligheterna för ljudsystemet har utökats, med stöd för polyfoni, en API för talgenerering har lagts till, och möjligheten att loopa ljud har implementerats.
- Möjlighet att köra Godot-grÀnssnittet pÄ Android-plattor och i webblÀsare har sÀkerstÀllts.

- Ett nytt spelsystem för olika CPU-arkitekturer har lagts till. Nu Àr det till exempel möjligt att bygga för Raspberry Pi, Microsoft Volterra, Surface Pro X, Pine Phone, VisionFive, ARM Chromebook och Asahi Linux.
- Ăndringar som bryter kompatibiliteten har gjorts i API:et. ĂvergĂ„ngen frĂ„n Godot 3.x till Godot 4.0 kommer att krĂ€va omarbetning av applikationer, men stöd för Godot 3.x-grenen kommer att erbjudas under en lĂ€ngre tidsperiod, vars lĂ€ngd kommer att bero pĂ„ efterfrĂ„gan frĂ„n anvĂ€ndarna pĂ„ det gamla API:et.

KĂ€lla: opennet.ru

















