Английская Википедия:Godot (game engine)
Шаблон:Short description Шаблон:Use dmy dates Шаблон:Infobox software Godot (Шаблон:IPAc-enШаблон:Efn) is a cross-platform, free and open-source game engine released under the permissive MIT license. It was initially developed by Argentine software developers Juan Linietsky and Ariel Manzur[1] for several companies in Latin America prior to its public release in 2014.[2] The development environment runs on many platforms, and can export to several more. It is designed to create both 2D and 3D games targeting PC, mobile, and web platforms and can also be used to develop non-game software, including editors.
Features
Godot allows video game developers to create both 3D and 2D games using multiple programming languages, such as C++, C# and GDScript.[3] It makes use of a hierarchy of nodes to facilitate the development experience.[4] Classes can be derived from a node type to create more specialized node types that inherit behavior. 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.[5]
Supported platforms
The engine supports deployment to multiple platforms and allows specification of texture compression and resolution settings for each platform. The website provides binaries only for the editor platforms, and exporting projects to other platforms is done within the Godot editor.
The Godot editor, used for creating Godot games, supports the following platforms:
- Desktop platforms Linux, macOS, Windows distributed on the website, on Steam, on Epic, and on Itch.[3][6]
- Web platform HTML5, WebAssembly with the web editor.[7]
- Android phones and tablets (available as of Godot 3.5).[8]
- BSD is also supported, but must be compiled manually.[9]
The engine supports exporting projects to many more platforms, including all of the editor platforms. Currently supported platforms as of Godot 4.0 are:[10]
- Desktop platforms Linux, macOS, Windows, BSD (must be compiled manually[9])
- Mobile platforms Android, iOS
- Web platform HTML5, WebAssembly.(C# Not available for the web yet)[11]
- Virtual/extended reality platforms HTC Vive, Valve Index, Oculus Rift, Oculus Go, Oculus Quest, all Microsoft MR headsets, Apple's ARKit and many more.[12]
The Godot engine can be run on consoles, although popular consoles are not officially supported since they do not allow their platform-specific code to be published under an open-source license.[13] Games can be ported to consoles through third-party companies.[14][15] Godot 4 support for consoles by third party teams is currently being worked on.[10] W4 Games, a commercial company co-founded by some members of Godot's leadership, has announced plans to offer services porting Godot 4.0 games to Microsoft, Nintendo, and Sony platforms.[16][17]
For CPU architectures, Godot officially supports x86 on all desktop platforms (both 32-bit and 64-bit where available) and has official ARM support on macOS, Linux,[18] mobile platforms, and standalone Oculus platforms (both 32-bit and 64-bit where available). The web platform uses 32-bit WebAssembly. Support for RISC-V and PowerPC Linux is unofficial and experimental.[19][20]
Scripting
Godot supports a variety of programming languages for making games, including the integrated language GDScript, C++[21] and C#. Additionally, the engine includes GDNative, a facility for creating bindings with other languages. Officially-supported GDNative languages include C and C++.[22] Community-supported languages include Rust, Nim, Haskell, Clojure, Swift, and D.[23] Visual coding was also supported, via the built-in language VisualScript, designed to be a visual equivalent to GDScript.[15] Visual Scripting was removed from the core engine in Godot 4.0.[24] Godot games running in the browser can interface with the browser's JavaScript code.
The Godot editor includes a text editor with auto indentation, syntax highlighting and code completion and folding. It also features a debugger with the ability to set breakpoints and program stepping.[25]
GDScript
Шаблон:Infobox programming language
Godot has its own built-in scripting language, GDScript,[25] 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[26] was implemented on GDScript. This allows users to easily change a regular array to typed and vice-versa without changing much code.[25]
A simple "Hello world" program can be written like so:
func _ready():
print("Hello World")
More complex programs, such as generating a Fibonacci sequence, are also possible:
func _ready():
var nterms = 5
print("Fibonacci sequence:")
for i in range(nterms):
print(fibonacci(i))
func fibonacci(n):
if n <= 1:
return n
else:
return fibonacci(n - 1) + fibonacci(n - 2)
Rendering
Godot's graphics engine uses OpenGL ES 3.0 for all supported platforms; otherwise, OpenGL ES 2.0 is used. Vulkan is supported starting in version 4.0 and also includes the possibility of support for Metal using MoltenVK.[27] The engine supports normal mapping, specularity, dynamic shadows using shadow maps, baked and dynamic global illumination, and full-screen post-processing effects like bloom, depth of field, high-dynamic-range rendering, 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, but both can also work at the same time on the same display, so as to make complex mixes between 2D and 3D. 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.[28] Godot has its own in-house physics engine, and as of Godot 4.x allows third parties to integrate their own physics via GDExtension. In Godot 3.x, the Bullet physics engine is included and used by default.[29] The Thor Vector Graphics (ThorVG) library allows creating GUIs with vector resources.[30]
History
Closed source era (2001–2014)
Juan 'reduz' Linietsky and Ariel 'punto' Manzur co-founded Codenix in 1999, a game development consulting company. As early as 2001, they began work on an engine then code-named "Larvotor" which was licensed to third-party companies in Argentina.[31][32][33][34] Over the course of the following ten years, the engine was renamed to "Legacy", "NG3D", "Larvita" and finally to "Godot". 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.[35] Linietsky and Manzur joined OKAM and the company worked with a number of studios in the closed-source era including Square Enix. Linietsky indicated that their work was hampered by political and economic instability in Argentina at the time however.[36]
Free and open source era (2014–present)
By 2014 Linietsky was planning on moving away from Argentina, and he released the source code for Godot to the public on GitHub under the MIT License.[37] Godot joined the Software Freedom Conservancy (SFC) on 4 November 2015.[38] 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.[11]
The 3.0 update for Godot involved addressing a long list of desired features which required a major refactor of the engine that had been impossible while under commercial constraints in the closed-source era. With Miguel de Icaza's support, Godot received a $24,000 donation from Microsoft in 2017 to implement C# as a scripting language in Godot.[39] A Patreon was launched, which enabled Linietsky and Verschelde to work on the project full time. The 3.0 version launched in 2018. The 3.1 update added a OpenGL ES 2.0 renderer aimed at mobile hardware, as mobile support for ES 3.0 by manufacturers was then limited.[40]
In 2019 two teams were formed, with Linietsky's team focusing on the Vulkan branch (later released as 4.0) and Verschelde's team covering further updates to the 3.x branch. Linietsky indicated that part of the issue was that the 3.x branch was built with older architectural principles in mind, such as single-core processors. Thus, the intention was to redevelop the core architecture for 4.0 and account for modern principles.[41] In 2020, Godot received a $250,000 Epic Games award to improve graphics rendering and the engine's built-in game development language, GDScript, which was used to pay Linietsky and George Marques for two years while freeing donation money for other purposes.[42][43] Godot also received grants from Meta Platforms' Reality Labs in 2020 and 2021.[44][45][46] The 4.0 branch released in alpha form in early 2022, and was polished over the course of the year.[41] That August, Linietsky and several other members of the Godot team established W4 Games to offer commercial services based on the engine, including console ports that cannot be included in its open-source codebase.[47][16] In November, Godot announced plans to transition from the SFC to its own newly-formed Godot Foundation.[48][49][50][51]
The full release of the 4.0 update with Vulkan support occurred in 2023, as well as the arrival of the Godot engine on the Epic Games Store. The version on Epic is identical to others in terms of both content and licensing, with the storefront simply used as a means of distribution and for updating.[52] However, the .NET/C# support version of the engine is not available on Epic Games Store, nor Itch and Steam as well.[53] In September, Unity Technologies announced major changes to licensing for the Unity engine including the addition of "runtime fees" that would charge users on installation of Unity games. As a result, Re-Logic donated $100,000 to Godot, and further announced that it would be donating $1,000 a month going forward, in the interest of supporting an open-source alternative to Unity.[54]
Version history
Godot reached version 1.0 on 15 December 2014, marking the first stable release and the addition of lightmapping, navmesh support, and more shaders.[55] 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, improved 2D physics and a rewritten 2D engine, better Blender Collada support, and a new dark theme.[56]
Godot 2.0 was released on 23 February 2016, adding better scene instancing and inheritance, a new file system browser, multiple scene editing, and an enhanced debugger.[57][2] This was followed by version 2.1 in August 2016, which introduced an asset database, profiler, and plugin API.[58]
- Godot 3
Version 3.0 was released on 29 January 2018, adding a new PBR renderer implemented in OpenGL ES 3.0, virtual reality compatibility, and C# support (via Mono)[29] thanks to a $24,000 donation from Microsoft.[59] 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 Шаблон:Section link, a script class system for GDScript, and an OpenGL ES 2.0 renderer.[60] 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.[61]
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,[62] so work on 3.2 was mostly done by other contributors. Work on 3.2 continued as a long-term support release for a year,[61] 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.[63] On 17 March 2021, the versioning strategy was changed to better reflect semantic versioning, with a 3.3 stable branch and a 3.x branch for backporting features to a future 3.4 release.[64]
Godot 3.3 was released on 21 April 2021, with features such as ARM support on macOS, Android App Bundles support, MP3 support, Autodesk FBX support, WebXR support, and a web editor.[65]
Godot 3.4 was released on 6 November 2021 after six months of development, implementing missing features or bug fixes that are critical for publishing 2D and 3D games with Godot 3 and making existing features more optimized and reliable.[66]
- Godot 4
Godot 4 was released on 1 March 2023. It is a major update that overhauls the rendering system, adds support for Vulkan graphics API, improves GDScript performance and usability, enhances physics and animation systems, and introduces many other features and bug fixes. The development of Godot 4 started in 2019 with a rewrite of the renderer to use Vulkan by Linietsky. In 2020, several contributors joined the development team and worked on various aspects of Godot 4, such as GDScript improvements, physics engine overhaul, animation system rewrite, editor usability enhancements and more.
The first alpha version of Godot 4 was released for testing by early adopters in January 2022.[67] It included new features such as SDF-based global illumination, GPU-based particles, dynamic soft shadows. In September 2022, Godot 4 reached beta stage with improved stability and performance.[68] It also added support for WebXR, C# support for Android and iOS, new audio features. On 1 March 2023, Godot 4 was officially released as a stable version after several beta builds and bug fixes. It enhanced graphics quality, rendering optimization techniques, and added accessibility features.[10] This was followed by Godot 4.1 later in 2023, which added experimental scene multithreading, editor enhancements, and C# improvements.[69]
Release history
Version | Release date[70] | Notes | Latest patch release |
---|---|---|---|
Шаблон:Version | December 2014 | First stable release | 1.0 |
Шаблон:Version | May 2015 | Added improved auto-completion in the code editor, a visual shader editor, a rewritten 2D engine, and new 2D navigation polygon support. | 1.1 |
Шаблон:Version | February 2016 | Updated UI and added an enhanced debugger. | 2.0.4.1 |
Шаблон:Version | July 2016 | Introduced an asset database, profiler, and plugin API. | 2.1.6 |
Шаблон:Version | January 2018 | Added a new PBR renderer and Mono (C#) support. Added Bullet as the default physics engine. | 3.0.6 |
Шаблон:Version | March 2019 | Added statically typed GDScript, a script class system for GDScript, and an OpenGL ES 2.0 renderer. | 3.1.2 |
Шаблон:Version | January 2020 | Added support for glTF 2.0 files, OpenGL ES 2.0 batching, C# support for iOS, and massive documentation improvements. | 3.2.3 |
Шаблон:Version | April 2021 | Added ARM support on macOS, Android AAB support, MP3 support, FBX support, WebXR support, and a web editor. | 3.3.4 |
Шаблон:Version | November 2021 | Added a new theme editor, ACES Fitted tonemapper, PWA support, physical input support, and glTF 2.0 export support. | 3.4.5 |
Шаблон:Version | August 2022 | Added editor support on Android, asynchronous shader compilation, physics interpolation, material overlay, and improved the navigation system. | 3.5.3 |
Шаблон:Version | TBC[71] | The next minor release for Godot 3.x. Feature set still a work in progress. Adds transparent object sorting in 3D. Will be released after 4.0 with LTS. | 3.6 beta 4[72] |
Шаблон:Version | March 2023 | Adds support for the Vulkan graphics API. Switches from Mono to .NET 6 CoreCLR. Introduces SDF-based global illumination, along with several editor changes and performance optimizations. | 4.0.3 |
Шаблон:Version | July 2023 | Added experimental scene multithreading, editor enhancements, and C# improvements.[69] | 4.1.3[73] |
Шаблон:Version | November 2023 | Rework of animation tool and particle system, added GDExtension feature, improvement on import pipeline, support for FSR 2.2.[74] | 4.2.1[75] |
Шаблон:Version | Early 2024[74] | GPU synchronization via acyclic graphs[76] | 4.3 dev 4[77] |
Usage
Many games by OKAM Studio have been made using Godot, including Dog Mendonça & Pizza Boy, which uses the Escoria adventure game extension.[78] 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".[79]
Notable video games made with Godot
Year of release | Title | Developer | Notes |
---|---|---|---|
2015/2016 | Deponia[80][81] | Daedalic Entertainment | iOS and PlayStation 4 ports |
2016 | The Interactive Adventures of Dog Mendonça & Pizzaboy[78] | OKAM Studio | |
2018 | Hardcoded[82] | Ghosthug Games | |
2019 | Commander Keen in Keen Dreams[83] | Id Software/Lone Wolf Technologies | First Nintendo Switch port only, not to be confused with the Definitive Edition. |
2021 | Cruelty Squad[84][85] | Consumer Softproducts | |
Sonic Colors: Ultimate[86][87] | Sonic Team/Blind Squirrel Games | ||
2021Шаблон:Dash2022 | Carol Reed Mysteries series[88] | ||
2022 | Dome Keeper[89] | Bippinbits | |
The Case of the Golden Idol[90] | Color Gray Games | ||
2023 | Cassette Beasts[87] | Bytten Studio | |
Luck Be a Landlord[91] | TrampolineTales | ||
Brotato[87] | Blobfish | ||
Buckshot Roulette | Mike Klubnika |
See also
Notes
References
External links
- ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокHistoria de Godot
не указан текст - ↑ 2,0 2,1 Ошибка цитирования Неверный тег
<ref>
; для сносок80LV
не указан текст - ↑ 3,0 3,1 Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокFilesystems
не указан текст - ↑ Шаблон:Cite web
- ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокGodot Web Editor
не указан текст - ↑ Шаблон:Cite web
- ↑ 9,0 9,1 Ошибка цитирования Неверный тег
<ref>
; для сносокGodot Engine LinuxBSD Compile Instructions
не указан текст - ↑ 10,0 10,1 10,2 Шаблон:Cite web
- ↑ 11,0 11,1 Ошибка цитирования Неверный тег
<ref>
; для сносокMozilla
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокGodot Features
не указан текст - ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ 15,0 15,1 Ошибка цитирования Неверный тег
<ref>
; для сносокPC Mag
не указан текст - ↑ 16,0 16,1 Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокGodot 4.2-rc1 announcement
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокGodot PR for RISC-V support
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокGodot PR for PowerPC support
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокGodot Native
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокGDNative C++ tutorial
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокGodot language support
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокVisual Script Discontinue
не указан текст - ↑ 25,0 25,1 25,2 Ошибка цитирования Неверный тег
<ref>
; для сносокGDScript
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокTypedArray
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокOpenGL
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокAnimation
не указан текст - ↑ 29,0 29,1 Ошибка цитирования Неверный тег
<ref>
; для сносок3.0
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносок4.0.3
не указан текст - ↑ Шаблон:Cite web
- ↑ Шаблон:Cite tweet
- ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокVideoGamesAroundTheWorld
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокHistory Images
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокRMIL
не указан текст - ↑ Шаблон:Cite web
- ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокGamingOnLinux
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокConservancy
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокMono Support
не указан текст - ↑ Шаблон:Cite web
- ↑ 41,0 41,1 Шаблон:Cite web
- ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокEpic Games
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокDonation
не указан текст - ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокGodotFoundation
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокPhoronixGodotFoundation
не указан текст - ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Ошибка цитирования Неверный тег
<ref>
; для сносок1.0
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносок1.1
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносок2.0
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносок2.1
не указан текст - ↑ Шаблон:Cite web
- ↑ Ошибка цитирования Неверный тег
<ref>
; для сносок3.1
не указан текст - ↑ 61,0 61,1 Ошибка цитирования Неверный тег
<ref>
; для сносок3.2
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокVulkanMasterGFS
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносок3.2.2
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносок3.x
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносок3.3
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносок3.4
не указан текст - ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ 69,0 69,1 Ошибка цитирования Неверный тег
<ref>
; для сносок4.1
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокGodot Release Versions
не указан текст - ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ 74,0 74,1 Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ 78,0 78,1 Ошибка цитирования Неверный тег
<ref>
; для сносокPocketGamer
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокOpensource.com
не указан текст - ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite webШаблон:Dead link
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ 87,0 87,1 87,2 Ошибка цитирования Неверный тег
<ref>
; для сносокTheGamer
не указан текст - ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- Английская Википедия
- Страницы с неработающими файловыми ссылками
- .NET game engines
- 2014 software
- Cross-platform software
- Free 3D graphics software
- Free and open-source software
- Free game engines
- Free software programmed in C++
- Game engines for Linux
- Game engines that support Vulkan (API)
- IOS video game engines
- MacOS programming tools
- Software using the MIT license
- Video game development software for Linux
- Video game engines
- Video game IDE
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Википедия
- Статья из Википедии
- Статья из Английской Википедии
- Страницы с ошибками в примечаниях