Godot Engine

from Wikipedia, the free encyclopedia
Godot

Godot logo.svg
Basic data

developer Juan Linietsky, Ariel Manzur
the Godot community
Publishing year 2007
Current  version 3.2.2
( June 26, 2020 )
operating system Linux (X11), Windows (Win32 + UWP), macOS , FreeBSD , OpenBSD , Haiku (development and target platforms), Android , iOS (target platforms only), Web ( WebAssembly , WebGL 2.0 )
programming language C ++ , GDScript, C #
category Game engine
License MIT license
German speaking Yes
godotengine.org

Godot is a free game engine . It consists of a graphic editor in which game elements are organized in a tree structure and arranged on a 2D or 3D canvas. Game logic is usually implemented in GDScript , its own integrated scripting language based on Python and specially adapted to the needs of game engines.

History and creation

After many years of internal development and use of OKAM-Studio's Godot engine, the entire source code of the project was released on GitHub under the MIT license in February 2014 . Under the direction of Juan Linietsky and Ariel Manzur and with the help of a growing community of external interested parties, the final version 1.0 was published on December 15, 2014. The first major stable update that greatly expanded the 2D engine was released as version 1.1 on May 21, 2015.

Version 2.0 was published on February 23, 2016 and contains a user interface that has been revised in many places, which greatly simplifies working on several scenes with tabs , an improved debugger (including debugging on external hardware) and persistent live editing (The editor can intervene in a running game and changes made remain after the game is over). At the same time, a new, revised official website was presented. Version 2.1 revised the user interface again (improved ergonomics, localizations and customization options) and offers additional functions such as an integrated profiler , support for OTF and TTF fonts, improvements to live editing and a built-in function to load media content and projects from the Internet.

Version 3.0, released on January 29, 2018 after a year and a half of development, marks the first stable version of the Godot engine after large parts were written from scratch. A lot of work has been put into the 3D engine, which now handles full principle BSDF rendering, global lighting (GI probes and lightmaps) and GPU-calculated particle effects. In addition, many graphic effects have been integrated and support for external file formats has been expanded. With GDNative Godot offers an interface to connect third party libraries, among other things C # is now supported as programming language by Mono . In parallel to the 3D engine, the audio engine has also been completely redeveloped and now offers audio bus management, position-dependent audio, audio effects and 5.1 / 7.1 speaker support. Other changes include support for VR / AR , a new network API including IPv6 support, integration of the bullet physics engine, automatic asset import, improvements to the user interface and GDScript, significant improvements to the documentation and much more.

Technical characteristics

The scene system

In Godot, scenes are organized in a tree structure . The elements are called nodes and each have exactly one parent node and any number of child nodes. All objects in Godot are nodes and a scene is the sum of all nodes and their arrangement in the scene tree ( scenetree ). This structure achieves great flexibility, since in Godot sub-scenes can also be inserted as nodes at any point in the scene tree and thus a high level of abstraction and high order can be achieved. From version 2.0 it is also possible to build up an inheritance hierarchy between scenes. Changes in the basic scene are immediately available in all derived scenes.

programming

extends RichTextLabel 

var label_text = "Hallo Welt"

func _ready():
   self.add_text(label_text)
GDScript code sample
VisualScript code sample

The specially developed GDScript is used as the scripting language in Godot . GDScript is syntactically very similar to Python , but has been partially adapted to be better integrated into the engine. Scripts can thus be assigned directly to the nodes that were created in the editor and variables can be exported from the source text to the editor. The integrated editor component has syntax highlighting , automatic indentation and an advanced auto-completion system . In addition to GDScript, programs can also be written in C ++ . A special script language based on GLSL has been integrated for shader programming . An integrated debugger is available for error handling and performance measurement . From version 3.0 GDNative is included in Godot, an interface that allows external libraries to be connected to Godot without having to recompile Godot. This also provides support for other programming languages, the most prominent example of which is C # . There is also the option of defining programming logic graphically using flow charts using VisualScript .

Rendering

Godot primarily uses an OpenGL ES 3.0 renderer in 2D and 3D . Alternatively, OpenGL ES 2.0 can also be used due to some compatibility and performance deficiencies. Version 4.0 will also support Vulkan , which will eventually replace OpenGL ES 3.0. Materials can be defined in the editor using properties such as texture , normal map , specularity and volume scattering , or they can be written from scratch as shaders in a simplified GLSL- like language. Lights use global lighting and can be dynamic or pre-calculated. Post-processing effects such as fog, depth of field and HDR are also supported.

Animation system

Godot has a deeply integrated animation system. If you add the node animation to the scene tree , all the attributes of the other nodes in the scene tree can be changed at runtime using keyframes . Furthermore, functions can also be specifically called up with animations, which allows a lot of programming logic to be transferred to the editor.

Separate engine for 2D and 3D

In Godot, 2D applications can be created without any knowledge of 3D programming, as the 2D engine runs separately and is not a projection of the 3D engine. This also applies to the integrated physics engines (their APIs being kept the same). If necessary, 2D scenes can still be embedded in the 3D engine. For the most part, 3D scenes can be created in external 3D graphics software (including animations). A large library of GUI elements (called Control ) can be used in both 2D and 3D. The integrated physics engine works in pixel coordinates, not in the metric system .

Platform independence

Godot is one of the few game engines that allows game development not only in Windows but also entirely in Linux , Mac OS X and other operating systems. In addition to the desktop operating systems mentioned, games created can also be exported to Android and as HTML5 web applications. Furthermore, there are project-external export templates with different stability and license for PlayStation 3 , PlayStation Vita , Nintendo 3DS , Windows Runtime , iOS and Nintendo Switch .

documentation

Godot provides an integrated documentation of all classes and functions directly in the editor. An illustrative introduction and detailed instructions can be found on the project website. The official website also has a community-organized question-and-answer system (including generated FAQ ), a forum and a showcase system, all of which are available for learning.

Web links

Individual evidence (English)

  1. godotengine.org .
  2. a b c Official documentation for GD-Script
  3. github.com . (accessed on September 29, 2016).
  4. First entry on the project page
  5. Godot engine released as version 1.0
  6. Godot Engine 1.1 released
  7. Godot engine reaches stable version 2.0
  8. Godot reaches stable version 2.1
  9. Godot Engine 3.0 released
  10. Official documentation of the Shading Language
  11. Juan Linietsky: Switching to Vulkan (and ES 2.0) instead of OpenGL ES 3.0. Retrieved August 11, 2019 .
  12. Juan Linietsky: Vulkan Interim Report # 1. Retrieved August 11, 2019 .