Efter fem måneders udvikling er udgivelsen af den frie spilmotor Godot 4.2 blevet offentliggjort, velegnet til at skabe 2D- og 3D-spil. Motoren understøtter et letlærbart sprog til at specificere spilogik, en grafisk miljø til spildesign, én-klik distributionssystem til spil, omfattende animationsmuligheder samt simulering af fysiske processer, en indbygget debugger og et system til at identificere flaskehalse i ydelsen. Koden for spilmotoren, designsystemet og relaterede udviklingsværktøjer (fysikmotor, lydserver, backend for 2D/3D rendering osv.) distribueres under MIT-licensen.
Kildekoderne til motoren blev åbnet i 2014 af OKAM-studiet efter ti år med udvikling af et professionelt niveau af proprietært produkt, som blev brugt til at skabe og offentliggøre mange spil til PC, spillekonsoller og mobile enheder. Motoren understøtter alle populære stationære og mobile platforme (Linux, Windows, macOS, Wii, Nintendo 3DS, PlayStation 3, PS Vita, Android, iOS, BBX), samt udvikling af spil til Web. Klare binære versioner er dannet for Linux, Android, Windows og macOS.
Vigtige ændringer:
- For udviklere af 2D-spil er der tilføjet støtte til tvungen heltals skalering, som muliggør at få en kvadratisk pixelgitter, uanset det faktiske aspektforhold. Der er givet mulighed for at få barycentriske koordinater for norm fra skæringspunkter mellem objektet og strålen. Metoderne Rotate_toward og Angle_difference er blevet tilføjet for korrekt behandling af rotation og vinkler. I Line2D noder er der tilføjet en egenskab «closed» for at skabe lukkede linjer med kontinuerlig fyldning.

- Der er arbejdet på at forbedre systemets animationspålidelighed. Noderne AnimationPlayer og AnimationTree er blevet redesignede og standardiserede, hvor fælles dele er blevet fremhævet i en mellemklasse AnimationMixer. Der er tilføjet en mulighed for deterministisk blanding. I animationsvisningen er der blevet tilføjet en kalkeringsfunktion (onion skinning), som viser halvgennemsigtige lag med tidligere og efterfølgende rammer af animationen.

- Mulighederne for «bagning» af navigationsnet (baking, konvertering til statisk form) for 2D er blevet tilpasset mulighederne tidligere tilgængelige i 3D-navigation, for eksempel er der for 2D-netværk implementeret støtte til at arbejde med fysiske legemer, instanser af polygonale netværk, simple polygons og tilemaps. servere I 2D- og 3D-navigation er der tilføjet støtte til multitrådet bagning af meshes.

- Refactored the code for working with tiles and tile maps. Grouping and sorting operations along the Y axis have been optimized, significantly reducing tile update time. Efforts have been made to improve the ease of creating and using tile maps. Added a tool for flipping and rotating tiles during placement. Improved tools for editing polygons and tiled scenes.

- The GDScript script editor now allows for the creation of named code regions for collapsing blocks during editing and simplifying navigation. The script debugger has added full support for multithreaded code, execution stacks, and breakpoints. Support for Android (.NET 7.0+) and iOS (.NET 8.0) platforms has been implemented in C#/.NET scripts. In GDScript, support for statically typed code has been expanded, adding support for r-string (raw string) literals and enhanced match operator capabilities.

- In the 3D viewport, the transformation control has been improved in Blender style, using the mouse and hotkeys. Extended visual information is now displayed in the 3D viewport only for selected objects. Additional indicators for elements such as decals and fog volume have been added. The gizmo functionality has been enhanced - any side of volumetric shapes can now be individually scaled in the view window.

- The context menus and tooltips in the 'Inspection' and 'Signals' panels have been improved. Tooltips describing properties have been added in the theme editor. The file system panel now features visual folder highlighting by assigning different colors to them. The gradient resource editor interface has been redesigned. The texture area editor has unified the operation across all supported resources, including styles and atlases.

- The asset library has improved search result output and added the option to select a different directory for installing an add-on or resource.

- In the project manager, the layout of the main control elements has been redesigned, and the project import interface has been modernized.

- Funktionaliteten til plugin-udvikling i editoren er blevet udvidet. Der er sikret adgang til alle editorens funktioner via klassen EditorInterface. Praktiske metoder til direkte adgang til 2D- og 3D-vyportene er blevet implementeret. Muligheden for at vise en dialogboks med advarsler om usikrede ændringer er tilføjet.
- Udviklingen af det eksperimentelle GDExtension-system er blevet fortsat, hvilket gør det muligt at bruge low-level sprog som C++ til at skrive scripts til spil uden at skulle omkompilere motoren eller ændre koden. Muligheden for at bruge GDExtensions ved eksport til Web er blevet tilføjet.
- Brugergrænsefladen har fået ændringer i fokusstyringen. Der er implementeret muligheder for at overføre fokus til individuelle faner i fanebladspanelet, også under navigation ved hjælp af tastaturet. Der er tilføjet en metode til at finde det næste nabo-fokuserbare element i kontrolnoderne. Graf-noderne (GraphEdit og GraphNode) er blevet betydeligt omarbejdet, og mulighederne for at tilpasse værktøjslinjen for hovednoden GraphEdit er blevet udvidet.

- Muligheden for dynamisk at ændre importtypen for aktiver er blevet tilføjet, med automatisk opdatering af scener og ressourcer uden behov for genstart af editoren. De tilgængelige importindstillinger er blevet udvidet, og det er nu muligt at ændre de fysiske egenskaber for importerede objekter samt skygge- og synlighedsindstillinger. Muligheden for at forhåndsvise animationer i importdialogboksen er blevet tilføjet. Støtten til import af aktiver fra Blender i GLTF-format er blevet udvidet. Der er tilføjet støtte til import af billeder i KTX-format.

- Der er foretaget optimeringer, der sigter mod at forbedre renderingens ydeevne. For at fremskynde arbejdet på mobile enheder er rasterbarrierer blevet opdelt i topologiske og fragmentkomponenter. Genereringen af støjede teksturer er blevet accelereret. Der er tilføjet en forhåndsgang til dybdeberegning. Tiden til indlæsning og kompilering af shaders er blevet reduceret. Opbevaringen af polygonale netværk i hukommelsen er blevet optimeret. Der er tilføjet støtte til komprimering af polygonale netværk for at reducere båndbredden under transmission.
- Muligheden for at skabe egne teksturobjekter er blevet tilføjet (et eksempel på brugen af compute shaders til at skabe tekstur med vandeffekt).
- API til kald af kode i renderingsstrømmen er blevet tilføjet, hvilket kan være nødvendigt, når man skal synkronisere compute shader med rendering.
- Understøttelse af version 2.2 af AMD FSR (FidelityFX Super Resolution) super sampling teknologi er blevet tilføjet, der anvender rumlige opskalerings- og detalje rekonstrueringsalgoritmer for at reducere kvalitetstab ved opskaling og konvertering til højere opløsning.
- Der er foreslået en ny støjundertrykker JNLM, der bruger lightmapper-kort og compute shaders. JNLM er betydeligt hurtigere end den tidligere anvendte støjundertrykningsbibliotek OIDN (Open Image Denoise), men kan i nogle situationer være ringere i kvalitet.
- Metoderne til Forward+ og Mobile rendering har fået tilføjet understøttelse af 2D-rendering i udvidet dynamisk lysstyrke (HDR), hvilket muliggør visse 3D-effekter i 2D-spil, såsom glød. I rendering metoden Compatibility er der tilføjet støtte til tredimensionelle skygger.
- For macOS og Windows er der foreslået en ny OpenGL-renderingsdriver, der bruger ANGLE-laget til at oversætte OpenGL-kald til API Direct3D 11 og Metal.
- Partikelsimulationssystemet er blevet redesignede for at forenkle vedligeholdelsen og udvide kontrollen over partikelbevægelsen. For eksempel kan man nu animere og arve bevægelseshastighed samt ændre antallet af udsendte partikler. Der er tilføjet et værktøj til at konvertere CPU-baseret partikelgenereringskode til ækvivalent GPU-baseret kode.
- Understøttelse af native filvælgerdialoger for Linux, macOS og Windows er blevet tilføjet, samt muligheden for at kopiere og indsætte billeder via udklipsholderen.
- Godot's arkitektur til Android-platformen er blevet redesignet for at fjerne båndet til Android-komponenten Fragment, hvilket har reduceret opstartstiden for applikationer og spil, samt muliggør arbejde med flere vinduer.
- Der er etableret generation af officielle Linux-versioner af Godot-editoren til 32- og 64-bit ARM-platforme.
Kilde: opennet.ru











