Godot (spilmotor) - Godot (game engine)
|
Et skærmbillede af redaktøren i Godot 3.3
| |
| Originale forfatter (er) | Juan Linietsky, Ariel Manzur |
|---|---|
| Første udgivelse | 14. januar 2014 |
| Stabil udgivelse | |
| Depot | |
| Skrevet i | C ++ |
| Operativ system | Microsoft Windows , macOS , Linux , FreeBSD , NetBSD , OpenBSD , |
| Platform | Se § Understøttede platforme |
| Tilgængelig i | Flersproget |
| Type | Spil motor |
| Licens | MIT -licens |
| Internet side |
godotengine |
Godot ( /ˈɡɒdoʊ /) er en cross-platform , gratis og open source -spilmotor udgivet under MIT-licensen . Det blev oprindeligt udviklet af argentinske softwareudviklere Juan Linietsky og Ariel Manzur for flere virksomheder i Latinamerika inden offentliggørelsen. Udviklingsmiljøet kører på flere operativsystemer, herunder Linux , BSD'er , macOS og Microsoft Windows . Det er designet til at oprette både 2D- og 3D -spil rettet mod pc- , mobil- og webplatforme .
Funktioner
Godot sigter mod at tilbyde et fuldt integreret spiludviklingsmiljø. Det giver udviklere mulighed for at oprette et spil, uden at de behøver andre værktøjer end dem, der bruges til indholdsoprettelse (visuelle aktiver, musik osv.). Motorens arkitektur er bygget op omkring konceptet om et træ af "noder". Noder er organiseret inde i "scener", som er genanvendelige, instansbare, arvelige og nestbare grupper af noder. Alle spilressourcer, herunder scripts og grafiske aktiver, gemmes som en del af computerens filsystem (frem for i en database ). Denne opbevaringsløsning er beregnet til at lette samarbejdet mellem spiludviklingsteam ved hjælp af softwareversionskontrolsystemer .
Understøttede platforme
Motoren understøtter implementering til flere platforme og tillader specifikation af teksturkomprimering og opløsningsindstillinger for hver platform. Selvom Godot Website kun tilbyder binære filer til Linux , macOS og Microsoft Windows , kan softwaren justeres til at fungere på yderligere operativsystemer, f.eks. BSD . Motoren understøtter flere platforme, herunder desktop og mobil. I øjeblikket understøttede platforme fra Godot 3.3.4
er
- Mobilplatforme Android , iOS
- Desktop platforme Linux , macOS , Microsoft Windows ( Universal Windows Platform ), BSD
- Webplatform HTML5 , WebAssembly .
- Virtual/Extended reality -platforme HTC Vive , Valve Index , Oculus Rift , Oculus Go , Oculus Quest , alle Microsoft MR -headset, Apples ARKit og mange flere.
Der er også en webbaseret editor, der hostes af Godot-fællesskabet til testformål. Selvom Godot-motoren kan køres på konsoller , understøtter Godot den ikke officielt, da det er et open source- projekt frem for et licenseret firma, og de kan ikke offentliggøre platformsspecifik kode under open source-licens . Det er dog stadig muligt at overføre spil til konsoller takket være tjenester fra tredjepartsselskaber.
Scripting
Godot understøtter en række programmeringssprog til at lave spil, herunder det integrerede sprog GDScript, C ++ og C# . Derudover inkluderer motoren GDNative, en facilitet til at oprette bindinger med andre sprog. Officielt understøttede GDNative sprog inkluderer C og C ++ . EU-støttede sprog omfatter Rust , Nim , JavaScript , Haskell , Clojure , Swift , og D . Visuel kodning understøttes også via det indbyggede sprog VisualScript, der er designet til at være en visuel ækvivalent til GDScript.
Godot -editoren indeholder en teksteditor med automatisk indrykning , fremhævelse af syntaks og kodeudfyldelse . Det har også en debugger med mulighed for at indstille breakpoints og programmere trin .
GDScript
| Paradigme | Objektorienteret |
|---|---|
| Udvikler | Godot Community |
| Skrive disciplin | Dynamisk, And |
| OS | Cross-platform (multi-platform) |
| Filnavn udvidelser | .gd |
| Internet side | docs.godotengine.org |
| Påvirket af | |
| C , C ++ , Python | |
Godot har sit eget indbyggede scriptsprog , GDScript, et dynamisk indtastet programmeringssprog på højt niveau , der syntaktisk ligner Python . I modsætning til Python er GDScript optimeret til Godots scenebaserede arkitektur og kan specificere streng indtastning af variabler. Godots udviklere har udtalt, at mange alternative tredjeparts scriptsprog som Lua , Python og egern blev testet, før de besluttede, at brug af et brugerdefineret sprog muliggjorde overlegen optimering og editorintegration. I version 4.0 blev en ny funktion kaldet Typed array implementeret på GDScript. Dette giver brugerne mulighed for nemt at ændre en almindelig matrix til maskinskrevet og omvendt uden at ændre meget kode.
Et simpelt " Hej verden " -program kan skrives sådan:
func _ready():
print("Hello World")
Mere komplekse programmer, som denne, der genererer en Fibonacci -sekvens , er også mulige:
func _ready():
var nterms = 5
print("Fibonacci sequence:")
for i in range(nterms):
print(FibRecursion(i))
func FibRecursion(n):
if n <= 1:
return n
else:
return(FibRecursion(n-1) + FibRecursion(n-2))
Gengivelse
Godots grafikmotor bruger OpenGL ES 3.0 til alle understøttede platforme; ellers bruges OpenGL ES 2.0. Fremtidig support til Vulkan udvikles, der også inkluderer mulighed for support til Metal ved hjælp af MoltenVK . Motoren understøtter normal kortlægning , specularitet , dynamiske skygger ved hjælp af skyggekort , bagt og dynamisk global belysning og efterbehandlingseffekter i fuld skærm som blomstring , DOF , HDR og gammakorrektion. Et forenklet skyggesprog , der ligner GLSL , er også inkorporeret. Shaders kan bruges til materialer og efterbehandling . Alternativt kan de oprettes ved at manipulere noder i en visuel editor.
Godot inkluderer også en separat 2D grafikmotor, der kan fungere uafhængigt af 3D -motoren. 2D -motoren understøtter funktioner som lys, skygger, shaders, flisesæt , parallaksrulning , polygoner , animationer, fysik og partikler. Det er også muligt at blande 2D og 3D ved hjælp af en 'viewport -knude'.
Andre funktioner
Godot indeholder et animationssystem med en GUI til skeletanimation , blanding, animationstræer, morphing og real-time cutscenes. Næsten enhver variabel, der er defineret eller oprettet på en spilenhed, kan animeres. Motoren bruger Bullet til 3D -fysiksimulering.
Yderligere funktioner inkluderer:
- Ydelsesanalysediagrammer
- Let bagning
- Multithreading
- Plugins system
- Gør mål
- Videoafspilning ved hjælp af Theora -codec
- Lydafspilning af Ogg Vorbis , MP3 og WAV codecs
- Partikelsystem
- Tekstur import/eksport/komprimér rørledning
- Navmesh support
- Grafisk brugerflade
- Understøttelse af tastatur , mus , gamepad og berøringsskærm
Historie
Godots udvikling blev startet af Juan 'reducere' Linietsky og Ariel 'punto' Manzur i 2007. Linietsky udtalte i en præsentation, at navnet "Godot" blev valgt på grund af dets relation til Samuel Becketts skuespil Waiting for Godot , da det repræsenterer uendeligt ønske om at tilføje nye funktioner i motoren, som ville komme tættere på et udtømmende produkt, men aldrig vil. I februar 2014 blev kildekoden til Godot frigivet til offentligheden på GitHub under MIT -licensen .
Den 15. december 2014 nåede Godot version 1.0, der markerede den første stabile udgivelse og tilføjelsen af lightmapping , navmesh -understøttelse og flere shaders . Version 1.1 blev udgivet den 21. maj 2015 og tilføjede forbedret automatisk komplementering i kodeeditoren, en visual shader-editor, en ny API til operativsystemet til styring af skærme og vinduer, en omskrevet 2D-motor, ny 2D-navigationspolygonsupport, meget forbedret Blender Collada -eksportør og et nyt mørkt tema. Den dengang nye 2D-motor inkluderede shaders, materialer, uafhængig Z-bestilling pr. Node, lys, skygger med polygonale okkludere, normal kortlægning og afstandsfeltstøtte til skrifttype. Godot sluttede sig til Software Freedom Conservancy den 4. november 2015.
Godot 2.0 blev udgivet den 23. februar 2016. Nye funktioner inkluderede bedre sceneinstans og arv, en ny filsystembrowser, redigering af flere scener og en forbedret fejlfinding. Dette blev efterfulgt af version 2.1 i august 2016, som introducerede en aktivdatabase, profilering og plugin API.
Version 3.0 blev frigivet den 29. januar 2018 og tilføjede en helt ny PBR -renderer implementeret i OpenGL ES 3.0 , virtual reality -kompatibilitet og C# support (via Mono ). Version 3.0 tilføjede også Bullet physics-motoren ud over motorens indbyggede 3D-fysik-backend og var den første version af Godot, der blev inkluderet i Debian. Godot 3.1 blev frigivet den 13. marts 2019, hvor de mest bemærkelsesværdige funktioner er tilføjelsen af statisk typede § GDScript , et scriptklassystem til GDScript og en OpenGL ES 2.0 -renderer til ældre enheder og mobile enheder. Godot 3.2 blev frigivet den 29. januar 2020, hvor de mest bemærkelsesværdige funktioner er massive dokumentationsforbedringer, stærkt forbedret C# -understøttelse og understøttelse af glTF 2.0 -filer. Hovedudvikleren, Juan Linietsky, brugte det meste af sin tid på at arbejde på en separat Vulkan -filial, der senere ville blive fusioneret til master til 4.0, så arbejdet med 3.2 blev for det meste udført af andre bidragydere. Arbejdet med 3.2 fortsatte som en langsigtet supportudgivelse i et år, herunder Godot 3.2.2 den 26. juni 2020, en stor patchudgivelse, der tilføjede funktioner som OpenGL ES 2.0- batching og C#-understøttelse til iOS. Den 17. marts 2021 blev versioneringsstrategien ændret for bedre at afspejle semantisk versionering, med en 3,3 stabil gren og en 3.x gren til backporting -funktioner til en fremtidig 3.4 -udgivelse. Den 21. april 2021 blev Godot 3.3 frigivet med funktioner såsom ARM -understøttelse på macOS, Android AAB -understøttelse, MP3 -understøttelse, FBX -understøttelse, WebXR -understøttelse og en web -editor.
Den 22. juni 2016 modtog Godot en $ 20.000 Mozilla Open Source Support (MOSS) "Mission Partners" -pris, der skal bruges til at tilføje WebSockets , WebAssemble og WebGL 2.0 support. Senere, med Miguel de Icazas støtte, modtog Godot en donation på $ 24.000 fra Microsoft for at implementere C# som et scriptsprog i Godot.
Den 3. februar 2020 modtog Godot en $ 250.000 Epic Games- pris for at forbedre grafisk gengivelse og motorens indbyggede spiludviklingssprog, GDScript. Den 8. juli 2020 nævnte Juan Linietsky, at Epic Games -prisen vil blive brugt til permanent at ansætte sig selv og George (Marques) i 2 år for at frigive donationsmidler til nye formål.
Den 10. februar 2021 modtog Godot et tilskud på $ 120.000 fra Kefir.
Udgivelseshistorik
Ældre version, stadig vedligeholdt
Aktuel stabil version
Seneste eksempelversion
Fremtidig udgivelse
| Version | Udgivelses dato | Noter | Seneste mindre version |
|---|---|---|---|
| 1.0 | December 2014 | Første stabile udgivelse | |
| 1.1 | Maj 2015 | Tilføjet forbedret autofuldførelse i kodeeditoren, en visual shader-editor, en omskrevet 2D-motor og ny understøttelse af 2D-navigationspolygon. | |
| 2.0 | Februar 2016 | Opdaterede brugergrænseflade og tilføjede en forbedret fejlfinding. | 2.0.4.1 |
| 2.1 | Juli 2016 | Introduceret en aktivdatabase, profilering og plugin API. | 2.1.6 |
| 3.0 | Januar 2018 | Tilføjet en helt ny PBR -renderer og Mono (C#) support. Erstattede fysikmotoren med Bullet . | 3.0.6 |
| 3.1 | Marts 2019 | Forbedret C# support og tilføjet support til glTF 2.0 | 3.1.2 |
| 3.2 | Januar 2020 | En større patchudgivelse. Tilføjet OpenGL ES 2.0 batching | 3.2.3 |
| 3.3 | April 2021 | En større patchudgivelse, der tilføjer nye funktioner såsom MP3 -indlæsning og afspilningsunderstøttelse. | 3.3.4 |
| 3.4 | 4. kvartal 2021 | Næste mindre udgivelse | |
| 4.0 | ~ 2022 | Tilføjer support til Vulkan -grafik -API'en og den nyeste version af Mono. Introducerer SDF-baseret global belysning sammen med flere redaktørændringer og ydelsesoptimeringer. |
Anvendelse
Mange spil af OKAM Studio er blevet lavet ved hjælp af Godot, herunder Dog Mendonça & Pizza Boy , der bruger udvidelsen til eventyrspil Escoria. Derudover er det blevet brugt i West Virginia 's gymnasium, på grund af dets brugervenlighed for ikke-programmerere og det, der beskrives som et "væld af læringsmaterialer, der allerede findes til softwaren".
Fællesskab
Godot som et internationalt projekt har et aktivt samfund rundt om i verden. Nogle fællesskabsmedlemmer er administrator for lokale Godot -grupper. "Godot Francophone", "Godot Engine Russia" og "Godot Iran" er de største Godot lokalsamfund.
Bemærkelsesværdige spil lavet med Godot
- Carol Reed Mysteries (siden 2021)
- City Game Studio
- Commander Keen in Keen Dreams (kun Nintendo Switch -port)
- Grusomhed
- Deponia ( iOS- og PlayStation 4 -porte)
- The Interactive Adventures of Dog Mendonça & Pizzaboy
- Hårdt kodet
- Kingdoms of the Dump
- Rogue State Revolution
- Sonic Colors: Ultimate