Godot, open source-spilmotoren på tværs af platforme, har langsomt vundet popularitet siden den første stabile udgivelse i 2014. Med den forestående udgivelse af Godot 4.0 er mange spiludviklere begejstrede for at udforske den længe ventede 15. september-udgivelse af Beta 1.
Hvad betyder de nye funktioner i Godot 4.0 for dig? Hvordan vil det sammenlignes med Unity?
Fra en ny gengivelses-API og fysikmotor til nye noder, GDScript-funktioner og .NET 6 API-understøttelse, kan Godot 4.0 adressere mange af dets kritikere.
En ny gengivelses-API
Godot skifter fra OpenGL-renderer til Vulkan. Det betyder, at belysning i 3D-scener vil se markant bedre ud.
Når man sammenligner store mængder draw calls, understøtter Vulkan rendereren bedre open-world spil med mange objekter. OpenGL-rendereren havde på den anden side en tendens til at stresse og forringe ressourcer.
Sammen med den nye gengivelses-API kommer nye noder, som tilføjer flere detaljer til 3D-scener:
- VoxelGI-knuden er en overhaling af det gamle globale belysningssystem. Det giver mulighed for mere nuanceret belysning i små og mellemstore miljøer.
- Signal Distance Field Illumination node giver mulighed for store åbne verdener med bedre objektskygger, lysbrydning og meget mere.
- FogVolume-knuden giver udviklere mulighed for at skrive shaders til komplekse tåge- og tågedetaljer.
Selvom det ikke er en ny node, giver introduktionen af Sky shaders mulighed for brug af shaders til en skybox, hvilket oversættes til dynamisk positionering og opdatering i realtid.
Der er mange mindre forbedringer såsom GPU-baserede partikler, tilføjelser til shader scripting og nye optimeringsteknikker. Men de væsentligste ændringer er værd at undersøge nærmere.
En ny fysikmotor
Når han implementerer fysik i 3D-scener, har Godot historisk set stolet på Bullet-motoren. Ikke mere. Mød Godot Physics-motoren.
Nogle nye funktioner inkluderer nye kollisionsformer og genimplementering af bløde kroppe. Dette giver mulighed for hurtig prototyping og mere realistisk objektmanipulation. Oven i det betyder multithreading-understøttelse flere optimeringer; alle disse ændringer kommer med mindre ydelsesomkostninger.
Den nye CharacterBody-node, der erstatter KinematicBody, giver mulighed for øget fleksibilitet og muligheder. Fejlrettelser til rystelser og ulige bevægelsesadfærd er en Godot-send. Resultatet? Mere stabile og ensartede bevægelsesmønstre – selv med mærkelige kollisionsformer eller ekstreme højdekort.
Et nyt navigationssystem erstatter fuldstændigt det nodebaserede system med et serverbaseret, hvilket øger brugervenligheden uden at ofre ydeevnen.
Nye livskvalitetsfunktioner i GDScript
Med en komplet omskrivning i betaen er GDScript blevet hurtigere. Derudover tilføjes mere bredt anvendelige funktioner og generelle forbedringer:
- Du kan nu behandle funktioner som variabler og bruge anonyme funktioner.
- Generelle syntaksforbedringer giver mulighed for mere ensartet kode.
- Du kan angive specifikke typer for arrays for at reducere fejl.
- vente og super nøgleord erstatter ældre, mindre tydelig kode vedrørende timing og arv.
Hvis du arbejder med et team eller genbesøger et gammelt projekt, vil du opdage, at dårligt navngivne variabler kan være frustrerende. For at bekæmpe dette genererer scripts nu automatisk nyttig dokumentation. At holde markøren over eksporterede variabler i Docker kan give nyttige beskrivelser af variablen.
C# og support til .NET 6
.NET 6-understøttelse er for det meste afsluttet med beta. Hvis du vil holde dig til C# af præference- eller ydeevnemæssige årsager, er der mange nye funktioner at se frem til.
Når du bruger .NET 6, er C# 10 standard. En ny afhængighed af kildegeneratorer betyder, at hvis der er et problem i din kode, vil Godot kaste en fejl på kompileringstidspunktet snarere end ved kørsel. Dette vil spare tid, især hvis der er en fejl sent i spillet.
Du kan nu erklære signaler som C#-hændelser for mere konsistent signalkode. Aktiv udvikling hældes også i at skrive GDExtension i C#. Et eksempel er, at C#-klasser ikke registreres anderledes end indbyggede klasser. Dette vil hjælpe med at forbedre understøttelsen af C#-noder. Endelig vil Godot 4.0 introducere en enkelt, samlende download, så C#-brugere behøver ikke specifikt at downloade Mono-versionen.
Er Godot 4.0 bedre end Unity?
Betaen er kun en beta, hvilket betyder, at den stadig er ustabil. Der er masser af fejl, som udviklerne kan finde og rette. Godot bevæger sig dog mod at være en mere etableret og jordet motor med funktionerne fra Unity. Alligevel er det vigtigt at erkende, at mens Godot og Unity begge er spilmotorer, er de målrettet mod forskellige målgrupper.
I de seneste år har Unity fokuseret på VFX og hyperrealistiske 3D-scener. I modsætning hertil bruger udviklere Godot til prototyping og fremstilling af mindre, ofte 2D, spil. Dette betyder ikke, at brug af nogen af motorerne låser dig ind. Erfaring med begge motorer er nyttig, så du virkelig forstår, hvilken der er bedst til dine behov.
Om du er Unity-udvikler, nysgerrig efter Godot-motoren og hvad den gør, eller bare på udkig efter noget nyt spiludviklingsværktøjer, denne udgivelse bringer mange nye funktioner til at hjælpe dig med at skabe dit næste spil.
Selvom det er svært at kvantificere, er Godot-fællesskabet en af dets bedste funktioner. Du vil finde støttende udviklere, der gerne deler deres viden. Hvis det nye nodesystem ser skræmmende ud, skal du bare bede om hjælp. Og hvis det ikke er overbevisende nok, er der flere grunde til at overveje at bruge Godot til dit næste spil.
Fremtiden: Hvad Godot 4.0 betyder for spiludviklere
Godot 4.0 vil integrere livskvalitetsfunktioner, der mangler fra 3.5, og den bringer også ønskværdige funktioner ind fra andre motorer.
Da Godot 4.0 kan resultere i øget ydeevne for spil, burde det vinde indpas i fremtiden. Forskellige funktioner og forbedringer kan alle integreres i projekter for at optimere dem eller forbedre verdensdetaljerne.
At se disse helt nye funktioner tyder på, at motoren vil fortsætte med at vokse. Så hver gang du føler trang til at engagere dig i Samuel Beckett-ordspil, så husk, at det kun var den 17. januar 2022, da den første Godot 4.0 Alpha udkom.