Ominaisuudet

Tämän sivun tarkoitus on luetella kaikki ne ominaisuudet joita Godot tällä hetkellä tukee.

Muista

This page lists features supported by the current stable version of Godot (3.4). More features are available in the latest development version (4.0).

Ominaisuudet

Alustat

** Voi ajaa sekä editoria että vietyjä projekteja:**

  • Windows 7 ja tuoreemmat (64- ja 32-bittiset).

  • macOS 10.12 ja uudempi (64-bittinen, x86 ja ARM).

  • Linux (64-bittinen ja 32-bittinen, x86 ja ARM).

    • Binäärit on linkitetty staattisesti ja ne voivat toimia millä tahansa jakelulla jos ne on käännetty riittävän vanhalla perusjakelulla.

    • Viralliset binäärit on käännetty Ubuntu 14.04:lle.

  • HTML5 WebAssemblyn kautta (Firefox, Chrome, Edge, Opera).

Viedyt projektit:

Godot pyrkii olemaan mahdollisimman alustariippumaton, ja se voidaan siirtää uusille alustoille suhteellisen helposti.

Editori

Ominaisuudet:

  • Kohtauspuu muokkain.

  • Built-in script editor.

  • Tuki ulkoisille komentosarjamuokkaimille kuten Visual Studio Code tai Vim.

  • GDScript debuggeri.

    • Säikeiden virheenkorjausta ei ole vielä tuettu.

  • Suorituskyvyn seurantatyökalut.

  • Skriptin uudelleenlataus.

  • Live-kohtauksen muokkaus.

    • Muutokset näkyvät muokkaimessa ja säilyvät käynnissä olevan projektin sulkemisen jälkeen.

  • Etätarkastaja.

    • Muutokset eivät näy muokkaimessa eikä niitä säilytetä käynnissä olevan projektin sulkemisen jälkeen.

  • Kameran reaaliaikainen replikointi.

    • Siirrä muokkaimen sisäistä kameraa ja katso tulos käynnissä olevassa projektissa.

  • Käytä muokkainta kymmenillä yhteisön tuottamilla kielillä.

Liitännäiset:

2d grafiikka

Kaksi renderöintilaitetta käytettävissä:

  • OpenGL ES 3.0 -renderöijä (käyttää OpenGL 3.3:a työpöytäympäristöissä).

    • Huippuluokan visuaalinen ilme. Suositellaan työpöydille.

  • OpenGL ES 2.0 -renderöijä (käyttää OpenGL 2.1:tä työpöytäympäristöissä).

    • Suositeltu mobiili- ja web alustoille.

Ominaisuudet:

  • Sprite-, monikulmio-- ja viivarenderöinti.

    • Korkean tason työkalut viivojen ja monikulmioiden piirtämiseen, kuten Polygon2D ja Line2D.

  • AnimatedSprite apuvälineenä animoitujen spritejen luomiseen.

  • Parallax-kerrokset.

    • Pseudo-3D support including preview in the editor.

  • 2D-valaistus normaalikartoilla.

    • Kovat tai pehmeät varjot.

  • Kirjaisimien renderöinti bittikarttojen avulla (BitmapFont) tai rasterointi FreeTypea käyttäen (DynamicFont).

    • Bittikarttakirjaisimet voidaan viedä BMFontin kaltaisilla työkaluilla.

    • DynamicFont tukee yksivärisiä kirjaisimia sekä värillisiä kirjaimia (esim. emoji-kirjoituksia varten). Tuetut formaatit ovat TTF, OTF ja WOFF1.

    • DynamicFont tukee valinnaisia kirjaimien ääriviivoja, joiden leveys ja väri ovat säädettävissä.

    • Tuki kirjasinten ylinäytteenotolle, jotta kirjaimet pysyvät terävinä korkeammilla resoluutioilla.

  • GPU-pohjaiset partikkelit, joissa on tuki mukautetuille partikkelivarjostimille.

  • CPU-pohjaiset partikkelit.

2D työkalut

  • 2D-kamera, jossa on sisäänrakennettu tasoitus ja vetomarginaali.

  • Path2D-solmu, joka edustaa polkua 2D-avaruudessa.

    • Voidaan piirtää muokkaimessa tai luoda proseduraalisesti.

    • PathFollow2D-solmu, jolla saat solmut seuraamaan Path2D:tä.

  • 2D-geometrian apuluokka.

  • Line2D-solmu teksturoitujen 2D-viivojen piirtämiseen.

2D-fysiikka

Fysiikan rungot:

  • Staattiset kappaleet.

  • Jäykät rungot.

  • Kinemaattiset rungot.

  • Nivelet.

  • Alueet, joilla havaitaan sinne saapuvat tai sieltä poistuvat rungot.

Törmäystunnistus:

  • Sisäänrakennetut muodot: viiva, laatikko, ympyrä, kapseli.

  • Törmäyspolygonit (voidaan piirtää manuaalisesti tai luoda spriteistä muokkaimessa).

3D grafiikka

Kaksi renderöintilaitetta käytettävissä:

  • OpenGL ES 3.0 -renderöijä (käyttää OpenGL 3.3:a työpöytäympäristöissä).

    • Huippuluokan visuaalinen ilme. Suositellaan työpöydille.

    • Optional HDR rendering with sRGB (enabled by default).

    • Uses an optional depth prepass (enabled by default) to reduce the cost of overdraw, which speeds up complex scene rendering.

  • OpenGL ES 2.0 -renderöijä (käyttää OpenGL 2.1:tä työpöytäympäristöissä).

    • Suositeltu mobiili- ja web alustoille.

    • LDR-renderöinti parantaa yhteensopivuutta.

    • Kaikki ominaisuudet eivät ole käytettävissä. Ominaisuudet, jotka ovat käytettävissä vain OpenGL ES 3.0 -renderöijää käytettäessä, on merkitty alla GLES3.

Kamera:

  • Perspektiivikamerat, ortografiset kamerat ja frustum-offset-kamerat.

Physically-based rendering (built-in material features):

  • Seuraa Disney PBR -mallia.

  • Supports Lambert, Lambert Wrap (half-Lambert), Oren-Nayar and Toon diffuse shading modes.

  • Supports Schlick-GGX, Blinn, Phong, Toon and Disabled specular shading modes.

  • Käyttää karheusmetallia ja tukee ORM-tekstuureja.

  • Uses horizon specular occlusion (Filament model) to improve material appearance

  • Normaalimäppäys.

  • Detail mapping for the albedo and normal maps.

  • Etäisyyshäivytys, joka voi käyttää alfa-sekoitusta tai sekoitusta välttääkseen läpinäkyvän putken läpi kulkemisen.

  • Sekoitus voidaan määrittää pikseli- tai objektikohtaisesti.

  • GLES3: Parallaksia/reliefikartoitus automaattisella etäisyyteen perustuvalla tarkkuustasolla.

  • GLES3: Pinnanalainen sironta ja läpäisy.

  • GLES3: Refraction with support for material roughness (resulting in blurry refraction). On GLES2, refraction is still functional but lacks support for material roughness.

  • GLES3: Läheisyyden haalistuminen (pehmeät hiukkaset).

Reaaliaikainen valaistus:

  • Suuntavalot (aurinko/kuu). Jopa 4 per kohtaus.

  • Monisuuntaiset valot.

  • Kohdevalot, joissa on säädettävä kartiokulma ja vaimennus.

  • Specular energy can be adjusted on a per-light basis.

  • GLES3: Lighting is done with a single-pass forward approach. By default, up to 32 omni light and 32 spot lights can be displayed per mesh resource. If needed, this limit can be increased at the cost of increased shader compilation times and lower performance. GLES2 uses a multi-pass forward approach to lighting, which doesn't have a limit on the number of lights but is slower with many lights.

Varjokartoitus:

  • Suuntavalo: Ortogonaalinen (nopein), PSSM 2-split ja 4-split. Tukee sekoitusta jakojen välillä.

  • OmniLight: Kaksoisparaboloidi (nopea) tai kuutiokartta (hitaampi mutta tarkempi). Tukee värillisiä projektoritekstuureja panoraamojen muodossa.

  • SpotLight: Yksi tekstuuri.

Maailmanlaajuinen valaistus epäsuoralla valaistuksella:

  • Paistetut valokartat (nopea, mutta niitä ei voi päivittää suorituksen aikana).

    • Tukee vain epäsuoran valon tai sekä suoran, että epäsuoran valaistuksen paistamista. Paistotilaa voidaan säätää valaisinkohtaisesti hybridivalojen paistoasetusten mahdollistamiseksi.

    • Tukee dynaamisten kohteiden valaistusta automaattisella kahdeksikkopohjaisella järjestelmällä. Manuaalista anturin sijoittelua ei tarvita.

    • Valokartat paistetaan suorittimella.

  • GLES3: GI-anturit (hitaampi, puolireaaliaikainen). Tukee heijastuksia.

Heijastukset:

  • Fast baked reflections or slow real-time reflections using ReflectionProbe. Parallax box correction can optionally be enabled.

  • Heijastustekniikoita voidaan sekoittaa yhteen tarkkuuden tai skaalautuvuuden lisäämiseksi.

  • GLES3: Voxel-pohjaiset heijastukset (kun käytetään GI-anturimia).

  • GLES3: Näyttötilan heijastukset.

Taivas:

  • Panoraamataivas (HDRI:n avulla).

  • Proseduraalinen taivas.

Sumu:

  • Syvyyssumu, jossa on säädettävä vaimennuskäyrä.

  • Korkeussumu (lattia tai katto) säädettävällä vaimennuksella.

  • Tuki automaattiselle syvyyssumuvärille kameran suunnasta riippuen (vastaamaan auringon väriä).

  • Valinnainen läpäisykyky, jotta valot näkyvät paremmin sumussa.

Partikkelit:

  • GLES3: GPU-pohjaiset hiukkaset, jotka tukevat mukautettuja hiukkasvarjostimia.

  • CPU-pohjaiset partikkelit.

Jälkikäsittely:

  • Tonemapping (Lineaarinen, Reinhard, Filmic, ACES).

  • GLES3: Automaattiset valotuksen säädöt näyttöikkunan kirkkauden perusteella.

  • GLES3: Syväterävyys läheltä ja kaukaa.

  • GLES3: Ruututilan ambient-peitto.

  • GLES3: Valinnainen kaistanpoisto värinauhan välttämiseksi (tehokas, kun HDR-hahmonnus on käytössä).

  • Hehku/kukinta valinnaisella bicubic-skaalaustoiminnolla ja useilla sekoitustiloilla: Näyttö, Pehmeä valo, Lisää, Korvaa.

  • Värikorjaus yhdellä ulottuvuudella.

  • Kirkkauden, kontrastin ja kylläisyyden säädöt.

Tekstuurisuodatus:

  • Lähin, bilineaarinen, trilineaarinen tai anisotrooppinen suodatus.

Tekstuurin pakkaus:

  • Lossless or lossy WebP (does not save VRAM; only reduces storage size).

  • S3TC (only supported on desktop platforms).

  • ETC1 (suositellaan käytettäessä GLES2-renderöijää).

  • GLES3: BPTC korkealaatuista pakkausta varten (ei tueta macOS:ssä).

  • GLES3: ETC2 (ei tuettu macOS:ssä).

Anti-aliasing:

  • Moninäytteinen antialiasointi (MSAA).

  • Fast approximate antialiasing (FXAA).

Performance:

  • Occlusion culling with rooms and portals. Supports gameplay notifications with primary and secondary visibility to disable AI/physics processing for nodes that don't need it.

  • Real-time occluder spheres. Not as effective as rooms and portals (and doesn't support gameplay notifications), but easier to set up.

Muista

Most of the effects listed above can be adjusted for better performance or to further improve quality. This can be helpful when using Godot for offline rendering.

3D tools

  • Built-in meshes: cube, cylinder/cone, (hemi)sphere, prism, plane, quad.

  • Työkaluja proseduraalisen geometrian luontiin.

  • Constructive solid geometry (intended for prototyping).

  • Path3D node to represent a path in 3D space.

    • Voidaan piirtää muokkaimessa tai luoda proseduraalisesti.

    • PathFollow3D node to make nodes follow a Path3D.

  • 3D geometry helper class.

  • Support for exporting the current scene as a glTF 2.0 file from the editor.

3D physics

Fysiikan rungot:

  • Staattiset kappaleet.

  • Jäykät rungot.

  • Kinemaattiset rungot.

  • Vehicle bodies (intended for arcade physics, not simulation).

  • Nivelet.

  • Soft bodies.

  • Ragdolls.

  • Alueet, joilla havaitaan sinne saapuvat tai sieltä poistuvat rungot.

Törmäystunnistus:

  • Built-in shapes: cuboid, sphere, capsule, cylinder.

  • Generate triangle collision shapes for any mesh from the editor.

  • Generate one or several convex collision shapes for any mesh from the editor.

Shaders

  • 2D: Custom vertex, fragment, and light shaders.

  • 3D: Custom vertex, fragment, light, and sky shaders.

  • Text-based shaders using a shader language inspired by GLSL.

  • Visuaalinen sävytineditori.

    • Tuki visuaalisen sävyttimen liitännäisille.

Skriptaus

General:

  • Object-oriented design pattern with scripts extending nodes.

  • Signals and groups for communicating between scripts.

  • Support for cross-language scripting.

  • Many 2D and 3D linear algebra data types such as vectors and transforms.

GDScript:

C#:

  • Packaged in a separate binary to keep file sizes and dependencies down.

  • Uses Mono 6.x.

    • Full support for the C# 7.0 syntax and features.

  • Tukee kaikkia alustoja.

  • Using an external editor is recommended to benefit from IDE functionality.

VisualScript:

GDNative (C, C++, Rust, D, ...):

  • When you need it, link to native libraries for higher performance and third-party integrations.

    • For scripting game logic, GDScript or C# are recommended if their performance is suitable.

  • Official bindings for C and C++.

    • Use any build system and language features you wish.

  • Maintained D, Kotlin, Python, Nim, and Rust bindings provided by the community.

Äänet

Ominaisuudet:

  • Mono, stereo, 5.1 and 7.1 output.

  • Non-positional and positional playback in 2D and 3D.

    • Optional Doppler effect in 2D and 3D.

  • Support for re-routable audio buses and effects with dozens of effects included.

  • Listener2D and Listener3D nodes to listen from a position different than the camera.

  • Audio input to record microphones with real-time access using the AudioEffectCapture class.

  • MIDI-syöte.

    • No support for MIDI output yet.

APIs used:

  • Windows: WASAPI.

  • macOS: CoreAudio.

  • Linux: PulseAudio or ALSA.

Tuo

Formats:

  • Kuvat: Katso Kuvien tuonti.

  • Audio:

    • WAV with optional IMA-ADPCM compression.

    • Ogg Vorbis.

    • MP3.

  • 3D scenes:

    • glTF 2.0 (recommended).

    • ESCN (suora vienti Blenderistä).

    • FBX (experimental, static meshes only).

    • Collada (.dae).

    • Wavefront OBJ (static scenes only, can be loaded directly as a mesh).

  • 3D meshes use Mikktspace to generate tangents on import, which ensures consistency with other 3D applications such as Blender.

Syöte

  • Input mapping system using hardcoded input events or remappable input actions.

    • Axis values can be mapped to two different actions with a configurable deadzone.

    • Use the same code to support both keyboards and gamepads.

  • Näppäimistösyöte.

    • Keys can be mapped in "physical" mode to be independent of the keyboard layout.

  • Hiirisyöte.

    • The mouse cursor can be visible, hidden, captured or confined within the window.

    • When captured, raw input will be used on Windows and Linux to sidestep the OS' mouse acceleration settings.

  • Gamepad input (up to 8 simultaneous controllers).

  • Pen/tablet input with pressure support.

  • Gamepad, keyboard and mouse input support are also available on Android.

Networking

  • Low-level TCP networking using StreamPeer and TCP_Server.

  • Low-level UDP networking using PacketPeer and UDPServer.

  • Low-level HTTP requests using HTTPClient.

  • High-level HTTP requests using HTTPRequest.

    • Supports HTTPS out of the box using bundled certificates.

  • High-level multiplayer API using UDP and ENet.

    • Automatic replication using remote procedure calls (RPCs).

    • Supports unreliable, reliable and ordered transfers.

  • WebSocket client and server, available on all platforms.

  • WebRTC client and server, available on all platforms.

  • Support for UPnP to sidestep the requirement to forward ports when hosting a server behind a NAT.

Internationalization

  • Full support for Unicode including emoji.

  • Store localization strings using CSV or gettext.

  • Use localized strings in your project automatically in GUI elements or by using the tr() function.

  • Support for right-to-left typesetting and text shaping planned in Godot 4.0.

Windowing and OS integration

  • Move, resize, minimize, and maximize the window spawned by the project.

  • Change the window title and icon.

  • Request attention (will cause the title bar to blink on most platforms).

  • Koko näytön tila.

    • Doesn't use exclusive fullscreen, so the screen resolution can't be changed this way. Use a Viewport with a different resolution instead.

  • Borderless window (fullscreen or non-fullscreen).

  • Ability to keep the window always on top.

  • Transparent window with per-pixel transparency.

  • Global menu integration on macOS.

  • Execute commands in a blocking or non-blocking manner.

  • Open file paths and URLs using default or custom protocol handlers (if registered on the system).

  • Komentoriviargumenttien jäsennys.

  • Headless/server binaries can be downloaded for Linux and compiled for macOS. Any binary can be used without a window using the --no-window command line argument.

Mobile

  • In-app purchases on Android and iOS.

  • Support for advertisements using third-party modules.

  • Support for subview embedding on Android.

XR support (AR and VR)

  • Support for ARKit on iOS out of the box.

  • Support for the OpenXR APIs.

    • Includes support for popular headsets like the Meta Quest and the Valve Index.

  • Support for the OpenVR APIs.

GUI system

Godot's GUI is built using the same Control nodes used to make games in Godot. The editor UI can easily be extended in many ways using add-ons.

Nodes:

  • Painikkeet.

  • Checkboxes, check buttons, radio buttons.

  • Text entry using LineEdit (single line) and TextEdit (multiple lines).

  • Dropdown menus using PopupMenu and OptionButton.

  • Scrollbars.

  • Selitteet.

  • RichTextLabel for text formatted using BBCode.

  • Trees (can also be used to represent tables).

  • Color picker with RGB and HSV modes.

  • Containers (horizontal, vertical, grid, flow, center, margin, aspect ratio, draggable splitter, ...).

  • Controls can be rotated and scaled.

Sizing:

  • Anchors to keep GUI elements in a specific corner, edge or centered.

  • Containers to place GUI elements automatically following certain rules.

  • Scale to multiple resolutions using the 2d or viewport stretch modes.

  • Support any aspect ratio using anchors and the expand stretch aspect.

Theming:

  • Sisäänrakennettu teemaeditori.

    • Generate a theme based on the current editor theme settings.

  • Procedural vector-based theming using StyleBoxFlat.

    • Supports rounded/beveled corners, drop shadows, per-border widths and antialiasing.

  • Texture-based theming using StyleBoxTexture.

Godot's small distribution size can make it a suitable alternative to frameworks like Electron or Qt.

Animaatio

  • Direct kinematics and inverse kinematics.

  • Tween node to easily perform procedural animations by code.

  • Support for animating any property with customizable interpolation.

  • Support for calling methods in animation tracks.

  • Support for playing sounds in animation tracks.

  • Support for Bézier curves in animation.

File formats

  • Scenes and resources can be saved in text-based or binary formats.

    • Text-based formats are human-readable and more friendly to version control.

    • Binary formats are faster to save/load for large scenes/resources.

  • Read and write text or binary files using File.

    • Can optionally be compressed or encrypted.

  • Read and write JSON files.

  • Read and write INI-style configuration files using ConfigFile.

    • Can (de)serialize any Godot datatype, including Vector2/3, Color, ...

  • Read XML files using XMLParser.

  • Pack game data into a PCK file (custom format optimized for fast seeking), into a ZIP archive, or directly into the executable for single-file distribution.

  • Export additional PCK files that can be read by the engine to support mods and DLCs.

Sekalaista

  • Low-level access to servers which allows bypassing the scene tree's overhead when needed.

  • Command line interface for automation.

    • Export and deploy projects using continuous integration platforms.

    • Shell completion scripts are available for Bash, zsh and fish.

  • Support for C++ modules statically linked into the engine binary.

  • Engine and editor written in C++03.

    • Can be compiled using GCC, Clang and MSVC. MinGW is also supported.

    • Friendly towards packagers. In most cases, system libraries can be used instead of the ones provided by Godot. The build system doesn't download anything. Builds can be fully reproducible.

    • Godot 4.0 will be written in C++17.

  • Licensed under the permissive MIT license.

Katso myös

The Godot proposals repository lists features that have been requested by the community and may be implemented in future Godot releases.