Godot motor | |
---|---|
Type | Spil motor |
Forfatter | Juan Liniecki [d] og Ariel Manzur [d] |
Udvikler | Udvikler medforfatterskab |
Skrevet i | C++ [2] og C [2] |
Operativ system | GNU/Linux , macOS , Microsoft Windows , BSD , iOS , Android , Universal Windows Platform , HTML5 , WebAssembly , Xbox og Windows Phone |
Første udgave | 14. januar 2014 |
nyeste version |
|
beta version | 4.0 beta 3 (14. oktober 2022) |
Læsbare filformater | BMP , DirectDraw Surface , OpenEXR , RGBE billedformat [d] , JPEG [d] , PNG , Truevision TGA , SVG , WebP , WAV , Vorbis , glTF [d] , FBX , COLLADA og Obj filudvekslingsformat |
Stat | Aktiv |
Licens | MIT-licens |
Internet side | godoengine.org |
Mediefiler på Wikimedia Commons |
Godot Engine ( fr. gó-doh [3] ) er en open source 2D- og 3D -spilmotor på tværs af platforme under MIT-licensen , som er udviklet af Godot Engine Community. Inden den blev offentliggjort som open source , blev motoren brugt internt af nogle virksomheder i Latinamerika . [4] Udviklingsmiljøet kører på Linux , macOS , Windows , BSD og Haiku , og kan eksportere spilprojekter til pc , konsol , mobil og webplatforme .
Godots mål er at være det mest integrerede og selvstændige miljø til spiludvikling . Miljøet giver udviklere mulighed for at skabe spil fra bunden uden at bruge andre værktøjer, bortset fra dem, der er nødvendige for at skabe spilindhold (grafik, musiknumre osv.). Programmeringsprocessen kræver heller ikke eksterne værktøjer (selvom hvis du skal bruge en ekstern editor, kan dette gøres relativt nemt).
Motorens overordnede arkitektur er bygget op omkring konceptet med et træ af nedarvede "scener". Hvert element i scenen ( node ) kan til enhver tid selv blive en fuldgyldig scene. Derfor kan du under udviklingen nemt ændre hele projektets arkitektur, udvide dets elementer i enhver retning og arbejde med komplekse scener på niveau med simple abstraktioner.
Alle spilressourcer, fra scripts til grafiske aktiver og spilscener, gemmes i projektmappen som almindelige filer og er ikke en del af projektets komplekse database. Ressourcer, der ikke er komplekse data, gemmes i almindelige tekstformater (f.eks. scripts og scener i modsætning til modeller og teksturer). Disse løsninger gør det meget nemmere for forskellige udviklingsteams at arbejde med versionskontrolsystemer . [5]
Spillet er skabt ved hjælp af sit eget dynamiske script-programmeringssprog på højt niveau kaldet GDScript , hvis syntaks minder vagt om Python-sproget . Forskellen fra Python er først og fremmest den obligatoriske definition af omfanget af en variabel gennem nøgleordet var og optimering af sproget til behovene i scenesystemet og motorknuderne. Det er muligt at bruge scripting i C++/D/Rust og andre sprog gennem GDNative-systemet. Der er også en version af Godot med C# sprogunderstøttelse (Godot Engine Mono Version), men i øjeblikket er den stadig ved at blive færdiggjort og ustabil. Godot-udviklerne har udtalt, at de forsøgte at integrere flere eksterne scriptsprog (nemlig Lua , Python og Squirrel ), før de besluttede at bruge deres eget scriptsprog. Og kun dette gjorde det muligt at opnå det nødvendige niveau af optimering af motoren og integration i udviklingsmiljøet. [6]
Godot har både sin egen integrerede script-editor med kodefuldførelse, auto-indentering, syntaksfremhævning , hurtig adgang til den fulde motor- API og nogle andre funktioner, samt muligheden for at åbne script-kildekode, redigere og fejlsøge den i tredjepart IDE'er og kodeeditorer. Systemet har også en fleksibel debugger , en profiler, en brugt videohukommelsesmonitor og en ekstern sceneeditor til at styre elementer i realtid.
Fra version 3.0 understøttes også visuel programmering i Visual Scripting.
Grafiksystemet til alle understøttede platforme er baseret på OpenGL ES 3.0. Gengivelse inkluderer teknologier, ordreuafhængig gennemsigtighed, normal kortlægning , spekularitet, fuldskærmsposteffekter som FXAA , bloom , DOF , HDR , gammakorrektion , afstandståge, dynamiske skygger baseret på skyggekort og andre.
For at oprette shaders bruges et forenklet shader-sprog, som er en tæt undergruppe af GLSL -sproget . Shaderen kan derefter bruges i en materiale, skærmeffekt til 2d-gengivelse. Shaderen er opdelt i top- og fragmentsektioner. Det er også muligt fuldt ud at oprette shaders i den visuelle editor.
Godot har en separat 2D -grafikmotor, der kan bruges uafhængigt af 3D . Eksempler på 2D-funktioner er GUI (Godot-arbejdsbordet er det bedste eksempel på GUI-funktioner), sprites , flisegrafik (firkantet, isometrisk og native format), parallakserulning, 2D-belysning og skygger (punkttype), partikelsystem og nogle andre funktioner. Udvikleren kan nemt kombinere og blande 2D og 3D i begge retninger (ved hjælp af Viewport Node).
Udviklermiljøet har et indbygget animationssystem og kontroller til at arbejde med skeletanimation , formanimation og klippescener. Og takket være det node-baserede design af motoren, gennem animationseditoren, kan du generelt animere enhver parameter, der måtte være til stede i spillet. [7] Det er også muligt at foretage opkald til enhver af dine egne funktioner fra en animationssportast, hvilket gør det meget nemmere at animere komplekse scener.
Fysikmotoren til 2D og 3D blev udviklet fra bunden, hvilket var med til at opnå det nødvendige niveau af optimering af det fysiske delsystem. Implementeret raycasting , kollisionsdetektion , stiv kropsdynamik og forbindelser mellem dem. Der er også en brugerdefineret implementering af en kinematisk karaktercontroller og en 3D-køretøjscontroller med et forenklet affjedringssystem .
I slutningen af udviklingen kan projektet eksporteres til forskellige målplatforme, som kan opdeles i pc, mobil, web og konsoller. Du kan indstille forskellige parametre for forskellige platforme, såsom hvordan data gemmes (og beskyttes om nødvendigt), teksturkomprimering, opløsning og nogle unikke indstillinger, der er specifikke for en bestemt platform (f.eks. opløsninger til Android ).
Nuværende platformsunderstøttelse inkluderer Windows (og UWP OS ), MacOS , X11 ( Linux , BSD ), Android OS , iOS , HTML5 . Det er også muligt at eksportere til andre platforme manuelt ved at kompilere motoren til målplatformens SDK . Godots brug af nogle få eksterne biblioteker gør denne proces lettere.
Programmørerne Juan Linietsky og Ariel Manzur startede udviklingen af motoren i 2007, og efter et stykke tid blev den allerede brugt som et lukket softwareprodukt i nogle virksomheder. I februar 2014 besluttede udviklerne at gøre teknologien til åben kildekode og postede motorens kildekode under MIT-licensen på GitHub under navnet Godot.
Den 15. december 2014 nåede motoren version 1.0, den første stabile version af det nye produkt. Det tilføjede yderligere shaders, navimesh og lightmapping. [9]
Den 4. november 2015 sluttede Godot-projektet sig til Software Freedom Conservancy. [ti]
Den 23. februar 2016 blev stabil version 2.0 frigivet. Hovedvægten i dens udvikling blev lagt på en betydelig forøgelse af bekvemmeligheden ved at arbejde i motoren gennem arbejdsmiljøet. [elleve]
Den 22. juni 2016 blev Godot tildelt $20.000 af Mozilla Open Source Support (MOSS) "Mission Partners" for at tilføje support til WebSocket , WebAssembly og WebGL 2.0 til projektet. [12]
Juan Lignetski sagde ved en af præsentationerne, at navnet "Godot" er en direkte reference til Samuel Becketts skuespil " Waiting for Godot ". Det karakteriserer det uophørlige ønske om at tilføje nye funktioner til motoren, som konstant vil bringe sin tilstand tættere og tættere på det ideelle værktøj, men denne proces vil ikke blive afsluttet. [13]
Nogle af spillene skabt af OKAM Studio
Nogle af spillene skabt af fællesskabet [14]
![]() | |
---|---|
Foto, video og lyd | |
Tematiske steder |
Spilmotorer | |||||||
---|---|---|---|---|---|---|---|
Grafisk | Ledig GLScene Horde3D Irrlicht OGRE OpenSceneGraph Proprietære Outra | ||||||
Fysisk | Ledig Box2D Kugle Jordegern newton O.D.E. Tokamak Proprietære DMM Havok Fysik PhysX | ||||||
generelle formål |
| ||||||
Specialiseret |
| ||||||
Liste over spilmotorer |