📰 Title: | Godot Engine | 🕹️ / 🛠️ Type: | Tool |
---|---|---|---|
🗃️ Genre: | Development | 🚦 Status: | 05. Tested & Working (status) |
🏷️ Category: | Development ➤ Engine ➤ 2D & 3D ➤ Misc. | 🌍️ Browser version: | |
🔖 Tags: | Development; Flagship; 2D & 3D engine; IDE; Godot engine; Multi-platform; Scripting support; Physics engine; Animation; Multithreading; Audio system; Particle system; Video playback; Lightmap; 3D texture; 3D Sound; Moddable; Plugins system; Tile Map Editor; Asset Library; 3D VR | 📦️ Package Name: | godot |
🐣️ Approx. start: | 2014-01-14 | 📦️ Arch package: | |
🐓️ Latest: | 2023-05-25 | 📦️ RPM package: | |
📍️ Version: | Latest: 4.0.3-stable / 3.5.2 (LTS) // Dev: 4.1 dev 3 / 3.6 beta 2 / 2eec9a6 | 📦️ Deb package: | |
🏛️ License type: | 🕊️ Libre | 📦️ Flatpak package: | |
🏛️ License: | MIT | 📦️ AppImage package: | |
🏝️ Perspective: | First person (interface) | 📦️ Snap package: | |
👁️ Visual: | 2D & 3D | ⚙️ Generic binary: | |
⏱️ Pacing: | Real Time | 📄️ Source: | |
👫️ Played: | Single & Multi | 📱️ PDA support: | |
🎖️ This record: | 🕳️ Not used: | ||
🎀️ Game design: | 👫️ Contrib.: | goupildb & Louis | |
🎰️ ID: | 14647 | 🐛️ Created: | 2015-03-05 |
🐜️ Updated: | 2023-05-25 |
[en]: | A high performance, libre (with the very permissive MIT License) and multi-platform 2D / 3D game engine and IDE with a large set of tools, allowing the developer to create a multi-platform game from scratch without requiring external tools other than the usual tools content creation (for graphics and sounds), and to focus on his game without reinventing the wheel. | [fr]: | Un moteur et IDE de jeux 2D et 3D performant, libre (sous la très permissive licence MIT) et multi-plateforme, riche en fonctionnalités avec un vaste ensemble d'outils, permettant au développeur de créer un jeu multi-plateforme à partir de rien sans nécessiter d'outils externes autres que les outils habituels de création de contenu (graphismes et sons), et de se concentrer sur son jeu sans avoir à réinventer la roue. |
---|
💡 Lights on: | 🦺️ Work in progress: | ||
---|---|---|---|
📰 What's new?: | 🚀️ Code improvement | 💥️ New version published (to be updated): | |
🎨️ Significant improvement: | 🚧️ Some work remains to be done: | ||
🕳️ Not used2: | 👔️ Already shown: |
📰 Progress: GDQuest (4.0/202303), Gamefromscratch (4.0/202303),
🦝️ From Users: (4.0/202302), (4.0/202303), (202008),
🕯️ How To: (202211), (202209), [fr](202206),
🎮️ Showcase:
• Misc: 💥️Sonic Colors Ultimate (202105), 💥️Donut Dodo (202205), 💥️Blackout (202201),
• Personal projects / WIP games : 💥️Normord WIP/8 (202301), 💥️Twins'. / Penitent Devlog 18 (202207), 💥️My Showcase (202305),
• Showcase: 💥️(202305), 💥️(202304), 💥️(202303),
🎙️ Dev Interviews: Some faces behind the Godot Engine (202212), Juan Linietsky (201904), Ariel Manzur (201902),
🏡️ Website & videos
[Homepage] [Dev site] [Features/About] [Screenshots] [Videos cv(4.0/202303) cv(4.0/202303) pv(4.0 beta 2/202209) pv(4.0 beta 1/202209) pv(4.0 beta 1/202209) cv(4.0 beta 1/202209) pv(4.0 alpha 16/202209) pv(4.0 alpha 10/202206) pv(4.0 dev/202203) pv(4.0 dev/202108) ft(202203) ft(201707) t(202xxx) ts(202xxx) gd(202xxx) gu(202302) gu(4.0/202303) gu(202008) id(202xxx) r(201905) r(201501) lp(201404) lp(202xxx) tl(201602) sc(202305) sc(202304) sc(202303) sc(202303) sc(2022/202210) sc(202203) sc(202012) sc(2019/201904) sc(2018/201806) sc(2016/201604) d(202105) d(202205) d(202201) d(pp/202301) d(pp/202207) d(pp/202305) d(pp/202208) d(pp/201807) d(pp/201809) d(pp/201910) ht(202211) ht(202209) ht(202206) ht(201605) ht(201905) ht(201803) ht(201804) ht(201612) ht(201403) ht(201501) ht(201602) ht(201404) ht(201501) ht(201504) ht(201501) ht(201412) ht[fr](202106) ht[de](202xxx) ht[ru](201901) ht[pl](202xxx) ht[cz](202xxx) ht[sp](202xxx) ht[pt](202xxx) ht[it](201904) ht[tr](202xxx)] [WIKI] [FAQ 1 2] [RSS] [Changelog 1 2 3]
💰 Commercial: [Support their work (Donate)] [Patreon] [W4 Games (help for the video game industry)] [Itch.io] - Free [Steam] - Free
🍩️ Resources
● Godot engine (binaries, different versions): [GitHub (Sources & Binaries, stable versions)] [TuxFamily (Stable & Unstable binaries)]
● Some examples of open source Godot games & demos:
• 💥️ Desert Light & Godot 4 (a short demo and test for the Global Illumination (SDFGI), Indirect Lighting (SSIL) and Volumetric Fog, MIT & CC-BY-4.0): gu(202305) [Dev site]
• 💥️ Overgrown Subway (Demo Scene of an overgrown subway inhabited by squatters, MIT & CC0 1.0): gu(202305) [Dev site]
• Third Person Shooter Demo (see "Installation [fr]" below, by Juan Linietsky & Fernando Miguel Calabró, MIT & CC-BY 3.0 license): g(201811) [Third Person Shooter Demo]
• Sponza Demo (a 3d reproduction of the Sponza Palace in Croatia, free for personal & educational use, by Frank Meinl, Katica Putica, Cristiano Siqueria, Timothy Heath, Justin Prazen, Sebastian Herholz, Bruce Cherniak & Anton Kaplanyan): d(201907) d(202204) [Intel.com (Samples Library)]
• Amazon Lumberyard Bistro Reference Scene (The Lumberyard Bistro scene ported to Godot, CC-BY 4.0 license): g(201703) [Homepage] [Dev site (ported to Godot]
• Sealed Bite (a nice libre platformer, Code: GPL-2 / Artwork: CC BY-NC-ND 4.0, by Securas (Code, Art, SFX & Design), Raindrinker (Design & Playtesting) & Fabien Merten (Wondard) (Music)): [Homepage] [Dev site] t(201912) g(201912)
• DynaDungeons (Bomberman clone, by Rémi Verschelde (Akien)): [DynaDungeons]
• Tiny Chopper Raceway (2D racing/drifting game, by GamingOnLinux): [Tiny Chopper Raceway]
• Voxel Game Prototype (using Voxel Tools, see below, by same author - Marc Zylann): [Voxel Game Prototype]
● Tutorials: [GameFromScratch (Bowling with Godot Engine)] ht(201709)
● Plugins, Resources :
• Misc. resources (tons of links to libre resources for game development on our WIKI): [The WIKI of Le Bottin des Jeux Linux [fr] (Resources section)]
• Awesome Godot (a curated list of libre games, plugins, add-ons and scripts for Godot: [GitHub (Awesome Godot)]
• Godot Terrain Plugin (a heightmap-based terrain node for Godot Engine 2.1), by Marc (Zylann): d(201608) d(201707) d(201704) gu(202301) [Dev site] [twitter]
• 💥️ Godot 4 Open RPG (a tool and a demo to create Role Playing Games with turn-based combat, MIT), by Kenney: gu(202305) [Dev site]
• Cyclops Level Builder Plugin (A Godot plugin that enables rapid level building, MIT), by Mark McKay (blackears): r(202305) [Dev site]
• Godot XR Tools(a number of support files and support scenes that can be used together with the various AR and VR interfaces for the Godot game engine, by Bastiaan Olij & Malcolm Nixon, MIT): ht(202211) [Dev site] [mastodon]
• Godot XR Template for Godot (a template Godot project for building a simple VR game, by Bastiaan Olij & Malcolm Nixon, MIT): ht(202302) [Dev site] [mastodon]
• Voxel Tools for Godot (A C++ module for creating volumetric worlds in Godot Engine, by Marc (Zylann): d(202208) gu(202007) ht(202102) ht(202106) [Dev site] [twitter]
• Blackjack (a procedural modelling application, by Setzer22): [Dev site] [mastodon]
• A libre third-person 3D character controller for Godot 4 (to prototype 3D games, by Nathan Lovato from GDQuest, MIT): [GDQuest (Site announcement)] [Dev site]
• First Person Starter (FPS (First Person Shooter) controller template for Godot 4 to give starter content for a new or already existing project!, MIT): [Homepage] [Dev site]
• Free Godot 4 flight controller without gimbal lock (Free Godot 4 that allows you to make airplane/spaceplane type games without a gimbal lock, CC0, by MiguelB): [Smugglers of Cygnus forum (Free Godot 4 flight controller)]
🛠️ Technical informations
[Open Hub] [PCGamingWiki] [MobyGames] [Showcase] [SteamDB (Engine ▸ Godot)] [Itch.io (Top rated Games made with Godot)] [Godot (Compiling for X11 (Linux, *BSD))] [itch.io (tagged godot)]
🐘 Social
Devs (Godot Team 1 2 3 4] [fr] [en]): [Site 1 2] [Chat] [mastodon] [twitter] [PeerTube] [YouTube] [PressKit] [Interview 1(202212) 2(202xxx)]
Devs (Juan Linietsky (reduz, reduzio) [fr] [en]): [Site 1 2] [Chat] [mastodon] [twitter] [PeerTube] [YouTube] [LinkedIn] [PressKit] [Interview 1(201904) 2(201902) 3(201806) 4[sp](201703) 5[sp](201802) 6[sp](201108)]
Devs (Ariel Manzur (amanzur) [fr] [en]): [Site 1 2] [Chat] [mastodon] [twitter] [PeerTube] [YouTube] [PressKit] [Interview 1(201902) 2(201804) 3[sp](201411)]
The Project: [Blog] [Chat] [Forums] [mastodon 1 2 3] [twitter] [Facebook] [PeerTube] [YouTube] [PressKit] [reddit] [Discord]
🐝️ Related
[Wikipedia (Godot) [fr] [en] [de]]
[HOLaRSE [de]] [GameFromScratch] [Mod DB] [Indie DB]
📦️ Misc. repositories
[Repology] [pkgs.org] [Arch Linux / AUR] [openSUSE] [Debian/Ubuntu] [Flatpak] [AppImage] [Snap] [PortableLinuxGames]
🕵️ Reviews
[HowLongToBeat] [metacritic] [OpenCritic] [iGDB] [GameFromScratch (3.4/20211106)]
🕊️ Source of this Entry: [Site on mastodon (date)]
🐘 Social Networking Update (on mastodon)
🛠️ Title: Godot Engine
🦊️ What's: A libre game engine & IDE
🏡️ https://www.godotengine.org
🐣️ https://github.com/godotengine
🦉️ https://mastodon.gamedev.place/@godotengine
🦉️ https://mastodon.gamedev.place/@akien
🦉️ https://mastodon.gamedev.place/@yurisizov
🔖 #LinuxGameDev #Flagship #LibreGameEngine
📦️ #Bin #Arch #RPM #Deb #Flatpak #AppIm #Snap
📖 Our entry: http://www.lebottindesjeuxlinux.tuxfamily.org/en/online/lights-on/
💥️ NEW!
🥁️ Update (dev): 4.1 dev 3
⚗️ Code improvement 🚀️
📌️ Changes: https://godotengine.org/article/dev-snapshot-godot-4-1-dev-3/
🐘 From: https://mastodon.gamedev.place/@yurisizov/110429757486666095
🥁️ Update (dev): -
⚗️ -
📌️ Changes: -
🐘 From: -
🥁️ Update (stable): 4.0.3
⚗️ Hotfix 🐞️
📌️ Changes: https://godotengine.org/article/maintenance-release-godot-4-0-3/
🐘 From: https://mastodon.gamedev.place/@yurisizov/110395246311730609
📰(4.0) https://invidious.lunar.icu/chXAjMQrcZk
📰(4.0) https://invidious.lunar.icu/XOuW_RGp0to
💥️ NEW!
🥁️ Update (dev): 3.6 beta 2
⚗️ Code improvement 🚀️
📌️ Changes: https://godotengine.org/article/dev-snapshot-godot-3-6-beta-2/
🐘 From: https://mastodon.gamedev.place/@akien/110429285601993287
🥁️ Update (LTS): 3.5.2
⚗️ Hotfix 🐞️
📌️ Changes: https://godotengine.org/article/maintenance-release-godot-3-5-2/
🐘 From: https://mastodon.gamedev.place/@akien/109988151502395634
🦝️ https://invidious.lunar.icu/gHXp9Qpfgy4
🕯️ https://invidious.lunar.icu/CBzogGd1ijI
💥️🎮️ https://invidious.lunar.icu/UYZtqzndlPE
💥️🎮️ https://invidious.lunar.icu/zgPq_YdVSNg
🕶️ The UI of the Godot 4.0 engine with a 3D scene rendered in real time, highlighting shadows and dynamic lighting, representing a waterfall coming out of a mountain and pouring into a river, at nightfall, with the sea in the background, fir trees and a character on an uncluttered area. On both sides of the scene, the menus and settings for the design of this work.
Godot Engine is a high performance, libre (with the very permissive MIT License) and multi-platform 2D / 3D game engine and IDE with a large set of tools, allowing the developer to create a multi-platform game from scratch without requiring external tools other than the usual tools content creation (for graphics and sounds), and to focus on his game without reinventing the wheel.
📕🐧"A high performance, libre 2D/3D game engine & IDE"🐧📕
☑ Innovative design
Create games with ease using Godot's unique approach to game development.
• Nodes for all your needs. Godot comes with hundreds of built-in nodes that make game design a breeze. You can also create your own for custom behaviors, editors and much more.
• Flexible scene system. Create node compositions with support for instancing and inheritance.
• Visual editor with all the tools you need packed into a beautiful and uncluttered context-sensitive UI.
• Friendly content creation pipeline for artists, level designers, animators and everyone in between.
• Persistent live editing where changes are not lost after stopping the game. It even works on mobile devices!
• Create your own custom tools with ease using the incredible tool system.
☑ Gorgeous 3D graphics
The physically-based renderer comes with a ton of features that will make your games look incredible.
• Innovative architecture that combines the best of forward rendering with the efficiency of deferred rendering.
• Physically-based rendering with full MSAA and FXAA support.
• Full principled BSDF with subsurface scattering, reflection, refraction, anisotropy, clearcoat, transmittance and more.
• Global illumination for real-time gorgeous graphics. It can also be pre-baked for beautiful results even on low-end devices.
• Mid- and Post-processing effects including a tonemapper that supports HDR, multiple standard curves and auto exposure, screen-space reflections, fog, bloom, depth of field and much more.
• Easy-to-use shader language based on GLSL, with built-in editor and code completion.
☑ Create 2D games with ease
Godot comes with a fully-dedicated 2D engine packed with features.
• Work in pixels as your units, but scale to any screen size and aspect ratio.
• Tile map editor with auto-tiling, rotation, custom grid shapes and multiple layers.
• 2D lights and normal maps to give your 2D games a more realistic look.
☑ Animate everything
The most flexible animation system.
• Animate literally everything, from bones and objects to function calls.
• Use custom transition curves and tweens to create incredible animations.
• Helpers to animate 2D rigs, with skeletons and IK.
• Efficient optimizer to pack imported 3D animations.
☑ Script with full freedom
More choices than any other engine.
• GDScript Python-like scripting language, designed to make games with zero hassle. Learn why our community loves it.
• Full C# 8.0 support using Mono.
• Full C++ support without needing to recompile the engine using GDNative.
• Visual scripting using blocks and connections.
• Additional languages with community-provided support for Rust, Nim, D and other languages.
• Built-in editor with syntax highlighting, real-time parser and code completion.
• Integrated documentation. Browse and search the whole API offline, without leaving the editor.
☑ Debug & Optimize
Solve bugs and performance bottlenecks with the built-in debugger.
• Explore and modify your project while it's running, even on mobile devices.
• Keeps changes by default after closing the project.
• Built-in profiler with graph plotting and time seeking.
• Video memory debugger.
• Error logger with full stack traces.
• Network profiler with per-node remote call tracking and bandwidth usage estimation.
☑ Multi-platform editor
Create games on any desktop OS.
• Works on Windows, macOS, Linux, and *BSD.
• The editor runs in 32-bit and 64-bit on all platforms.
• Small download (around 30 MB), and you are ready to go.
• Easy to compile on any platform (no dependency hell).
☑ Multi-platform deploy
Deploy games everywhere!
• Export to desktop platforms: Windows, macOS, Linux, UWP, and *BSD.
• Export to mobile platforms: iOS and Android.
• Consoles: Nintendo Switch, PlayStation 4, Xbox One via third-party providers (read more).
• Export to the web using HTML5 and WebAssembly.
• One-click deploy & export to most platforms. Easily create custom builds as well.
☑ XR support
Godot makes cross-platform Augmented and Virtual Reality development easy.
• Plugin structure gives access to various SDKs such as the OpenVR, OpenXR and Oculus SDKs. Godot works with HTC Vive, Valve Index, Oculus Rift, Oculus Go, Oculus Quest, all Microsoft MR headsets, and many more.
• ARKit support is directly available in the iOS build.
☑ Easy teamwork
Godot is designed from the ground up for smooth teamwork.
• Friendly filesystem usage that works great with version control systems like Git, Subversion, Mercurial, you name it.
• Scene instancing makes teamwork a breeze. Every team member can focus on their own scene, be it a character, level, etc., and edit without stepping on each other's toes.
• Text-based descriptive and optimal scene format.
• Script syntax supported by GitHub.
🍥️ Debian:
Full 2D and 3D game engine with editor
Godot is an advanced, feature packed, multi-platform 2D and 3D game engine. It provides a huge set of common tools, so you can just focus on making your game without reinventing the wheel.
🌍️ Wikipedia:
Godot is a 2D and 3D multi-platform compatible 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 Windows, macOS, Linux, BSD and Haiku (both 32 and 64-bit) and can create games targeting PC, console, mobile and web platforms.
Overview
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 Windows, macOS, Linux, FreeBSD / DragonFly BSD, Android, iOS, BlackBerry 10 and HTML5. There is also work-in-progress support for Windows Runtime.
Scripting
Godot games are created either in C++ 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 engine's editor includes a script editor with auto indentation, syntax highlighting and code completion. It also features a debugger with the ability to set breakpoints and program stepping.
Rendering
The graphics engine uses OpenGL ES 2.0 for all supported platforms. The engine supports transparency, normal mapping, specularity, dynamic shadows using shadow maps and full-screen post-processing effects like FXAA, bloom, DOF, HDR, gamma correction and fog. This also supports a simplified shader language that resembles a near subset of GLSL. Shaders can be used for materials and post-processing as well as for 2D rendering. The shaders are divided in vertex and fragment sections. There is also the possibility to create shaders 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 includes 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 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:
• Occlusion culling
• Level of detail
• Performance analysis graphs
• Light baking
• Multithreading
• 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
History
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, 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.
On 22 June 2016, Godot received a $20,000 Mozilla Open Source Support (MOSS) “Mission Partners” award to be used to add Web Sockets, WebAssembly and WebGL 2.0 support.
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.
Usage
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".
Un moteur de jeux 2D et 3D, par la Godot Team, initié par Juan Linietsky (reduz, reduzio) & Ariel Manzur (amanzur), sponsorisé par le studio Okam Studio.
Godot Engine est un moteur et IDE de jeux 2D et 3D performant, libre (sous la très permissive licence MIT) et multi-plateforme, riche en fonctionnalités avec un vaste ensemble d'outils, permettant au développeur de créer un jeu multi-plateforme à partir de rien sans nécessiter d'outils externes autres que les outils habituels de création de contenu (graphismes et sons), et de se concentrer sur son jeu sans avoir à réinventer la roue.
Utilisé par ces jeux / Used by these games: Boctok (Vostok), Dolphin Island 2, Enigmaki, Herbi, Minilens, Rat is Fat, Tanks of freedom, Veraball,
Crédit image (lien ci-dessus): Awesome Open Source
☑ Conception innovante
Créez des jeux en toute simplicité grâce à l'approche unique de Godot en matière de développement de jeux.
• Des modules pour tous vos besoins. Godot est livré avec des centaines de modules intégrés qui font de la conception de jeux un jeu d'enfant. Vous pouvez également créer les vôtres pour personnaliser les comportements, les éditeurs et bien plus encore.
• Système de scène flexible. Créez des compositions de modules grâce à la prise en charge de l'instanciation et de l'héritage.
• Éditeur visuel avec tous les outils dont vous avez besoin packagés dans une belle interface utilisateur contextuelle et épurée.
• Un pipeline de création de contenu convivial pour les artistes, les concepteurs de niveaux, les animateurs et tous les autres.
• Édition en direct persistante où les modifications ne sont pas perdues après l'arrêt du jeu. Il fonctionne même sur les appareils mobiles !
• Créez vos propres outils personnalisés en toute simplicité grâce à l'incroyable système d'outils.
☑ Des graphismes 3D superbes
Le moteur de rendu basé sur la physique est doté d'une multitude de fonctionnalités qui donneront à vos jeux un aspect incroyable.
• Une architecture innovante qui combine le meilleur du rendu direct avec l'efficacité du rendu différé.
• Rendu basé sur la physique avec support complet de MSAA et FXAA.
• BSDF complet avec diffusion, réflexion, réfraction, anisotropie, couche transparente, transmittance et plus encore.
• Illumination globale pour des graphiques superbes en temps réel. Il peut également être calculé à l'avance pour obtenir de beaux résultats même sur les appareils bas de gamme.
• Effets de post-traitement et de traitement intermédiaire, y compris un tonemappeur prenant en charge le HDR, plusieurs courbes standard et l'exposition automatique, les réflexions dans l'espace de l'écran, le brouillard, les efflorescences, la profondeur de champ et bien plus encore.
• Langage de shaders facile à utiliser basé sur GLSL, avec éditeur intégré et complétion de code.
☑ Créez des jeux 2D en toute simplicité
Godot est livré avec un moteur 2D entièrement dédié, packagé avec des fonctionnalités.
• Travaillez en pixels comme unités, mais adaptez-les à toutes les tailles d'écran et à tous les rapports d'aspect.
• Éditeur de cartes à tuiles avec auto-inclinaison, rotation, formes de grille personnalisées et couches multiples.
• Des lumières 2D et des cartes normales pour donner à vos jeux 2D un aspect plus réaliste.
☑ Animez tout
Le système d'animation le plus flexible.
• Animez littéralement tout, des squelettes aux objets en passant par les appels de fonction.
• Utilisez des courbes de transition personnalisées et des extensions pour créer des animations incroyables.
• Des aides pour animer des structures 2D, avec squelettes et IK.
• Optimiseur efficace pour packager les animations 3D importées.
☑ Script en toute liberté
Plus de choix que n'importe quel autre moteur.
• GDScript est un langage de script de type Python, conçu pour créer des jeux en toute simplicité. Découvrez pourquoi notre communauté l'adore.
• Prise en charge complète de C# 8.0 avec Mono.
• Support complet de C++ sans avoir à recompiler le moteur grâce à GDNative.
• Scripts visuels utilisant des blocs et des connexions.
• Langages supplémentaires avec le support fourni par la communauté pour Rust, Nim, D et d'autres langages.
• Éditeur intégré avec coloration syntaxique, analyseur syntaxique en temps réel et complétion de code.
• Documentation intégrée. Parcourez et recherchez l'ensemble de l'API hors ligne, sans quitter l'éditeur.
☑ Débogage et optimisation
Résolvez les bogues et les goulets d'étranglement en matière de performances grâce au débogueur intégré.
• Explorez et modifiez votre projet en cours d'exécution, même sur les appareils mobiles.
• Conservez les modifications par défaut après la fermeture du projet.
• Profiler intégré avec traçage de graphiques et recherche de temps.
• Débogueur de mémoire vidéo.
• Journal d'erreurs avec traces de pile complètes.
• Profileur réseau avec suivi des appels à distance par module et estimation de l'utilisation de la bande passante.
☑ Éditeur multiplateforme
Créez des jeux sur n'importe quel système d'exploitation de bureau.
• Fonctionne sur Windows, macOS, Linux et *BSD.
• L'éditeur fonctionne en 32 bits et 64 bits sur toutes les plateformes.
• Un petit téléchargement (environ 30 Mo), et vous êtes prêt à commencer.
• Facile à compiler sur toutes les plateformes (pas de dépendance infernale).
☑ Déploiement multi-plateforme
Déployez des jeux partout !
• Exportez vers les plateformes de bureau : Windows, macOS, Linux, UWP et *BSD.
• Exportez vers les plateformes mobiles : iOS et Android.
• Consoles : Nintendo Switch, PlayStation 4, Xbox One via des fournisseurs tiers (en savoir plus).
• Exportation vers le Web en utilisant HTML5 et WebAssembly.
• Déploiement et exportation en un clic sur la plupart des plateformes. Créez également des versions personnalisées en toute simplicité.
☑ Support XR
Godot facilite le développement multi-plateforme de la réalité virtuelle et augmentée.
• La structure de plugin donne accès à divers SDK tels que les SDK OpenVR, OpenXR et Oculus. Godot fonctionne avec HTC Vive, Valve Index, Oculus Rift, Oculus Go, Oculus Quest, tous les casques MR de Microsoft, et bien d'autres encore.
• La prise en charge d'ARKit est directement disponible dans la build iOS.
☑ Travail d'équipe facile
Godot est conçu dès le départ pour un travail d'équipe fluide.
• Utilisation conviviale du système de fichiers qui fonctionne très bien avec les systèmes de contrôle de version comme Git, Subversion, Mercurial, et plus encore.
• L'instanciation des scènes facilite le travail en équipe. Chaque membre de l'équipe peut se concentrer sur sa propre scène, qu'il s'agisse d'un personnage, d'un niveau, etc. et éditer sans se marcher sur les pieds.
• Format descriptif et optimal de la scène basé sur le texte.
• Syntaxe de script prise en charge par GitHub.
🌍️ Wikipedia:
Godot est un moteur de jeu multi-plateforme capable de rendus 2D et 3D. Il est depuis janvier 2014 ouvert au public et disponible sous licence MIT, ce qui fait de lui un logiciel libre.
Fonctionnalités
En tant qu'outil de création de jeux vidéo, Godot couvre de nombreux aspects de leur réalisation. L'utilisateur de Godot a la possibilité d'importer du contenu (images, son, modèles 3D), de créer des animations, de programmer le comportement de différents éléments du jeu grâce à un langage de script, de soumettre des objets à une physique (forces, collisions), de placer des sources de lumière, de créer un niveau constitué de tuiles au sein de l'éditeur, etc.
Rendu
Godot possède à la fois un moteur de rendu 3D et un moteur de rendu 2D dédiés. Cette approche est différente de certains autres moteurs de jeu tels que Unity, qui manipulent une scène 3D dans tous les cas, et utilisent une caméra orthogonale pour restituer "l'effet 2D".
Moteur de rendu 2D
Le moteur de rendu 2D de Godot utilise le pixel en tant qu'unité de distance, quitte à utiliser des agrandissements pour obtenir les dimensions d'image voulues sur l'écran. Il est capable de gérer les rendus :
• De sprites statiques,
• D'animations, soit avec des sprites animées (succession d'images), soit par utilisation d'un squelette,
• De défilement différentiel (ou parallaxe), technique utilisée pour faire défiler plusieurs plans d'un décor à des vitesses différentes pour donner l'illusion de profondeur,
• D'effets de particules,
• D'effets de lumière ; les éclairages et les ombres.
Moteur de rendu 3D
(section vide)
Arbre de scène
Une des particularités de Godot réside dans son concept de scène. Une scène, dans Godot, est un ensemble de nœuds organisés en arbre. Ces nœuds peuvent être des sprites, des formes servant de masques de collision, des sources lumineuses, des sources sonores, des objets physiques, des gestionnaires d'animation, ou d'autres choses encore. Par exemple, on peut créer une scène "personnage" composée d'une sprite, d'un objet physique et d'une forme de collision.
Il est important de noter qu'un nœud d'une scène peut aussi être l'instance d'une autre scène. Il est ainsi possible de réutiliser une scène définie séparément en l'imbriquant dans une autre. En reprenant l'exemple précédent, on peut tout à fait créer une scène principale "niveau" qui est contient plusieurs scènes "personnage", entre autres nœuds.
Chaque scène est enregistré sous forme de fichier, qui peut être un fichier texte pour faciliter la gestion de versions.
Langage de script
Godot permet d'attacher un script à n'importe quel nœud présent dans l'arbre de scène, afin de programmer le comportement de ce nœud. Le langage de programmation utilisé pour ce faire est le GDScript, qui est une variante de Python conçue pour fonctionner plus harmonieusement avec Godot.
Plusieurs raisons ont été évoquées pour justifier ce choix, qui a été préféré aux langages Lua, Python, Squirrel ou Javascript utilisés avec leurs interprètes. Ces raisons sont :
• La relative facilité d'apprentissage de ce nouveau langage,
• La possibilité de fournir plus facilement un meilleur éditeur de code source dans l'interface utilisateur de Godot. En effet, GDScript permet plus aisément le support du complètement et le support de l'édition de code pendant le fonctionnement du jeu (Live editing),
• D'autres raisons plus techniques, comme l'interfaçage plus simple entre ce langage et le C++, la gestion plus adaptée du ramasse-miette, la possibilité d'ajouter de manière native dans le langage des types de variables telles que les vecteurs et les matrices, ou le support de threads.
Dans le cas où une portion de code doit être programmé avec un fort souci d'optimisation et de performance, Godot permet aussi de remplacer une classe GDScript par une classe C++ sans incidence avec le reste du jeu.
À propos de Godot
Histoire du projet
Juan Linietsky et Ariel Manzur avaient commencé à développer un moteur de jeu depuis 2001. Cependant, en 2007, ce moteur fut mis à mal par quelques particularités de conception apparues avec certaines machines telles que l'iPhone ou la PlayStation3. En effet, une gestion de la mémoire différente et les microprocesseurs multi-cœur demandaient d'importantes modifications dans la façon de développer des jeux. Ils furent donc obligés de se séparer de l'architecture du moteur qu'ils avaient alors, et de repartir sur une autre base. Leur nouveau moteur de jeu est celui qui deviendra Godot. Ils avaient pour idée de le rendre libre dès le départ, mais préféraient le développer en interne et attendre que le projet ait une certaine maturité avant de le publier. Cinq à six ans après que le nouveau moteur de jeu ait été commencé, il commença à être utilisé au sein de OKAM studio. Cela leur permit de se focaliser sur la préparation du moteur pendant que le reste de l'équipe concevaient des jeux en l'utilisant9.
Le 14 janvier 2014, la première version ouverte au public fut publiée sous licence MIT, via le site officiel. Il s'agissait d'une version béta. Godot a aussi été publié sur Steam deux ans plus tard (le 24 février 2016), ce qui, d'après Ariel Manzur, a fait gagner énormément de crédibilité au projet.
Choix du nom
Le nom "Godot" a été choisi en référence à la pièce de théâtre En attendant Godot de Samuel Beckett.
Le moteur de jeu ne s'est pas toujours appelé "Godot". Cependant, avant qu'il ne le soit définitivement, ce nom était déjà utilisé en tant que nom de code pendant le développement en interne. Il désignait ce que ce projet pourrait devenir, à savoir, un moteur de jeu ayant des objectifs assez généraux, et doté d'une interface utilisateur décente. Un tel projet demandera beaucoup de temps avant d'aboutir (s'il aboutit), d'où la référence à En attendant Godot, dont l'attente est un thème de prédilection.
Juan Linietsky justifie a posteriori le choix de garder officiellement ce nom. En effet, les personnages de la pièce attendent en permanence un individu nommé Godot sans que personne ne sache s'il viendra effectivement un jour. Juan compare ces personnages avec les utilisateurs de Godot, qui sont en permanence dans l'attente de nouvelles fonctionnalités pour le moteur.
🔧️ INSTALLATION:
⚙️ Installation à partir du binaire du moteur :
Installation à partir du paquet Manjaro/Arch :
• (✔ v. 3.4.4) Il est dans les dépôts Manjaro/Arch (souvent dans sa dernière version), il suffit d'installer le(s) paquet(s).
Installation à partir du binaire classique :
• Des binaires statiques (32-bits et 64-bits) sont disponibles (voir la section "Download" sur son site, et la section "Resources" ci-dessus), il suffit de décompresser le binaire correspondant à l'architecture de votre installation dans le répertoire de votre choix. Des binaires de différentes versions sont également disponibles sur Tuxfamily (voir la section "Resources" ci-dessus).
📄️ Installation à partir du source du moteur :
• (✔ 4.0 alpha 6 / 50bb184) Si vous souhaitez quelque-chose de très récent (versions de développement) et/ou qu'il n'y a pas de binaire disponible pour votre distribution/architecture (32/64-bits), la compilation du source est une bonne idée, voir un passage obligé.
☝️ Nota:
• Notez que la compilation prend près de 30 minutes, et que si vous avez le choix, il est préférable de télécharger le binaire (et notamment une version stable). J'ai juste voulu ici tester sa compilation par curiosité : il se compile bien et fonctionne.
• Voir le lien "Godot (Compiling for X11 (Linux, *BSD))" dans la section "Resources" ci-dessus).
▸ Installation des dépendances (en dépôt) :
• Installez au préalable les paquets suivants : scons libx11 libxcursor libxinerama mesa glu libpulse freetype2 openssl libudev0-shim libxi libxrandr libwslay
(pour Debian/Ubuntu, installez les paquets éponymes, généralement précédés du préfixe “lib” et suivis du suffixe "-dev" s'ils sont disponibles, et notamment : build-essential pkg-config libgl1-mesa-dev (à la place de mesa) libglu-dev (à la place de glu) libasound2-dev libfreetype6-dev (à la place de freetype2) libssl-dev (à la place de openssl) libudev-dev (à la place de libudev0-shim))
▸ Téléchargement du source (sur GitHub):
• Si vous souhaitez une version publiée / stable :
- En HTTP : sur la page de développement du site (lien "Dev site" ci-dessus) vous cliquez sur "Clone"
- Ou en console, dans le répertoire de votre choix, lancez :
$ git clone -b "Nom_de_la_release" --recursive https://github.com/godotengine/godot
Nom_de_la_release : à remplacer par le nom d'une release valide indiquée sur la page de développement (sur GitHub, dans la section Release, le nom valide est l'étiquette située à gauche du titre, ou cliquez sur "Tags" pour obtenir la liste des étiquettes valides).
• Si vous souhaitez obtenir la version la plus récente (de développement, non stable, potentiellement non fonctionnelle), dans le répertoire de votre choix, lancez :
$ git clone --recursive https://github.com/godotengine/godot
▸ Compilation du moteur :
• Dans son répertoire racine lancez : $ scons platform=x11
↪ vous obtenez le(s) binaire(s): bin/godot.linuxbsd.tools.64
(vous pouvez le renommer en godot)
Installation d'un jeu Godot à partir de son source :
• (🧪️not_tested) Si vous souhaitez quelque-chose de très récent (versions de développement) et/ou qu'il n'y a pas de binaire disponible pour votre distribution/architecture (32/64-bits), la compilation du source est une bonne idée, voir un passage obligé.
▸ Téléchargement du source du jeu
• Téléchargez le source de votre jeu et décompressez-le
▸ (Utilisez la version des dépôts, sinon) Téléchargement et décompression du moteur Godot
• Téléchargez et décompressez le moteur Godot engine: [Godot (Download)]
▸ Chargement du jeu et lancement du moteur Godot
• (le plus simple) Si vous avez installé le moteur Godot depuis les dépôts de votre distribution, cliquez sur le fichier “project.godot” livré avec le source de votre jeu (ce qui va lancer le moteur Godot et le chargement de votre jeu).
• (ou le plus long) lancez le moteur Godot et chargez votre jeu :
⚬ Lancez le moteur Godot engine
⚬ Chargez votre jeu via votre navigateur de fichier par glisser-déposer de son répertoire sur l'interface du moteur Godot engine
• (ou s'il avait déjà été chargé) sélectionnez votre jeu en double-cliquant sur sa ligne sous l'interface de Godot
▸ Test du jeu avant compilation
• Si vous souhaitez tester le jeu avant de créer l'exécutable, en haut à droite de l'interface cliquez sur "▸", pour arrêter le jeu il suffit de cliquer sur "■".
▸ Compilation
• Créez votre binaire en sélectionnant "Projet" ➜ "Exporter" ➜ "Ajouter..." ➜ "Linux X11" (si vous avez une architecture 32-bits, décochez "64 Bits") ➜ "Exporter le projet" ➜ sélectionnez le répertoire souhaité (ou créez en un via le bouton "Créer un dossier"): si le nom de l'exécutable vous convient, cliquez sur le bouton "Enregistrer", puis quittez Godot (en haut à gauche de l'interface cliquez sur "Scène" ➜ "Quitter").
↪ vous obtenez le(s) binaire(s): xxxx
💡 S'il indique "Aucun modèle d'exportation n'a été trouvé (...)":
• Cliquez sur le lien "Gérer les modèles d'exportation" en bas du menu, puis sur le menu suivant "Télécharger et installer", puis sur "Fermer" une fois le téléchargement achevé.
• et reprenez ci-dessus ("Créez votre binaire en sélectionnant "Projet" ➜ "Exporter"(...)").
🚀️ LANCEMENT DE L'INTERFACE:
• Si vous avez installé le binaire du moteur depuis son site, cliquez sur son binaire ou lancez depuis son répertoire (xxx à remplacer par le n° de version): $ ./Godot_vxxx
• Si vous avez installé le jeu à partir d'un paquet : Alt F2 puis saisissez : godot
• Si vous avez compilé le jeu à partir de son source, en console dans son répertoire racine lancez (à adapter en fonction du binaire produit): $ bin/godot.linuxbsd.tools.64
💡 Répertoires des données du moteur :
• les données du moteur : ~/.config/godot/
• les données des jeux testés avec le moteur : ~/.local/share/godot/
➥ (Facultatif) Installation du jeu Third Person Shooter Demo (g(3.1/201811)) à partir de son source :
(✔ Godot v. 3.4.4) Installation :
• Téléchargez son source via la commande suivante : $ git clone https://github.com/godotengine/tps-demo
• Lancez l'interface de Godot
• A l'aide de votre gestionnaire de fichier, glissez-déposez le répertoire tps-demo/ sur l'interface de Godot et attendez qu'il charge le contenu complémentaire.
• Lancez le jeu sous Godot en cliquant sur le bouton "▸"
🕵️ Test (✔ v. 3.4.4) par goupildb (config. : Manjaro 64-bit) :
Le : 16 avril 2022
⏱️ Durée du test : 60 minutes.
🎯️ Objectif de ce test: rafraîchir la section "Installation" ci-avant.
J'ai effectué différents tests et compilations :
👎️ • Compilation du moteur Godot (4.0 alpha 6 / 50bb184) sous Manjaro/Arch (ma précédente compilation avait été effectuée sous Debian): la compilation est longue (comme pour Debian, environ 30 minutes) mais fonctionne bien. Le binaire produit a un nom assez bizarre (godot.linuxbsd.tools.64) mais fonctionne. Néanmoins il est assez lent à afficher ses fenêtres (par rapport au binaire du site et des dépôts). Lors du test avec un jeu (qui fonctionne bien avec Godot 3.4.4) il m'a proposé de convertir le contenu - ce que j'ai accepté après avoir fait une sauvegarde du répertoire. Si le moteur semble fonctionner, en revanche le jeu converti ne fonctionne pas, il m'a signalé des soucis de contenu, je n'ai pas insisté. De toute façon il s'agit d'une version alpha, et l'objectif de mon test était avant tout de valider les dépendances pour la compilation sous Manjaro dont les noms des dépendances diffèrent de ceux de Debian : ok.
👍️ • Test du jeu "Third Person Shooter Demo" (voir la section "Installation" ci-avant): précédemment je n'étais pas parvenu à l'installer (avec Godot 3.1 alpha 3). Avec Godot 3.4.4, le jeu s'installe facilement et plus simplement (il n'est plus nécessaire d'installer l'utilitaire lfs notamment), et il fonctionne parfaitement.
👍️ • Test du lancement d'un jeu ([Super Dungeon Delve]) sous l'interface de Godot 3.4.4 : là aussi le processus semble s'être considérablement simplifié. Le jeu s'installe via le gestionnaire de fichier par glisser-déposer du répertoire du jeu sur l'interface de Godot. S'il manque du contenu interne au moteur, Godot le signale et vous propose de cliquer sur son interface pour le récupérer et l'installer.
👍️ • Compilation d'un source de jeu Godot. L'objectif ultime de mon test était de re-valider et de simplifier (si possible) la section "Installation" ci-dessus. Effectivement, la compilation semble encore plus simple (elle pourrait l'être encore un peu davantage si le chargement du module Linux/X11 se faisait automatiquement, néanmoins il n'est pas compliqué de le faire manuellement et ça fonctionne bien).
↪ J'ai été en mesure de produire rapidement et facilement un binaire Linux-64bit à partir du source Godot du jeu Super Dungeon Delve : mission accomplie avec brio, bravo à toute l'équipe de Godot !
• 🕹️ Conclusion :
Impression globale : 👍️
L'utilisation de Godot s'est encore simplifiée :
• il n'est plus nécessaire de télécharger du contenu séparément,
• la conversion automatique d'un ancien source Godot vers un nouveau semble automatique (ce dernier point reste à valider sur un autre exemple),
Et le moteur Godot est encore plus performant (le jeu "Third Person Shooter Demo" est un exemple flagrant des performances atteintes en 3D). Chapeau bas.
👏️ ❤️ Un grand bravo et merci (notamment pour la version Linux !) à ses auteurs !