Jump to content

Godot (game engine)

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by MewMeowth (talk | contribs) at 06:13, 23 June 2021 (CE). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Godot Engine
Original author(s)Juan Linietsky, Ariel Manzur
Initial release14 January 2014; 10 years ago (2014-01-14)[1]
Stable release
4.3[2] Edit this on Wikidata / 15 August 2024; 9 September 2024; Error: first parameter cannot be parsed as a date or time. (15 August 2024; 9 September 2024)
Repository
Written inC++[3]
Operating systemMicrosoft Windows, macOS, Linux, FreeBSD, NetBSD, OpenBSD,[4]
PlatformSee § Supported platforms
Available inMultilingual
TypeGame engine
LicenseMIT License
Websitegodotengine.org Edit this at Wikidata

Godot[a] (/ɡəˈdoʊ/ ) is a cross-platform, free and open-source game engine released under the MIT license. It was initially developed by Argentine software developers Juan Linietsky and Ariel Manzur[5] for several companies in Latin America prior to its public release.[6] The development environment runs on multiple operating systems including Linux, BSDs, macOS, and Microsoft Windows. It is designed to create both 2D and 3D games targeting PC, mobile, and web platforms.

Features

Godot aims to offer a fully integrated game development environment. It allows developers to create a game, needing no other tools beyond those used for content creation (visual assets, music, etc.). The engine's architecture is built around the concept of a tree of "nodes". Nodes are organized inside of "scenes", which are reusable, instanceable, inheritable, and nestable groups of nodes. All game resources, including scripts and graphical assets, are saved as part of the computer's file system (rather than in a database). This storage solution is intended to facilitate collaboration between game development teams using software version control systems.[7]

Supported platforms

The engine supports deployment to multiple platforms and allows specification of texture compression and resolution settings for each platform. Even though Godot Website provides binaries only for Linux, macOS and Microsoft Windows, its open-source nature allows us to use the editor on multiple OSs like BSD's by tweaking it. The Engine supports multiple platforms including desktop and mobile. Currently supported platforms as of Godot 4.3[2] Edit this on Wikidata are

There is also a web-based[9] editor hosted by the Godot community available for testing purposes. Even though the Godot engine can be run on consoles, Godot does not support it officially as it is an open-source project rather than a licensed company and they cannot publish platform-specific code under open-source license. However, it is still possible to port games to consoles thanks to services provided by third-party companies.[10]

Scripting

Godot supports a variety of programming languages for making games, including the integrated language GDScript, C++[11] and C#. Additionally, the engine includes GDNative, a facility for creating bindings with other languages. Officially-supported GDNative languages include C and C++.[12] Community-supported languages include Rust, Nim, JavaScript, Haskell, Clojure, Swift, and D.[13] Visual coding is also supported, via the built-in language VisualScript, designed to be a visual equivalent to GDScript.[14]

The Godot editor includes a text editor with auto indentation, syntax highlighting and code completion. It also features a debugger with the ability to set breakpoints and program stepping.[15]

GDScript

GDScript
ParadigmObject-oriented
DeveloperGodot Community
Typing disciplineDynamic, Duck
OSCross-platform (multi-platform)
Filename extensions.gd
Websitedocs.godotengine.org
Influenced by
C, C++, Python
Screenshot of editing a GDScript file using the built-in script editor of Godot 3.3

Godot has its own built-in scripting language, GDScript,[15] a high-level, dynamically typed programming language which is syntactically similar to Python. Unlike Python, GDScript is optimized for Godot's scene-based architecture and can specify strict typing of variables. Godot's developers have stated that many alternative third-party scripting languages such as Lua, Python, and Squirrel were tested before deciding that using a custom language allowed for superior optimization and editor integration. In version 4.0, a new feature called Typed array[16] was implemented on GDScript. This allows users to easily change a regular array to typed and vice-versa without changing much code.[15]

A simple "Hello world" program can be written like so:

func _ready():
	print("Hello World")

More complex programs, such as this one generating a Fibonacci sequence, are also possible:

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))

Rendering

Godot's graphics engine uses OpenGL ES 3.0 for all supported platforms; otherwise, OpenGL ES 2.0 is used. Future support for Vulkan is being developed, that also includes the possibility of support for Metal using MoltenVK.[17] The engine supports normal mapping, specularity, dynamic shadows using shadow maps, baked and dynamic Global Illumination, and full-screen post-processing effects like bloom, DOF, HDR, and gamma correction. A simplified shader language, similar to GLSL, is also incorporated. Shaders can be used for materials and post-processing. Alternatively, they can be created by manipulating nodes in a visual editor.

Godot also includes a separate 2D graphics engine that can operate independently of the 3D engine. The 2D engine supports features such as lights, shadows, shaders, tile sets, parallax scrolling, polygons, animations, physics, and particles. It is also possible to mix 2D and 3D using a 'viewport node'.

Other features

Godot contains an animation system with a GUI for skeletal animation, blending, animation trees, morphing, and real-time cutscenes. Almost any variable defined or created on a game entity can be animated.[18] The engine uses Bullet for 3D physics simulation.[19]

Additional features include:

History

2D Panel in Godot 3.2
Screenshot of development build of Godot 4.0 running using Vulkan(dev build, May 10, 2021

Godot's development was started by Juan 'reduz' Linietsky and Ariel 'punto' Manzur in 2007.[20][21] Linietsky stated in a presentation that the name "Godot" was chosen due to its relation to Samuel Beckett's play Waiting for Godot, as it represents the never-ending wish of adding new features in the engine, which would get it closer to an exhaustive product, but never will.[22] In February 2014, the source code for Godot was released to the public on GitHub under the MIT License.[23]

On 15 December 2014, Godot reached version 1.0, marking the first stable release and the addition of lightmapping, navmesh support, and more shaders.[24] Version 1.1 was released on 21 May 2015, adding improved auto-completion in the code editor, a visual shader editor, a new API to the operating system for managing screens and windows, a rewritten 2D engine, new 2D navigation polygon support, a much improved Blender Collada exporter, and a new dark theme.[25] The then-new 2D engine included shaders, materials, independent Z ordering per node, lights, shadows with polygonal occluders, normal mapping, and distance-field font support. Godot joined the Software Freedom Conservancy on 4 November 2015.[26]

Godot 2.0 was released on 23 February 2016. New features included better scene instancing and inheritance, a new file system browser, multiple scene editing, and an enhanced debugger.[27][6] This was followed by version 2.1 in August 2016, which introduced an asset database, profiler, and plugin API.[28]

Version 3.0 was released on 29 January 2018, adding a brand new PBR renderer implemented in OpenGL ES 3.0, virtual reality compatibility, and C# support (via Mono).[19] Version 3.0 also added the Bullet physics engine in addition to the engine's built-in 3D physics back end and was the first version of Godot to be included in Debian. Godot 3.1 was released on 13 March 2019, with the most notable features being the addition of statically typed § GDScript, a script class system for GDScript and an OpenGL ES 2.0 renderer for older devices and mobile devices.[29] Godot 3.2 was released on 29 January 2020, with the most notable features being massive documentation improvements, greatly improved C# support, and support for glTF 2.0 files.[30] The lead developer, Juan Linietsky, spent most of his time working on a separate Vulkan branch that would later be merged into master for 4.0,[31] so work on 3.2 was mostly done by other contributors. Work on 3.2 continues as a long-term support release,[30] including Godot 3.2.2 on 26 June 2020, a large patch release that added features such as OpenGL ES 2.0 batching and C# support for iOS.[32]

On 22 June 2016, Godot received a $20,000 Mozilla Open Source Support (MOSS) “Mission Partners” award to be used to add WebSockets, WebAssembly and WebGL 2.0 support.[8] Later, with Miguel de Icaza's support, Godot received a $24,000 donation from Microsoft to implement C# as a scripting language in Godot.[33]

On 3 February 2020, Godot received a $250,000 Epic Games award to improve graphics rendering and the engine's built-in game development language, GDScript.[34] On July 8, 2020, Juan Linietsky mentioned that the Epic Games award will be used to permanently hire himself and George (Marques) for 2 years in order to free donation funds for new purposes.[35]

On 10 February 2021, Godot received a $120,000 grant from Kefir.[36]

Release history

Legend:
Old version
Old version, still maintained
Current stable version
Latest preview version
Future release
Godot Engine release history
Version Release date[37] Notes Latest minor version
Old version, no longer maintained: 1.0 December 2014 First stable release
Old version, no longer maintained: 1.1 May 2015 Added improved auto-completion in the code editor, a visual shader editor, a rewritten 2D engine, and new 2D navigation polygon support.
Old version, no longer maintained: 2.0 February 2016 Updated UI and added an enhanced debugger. 2.0.4.1
Old version, yet still maintained: 2.1 July 2016 Introduced an asset database, profiler, and plugin API. 2.1.6
Old version, no longer maintained: 3.0 January 2018 Added a brand new PBR renderer and Mono (C#) support. Replaced the physics engine with Bullet. 3.0.6
Old version, yet still maintained: 3.1 March 2019 Improved C# support, and added support for glTF 2.0 3.1.2
Old version, no longer maintained: 3.2 January 2020 A major patch release. Added OpenGL ES 2.0 batching 3.2.3
Current stable version: 3.3 April 2021 A major patch release, adding new features such as MP3 loading and playback support. 3.3.2
Latest preview version of a future release: 3.4 Q2 or Q3 2021 Next minor release
Future release: 4.0 ~2021 Adds support for the Vulkan graphics API and the latest build of Mono. Introduces SDF-based global illumination, along with several editor changes and performance optimizations.

Usage

Many games by OKAM Studio have been made using Godot, including Dog Mendonça & Pizza Boy, which uses the Escoria adventure game extension.[38] Additionally, it has been used in West Virginia's high school curriculum, due to its ease-of-use for non-programmers and what is described as a "wealth of learning materials that already exist for the software".[39]

Community

Godot as an international project has an active community around the world. Some community members are an admin of local Godot groups." Godot Francophone", "Godot Engine Russia" and "Godot Iran" are the biggest Godot local communities.[40][41][42]

Notable games made with Godot

See also

Notes

  1. ^ The engine's name is derived from the play Waiting for Godot. For native English speakers, the engine maintainers recommend GOD-oh, with the "t" being silent like in the French original, but they also acknowledge that a variety of pronunciations exist.[46]

References

  1. ^ Linietsky, Juan (14 January 2014). "Godot Engine - First public release!". Godot Engine. Retrieved 2019-07-01.
  2. ^ a b "Godot 4.3, a shared effort".
  3. ^ "The Godot Game Engine Open Source Project on Open Hub". Retrieved 30 July 2015.
  4. ^ a b "Godot Features". Godot Features. Retrieved 2021-05-10.
  5. ^ "Historia de Godot". Headsem.
  6. ^ a b Linietsky, Juan. "Godot 2.0: Talking with the Creator". 80.lv. Retrieved 18 June 2016.
  7. ^ "File system". Getting started. Godot Docs. Retrieved 2019-07-20.
  8. ^ a b "Mozilla Awards $385,000 to Open Source Projects as part of MOSS "Mission Partners" Program". The Mozilla Blog. Retrieved 17 October 2016.
  9. ^ "Godot Online Editor". Godot Engine. Retrieved 2021-05-09.
  10. ^ "Console Support". Godot Documentation. Retrieved 2021-05-09.
  11. ^ "Godot with C++". Retrieved 2021-06-17.
  12. ^ "GDNative C++ example". Retrieved 2021-06-17.
  13. ^ "Godot languages support". Retrieved 2021-06-17.
  14. ^ "VisualScript — Godot Engine latest documentation". docs.godotengine.org. Retrieved 2020-03-07.
  15. ^ a b c "GDScript basics: History". Getting started. Godot Docs. Retrieved 2019-07-20.
  16. ^ "TypedArrays". Retrieved 2021-06-04.
  17. ^ Linietsky, Juan (26 February 2018). "Moving to Vulkan (and ES 2.0) instead of OpenGL ES 3.0". Retrieved 28 July 2019.
  18. ^ "Animations". Getting started. Godot Docs. Retrieved 2019-07-20.
  19. ^ a b Larable, Michael (29 January 2018). "Godot 3.0 Open-Source Game Engine Released". Phoronix. Retrieved 30 January 2018.
  20. ^ StraToN. "SteamLUG Cast". Retrieved 18 June 2016.
  21. ^ reduz. "Godot history in images!". Retrieved 18 June 2016.
  22. ^ "Juan Linietsky presentation of Godot at RMLL 2015 in Beauvais, France". 7 July 2015. 46 minutes in.
  23. ^ liamdawe (14 February 2014). "Godot Game Engine Is Now Open Source".
  24. ^ Linietsky, Juan (15 December 2014). "Godot Engine Reaches 1.0, Releases First Stable". Godot Engine. Retrieved 2019-07-01.
  25. ^ Linietsky, Juan (21 May 2015). "Godot 1.1 Out!!". Godot Engine. Retrieved 2019-07-01.
  26. ^ "Godot Game Engine is Conservancy's Newest Member Project". Retrieved 13 November 2015.
  27. ^ Linietsky, Juan (23 February 2016). "Godot Engine Reaches 2.0 Stable". Godot Engine. Retrieved 2019-07-01.
  28. ^ Linietsky, Juan (9 August 2016). "Godot Reaches 2.1 Stable". Godot Engine. Retrieved 2019-07-01.
  29. ^ "Godot 3.1 is out, improving usability and features". Retrieved 2020-09-10.
  30. ^ a b "Here comes Godot 3.2, with quality as priority". Retrieved 2020-09-10.
  31. ^ "Godot 4 One Step Closer -- Vulkan Branch Now Master". Retrieved 2020-09-10.
  32. ^ "Maintenance release: Godot 3.2.2". Retrieved 2020-09-10.
  33. ^ Engine, Godot. "Godot Engine - Introducing C# in Godot". godotengine.org. Retrieved 2020-03-07.
  34. ^ Linietsky, Juan (3 February 2020). "Godot Engine was awarded an Epic MegaGrant". Retrieved 5 February 2020.
  35. ^ Linietsky, Juan (2020-06-08). "Godot Engine - Donation changes". godotengine.org. Retrieved 2020-09-25.
  36. ^ "Godot Engine gains a $120K grant from game developer Kefir".
  37. ^ "Godot Release Versions". Godot Release Versions. Retrieved 2021-05-10.
  38. ^ Suckley, Matt (15 August 2015). "OKAM Studio on empowering designers with Godot Engine's adventure game framework Escoria". PocketGamer.biz. Retrieved 29 December 2017.
  39. ^ Brasseur, Vicky (16 August 2016). "Godot open source game engine helps power the future in West Virginia". Opensource.com. Retrieved 29 December 2017.
  40. ^ Tahsin, Rafiey. "Godot Iran (گودوت ایران) - Tahsin Rafiey". TahsinRafiey.org. Retrieved 2021-04-28.{{cite web}}: CS1 maint: url-status (link)
  41. ^ Engine, Godot. "Godot Engine - Community". Godot Engine. Retrieved 2021-04-28.
  42. ^ "Godot Francophone". Godot Engine Francophone (in French). Retrieved 2021-04-28.
  43. ^ "Godot Showcase - Little Red Dog Games talk about their experience".
  44. ^ Ploeger, Dennis (27 March 2021). "Announcing EgoVenture". DEV Community. Archived from the original on 28 March 2021. Retrieved 28 March 2021.
  45. ^ "Godot Showcase - Binogure Studio".
  46. ^ "Godot Name". Godot Press Kit. Retrieved 2021-05-09.