Godot (game engine)
This article relies too much on references to primary sources. (January 2018) (Learn how and when to remove this template message)
|Original author(s)||Juan Linietsky, Ariel Manzur|
|Initial release||14 January 2014|
3.1.1 / 27 April 2019
|Written in||C, C++|
|Available in||English, French|
Godot is a 2D and 3D cross-platform game engine released as open-source software under the MIT license. It was initially developed for several companies in Latin America before its public release. The development environment runs on Linux, macOS, Windows, BSD and Haiku (both 32 and 64-bit) and can create games targeting PC, mobile and web platforms.
Godot aims to offer a fully integrated game development environment. It allows developers to create a game from scratch needing no other tools beyond those used for content creation (art assets, music etc.). The architecture is built around a concept of a tree of nested "scenes". All game resources, from scripts to graphical assets, are saved as part of the computer's file system (rather than in a database). This storage solution is intended to make it easier for game development teams to collaborate on script code using version control.
The engine supports deployment to multiple platforms, and allows specification of texture compression and resolution settings for each platform. Currently supported platforms include Linux, macOS, Windows, FreeBSD, OpenBSD / DragonFly BSD, Android, iOS, BlackBerry 10 and HTML5. There is also Windows Runtime (WinRT) Universal Windows Platform (UWP) support.
Godot games are created either in C++, C#, languages with GDNative bindings such as Rust, Nim, D, or by using its own scripting language, GDScript, a high level, dynamically typed programming language very similar to Python. Contrary to Python, GDScript features strict typing of variables and is optimized for Godot's scene-based architecture. Godot's developers have stated that many alternative third-party scripting languages (namely, Lua, Python and Squirrel) were tested before deciding that using a custom language allowed for superior optimization and editor integration.
The graphics engine uses OpenGL ES 3.0 for all supported platforms; otherwise, OpenGL ES 2.0 is used. Future support for Vulkan is also planned. It supports normal mapping, specularity, dynamic shadows using shadow maps and full-screen post-processing effects like FXAA, 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.
There is also a separate 2D graphics engine, which can operate independently from the 3D one. Examples of 2D engine features include 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'.
Godot contains an animation system with a GUI for editing skeletal animation, blending, animation trees, morphing and realtime cutscenes. Almost any variable defined or created-on-a-game entity can be animated. The engine uses Bullet for 3D physics simulation.
Additional features include:
- Level of detail
- Performance analysis graphs
- Light baking
- Plugins system
- Render targets
- Video playback using the Theora codec
- Audio playback of Ogg Vorbis and WAV codecs
- Particle system
- Texture import/export/compress pipeline
- Navmesh support
- Graphical user interface
- Keyboard, mouse, gamepad and touchscreen support
Godot development was started by Juan 'reduz' Linietsky and Ariel 'punto' Manzur in 2007. 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. In February 2014, the source code for Godot was released to the public on GitHub under the MIT License.
On 15 December 2014, Godot reached version 1.0, marking the first stable release and the addition of lightmapping, navmesh support and more shaders. Version 1.1 replaced it on 21 May 2015, adding improved auto-completion in the code editor, a visual shader editor, a new API to the OS for managing the screens and window, a rewritten 2D engine, new 2D navigation polygon support, a much improved Blender Collada exporter and a new dark theme. The new 2D engine includes 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 shortly afterwards, on 4 November 2015.
Godot 2.0 reached stability on 23 February 2016. New features included better scene instancing and inheritance, a new filesystem browser, multiple scene editing, and an enhanced debugger. This was followed by version 2.1 in August 2016, which introduced an asset database, profiler, and plugin API.
Version 3.0 was released on 29 January 2018, adding improved 3D rendering, VR compatibility, and C# (via Mono) support. It also replaced the engine's former built-in 3D physics backend with the Bullet physics engine. Version 3.0 was also the first version of Godot to be included in Debian.
Many games by OKAM Studio have been made using Godot, including Dog Mendonça & Pizza Boy, which uses the Escoria adventure game extension. Additionally, it has been used in West Virginia's highschool 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".
- Linietsky, Juan (14 January 2014). "Godot Engine - First public release!". Godot Engine. Retrieved 2019-07-01.
- van Braam-Stewart, Hein-Pieter (27 April 2019). "Maintenance release: Godot 3.1.1". Retrieved 27 April 2019.
- "The Godot Game Engine Open Source Project on Open Hub". Retrieved 30 July 2015.
- Linietsky, Juan. "Godot 2.0: Talking with the Creator". 80.lv. Retrieved 18 June 2016.
- "File system". Getting started. Godot Docs. Retrieved 2019-07-20.
- "FreshPorts – devel/godot". Retrieved 29 December 2017.
- "DPorts/devel/godot at master · DragonFlyBSD/DPorts · GitHub". Retrieved 29 December 2017.
- "Mozilla Awards $385,000 to Open Source Projects as part of MOSS "Mission Partners" Program". The Mozilla Blog. Retrieved 17 October 2016.
- "Compiling for Universal Windows Apps". Development. Godot Docs. Retrieved 2019-07-20.
- "GDScript basics: History". Getting started. Godot Docs. Retrieved 2019-07-20.
- Linietsky, Juan (26 February 2018). "Moving to Vulkan (and ES 2.0) instead of OpenGL ES 3.0". Retrieved 28 July 2019.
- "Animations". Getting started. Godot Docs. Retrieved 2019-07-20.
- Larable, Michael (29 January 2018). "Godot 3.0 Open-Source Game Engine Released". Phoronix. Retrieved 30 January 2018.
- StraToN. "SteamLUG Cast". Retrieved 18 June 2016.
- reduz. "Godot history in images!". Retrieved 18 June 2016.
- "Juan Linietsky presentation of Godot at RMLL 2015 in Beauvais, France". 7 July 2015. 46 minutes in.
- liamdawe (14 February 2014). "Godot Game Engine Is Now Open Source".
- Linietsky, Juan (15 December 2014). "Godot Engine Reaches 1.0, Releases First Stable". Godot Engine. Retrieved 2019-07-01.
- Linietsky, Juan (21 May 2015). "Godot 1.1 Out!!". Godot Engine. Retrieved 2019-07-01.
- "Godot Game Engine is Conservancy's Newest Member Project". Retrieved 13 November 2015.
- Linietsky, Juan (23 February 2016). "Godot Engine Reaches 2.0 Stable". Godot Engine. Retrieved 2019-07-01.
- Linietsky, Juan (9 August 2016). "Godot Reaches 2.1 Stable". Godot Engine. Retrieved 2019-07-01.
- Suckley, Matt (15 August 2015). "OKAM Studio on empowering designers with Godot Engine's adventure game framework Escoria". PocketGamer.biz. Retrieved 29 December 2017.
- Brasseur, Vicky (16 August 2016). "Godot open source game engine helps power the future in West Virginia". Opensource.com. Retrieved 29 December 2017.