Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

La filosofia progettuale di Godot

Now that you've gotten your feet wet, let's talk about Godot's design.

Ogni motore di gioco è diverso e si adatta alle diverse esigenze. Non solo offrono una serie di caratteristiche, ma il design di ogni motore è unico. Questo porta a diversi flussi di lavoro e modi diversi per formare le strutture dei tuoi giochi. Tutto ciò deriva dalle rispettive filosofie progettuali.

Questa pagina è qui per aiutarvi a capire come funziona Godot, a partire da alcuni dei suoi pilastri fondamentali. Non si tratta di un elenco delle caratteristiche disponibili, né di un confronto tra motori. Per sapere se un motore può essere adatto al tuo progetto, devi provarlo tu stesso e comprenderne il design e i limiti.

Please watch Godot explained in 5 minutes if you're looking for an overview of the engine's features.

Progettazione e composizione orientata agli oggetti

Godot abbraccia il design orientato agli oggetti al suo interno con il suo sistema flessibile di scene e la gerarchia dei Nodi, e cerca di stare lontano da rigidi schemi di programmazione per offrire un modo intuitivo per strutturare il tuo gioco.

Per prima cosa, Godot consente di comporre o aggregare scene. È come un prefabbricato annidato: è possibile creare una scena LuceAccesa una scena LanternaRotta che utilizza LuceAccesa. Poi, creare una città piena di LanterneRotte. Cambia il colore di LuceAccesa, salva, e tutte le LanterneRotte della città si aggiornano istantaneamente.

Inoltre, puoi ereditare da qualsiasi scena.

Una scena di Godot può essere un'arma, un personaggio, un oggetto, una porta, un livello, una parte di un livello.... tutto quello che vuoi. Funziona come una classe in codice puro, tranne che sei libero di progettarlo utilizzando l'editor, usando solo il codice, o mescolando e abbinando i due.

È diverso dai prefabbricati che si trovano in vari motori 3D, in quanto è possibile ereditare ed estendere quelle scene. Puoi creare un Mago che estende il tuo Personaggio. Modificare il Personaggio nell'editor e anche il Mago si aggiornerà. Ti aiuta a costruire i tuoi progetti in modo che la loro struttura corrisponda al design del gioco.

image0

Also note that Godot offers many different types of objects called nodes, each with a specific purpose. Nodes are part of a tree and always inherit from their parents up to the Node class. Although the engine does feature some nodes like collision shapes that a parent physics body will use, most nodes work independently from one another.

In other words, Godot's nodes do not work like components in some other game engines.

image1

Sprite2D is a Node2D, a CanvasItem and a Node. It has all the properties and features of its three parent classes, like transforms or the ability to draw custom shapes and render with a custom shader.

Pacchetto tutto incluso

Godot cerca di fornire i propri strumenti per rispondere ai bisogni più comuni. Ha uno spazio di lavoro dedicato allo scripting, un editor di animazione, un editor di tilemap, un editor di shader, un debugger, un profiler, la possibilità di caricare a caldo localmente e su dispositivi remoti, ecc.

image2

The goal is to offer a full package to create games and a continuous user experience. You can still work with external programs as long as there is an import plugin available in Godot for it. Or you can create one, like the Tiled Map Importer.

That is also partly why Godot offers its own programming language GDScript along with C#. GDScript is designed for the needs of game developers and game designers, and is tightly integrated in the engine and the editor.

GDScript lets you write code using an indentation-based syntax, yet it detects types and offers a static language's quality of auto-completion. It is also optimized for gameplay code with built-in types like Vectors and Colors.

Note that with GDExtension, you can write high-performance code using compiled languages like C, C++, Rust, D, Haxe, or Swift without recompiling the engine.

Tieni presente che l'area di lavoro 3D non presenta tanti strumenti come l'area di lavoro 2D. Avrai bisogno di programmi esterni o componenti aggiuntivi per modificare i terreni, animare personaggi complessi e così via. Godot fornisce un'API completa per estendere le funzionalità dell'editor usando il codice di gioco. Vedi 'L'editor Godot è un gioco Godot' sotto.

image4

Un plugin dell'editor di Godot 2 per le Macchine a Stati fatto da kubecz3k. Permette di gestire stati e transizioni in maniera visuale.

Open source

Godot offre una base di codice completamente open source sotto la licenza MIT. Ciò significa che anche tutte le tecnologie fornite devono essere gratuite (come in libertà). Per la maggior parte, sono sviluppati da zero dai collaboratori.

Chiunque può collegare strumenti proprietari per le esigenze dei loro progetti - semplicemente non saranno inclusi nell'engine. Questo può includere Google AdMob, o FMOD. Ognuno di questi può essere invece implementato come plugin di terze parti.

D'altra parte, in un progetto con sorgente aperto è possibile imparare dall'engine ed estenderne le funzionalità come piú ti aggrada. Puoi anche fare debug dei giochi in maniera semplice, poiché Godot stamperà gli errori con una stack trace, anche se arrivano dall'engine stesso.

Nota

Questo non influenzerà il lavoro che fai con Godot in nessun modo: non ci sono vincoli collegati all'engine o qualsiasi cosa tu faccia con esso.

Gestito dalla comunità

Godot is made by its community, for the community, and for all game creators out there. It's the needs of the users and open discussions that drive the core updates. New features from the core developers often focus on what will benefit the most users first.

That said, although a handful of core developers work on it full-time, the project has over 600 contributors at the time of writing. Benevolent programmers work on features they may need themselves, so you'll see improvements in all corners of the engine at the same time in every major release.

L'editor di Godot è un gioco sviluppato in Godot

The Godot editor runs on the game engine. It uses the engine's own UI system, it can hot-reload code and scenes when you test your projects, or run game code in the editor. This means you can use the same code and scenes for your games, or build plugins and extend the editor.

This leads to a reliable and flexible UI system, as it powers the editor itself. With the @tool annotation, you can run any game code in the editor.

image5

RPG in a Box é un editor di GDR voxel fatto con Godot 2. Usa gli strumenti dell'interfaccia utente di Godot per il suo sistema di programmazione basato sui nodi e per il resto dell'interfaccia.

Put the @tool annotation at the top of any GDScript file and it will run in the editor. This lets you import and export plugins, create plugins like custom level editors, or create scripts with the same nodes and API you use in your projects.

Nota

L'editor è completamente scritto in C++ ed è compilato statisticamente nell'eseguibile. Questo significa che non puoi importarlo come un progetto tipico avente un file project.godot.

Motori 2D e 3D separati

Godot offre motori di rendering 2D e 3D dedicati. Di conseguenza, l'unità di base per le scene 2D è il pixel. Anche se i motori sono separati, è possibile renderizzare il 2D in 3D, il 3D in 2D, e sovrapporre gli sprite e le interfacce 2D nel tuo mondo 3D.