Το **Godot** είναι μια μηχανή παιχνιδιών για πολλαπλές πλατφόρμες, δωρεάν και ανοιχτού κώδικα που κυκλοφορεί με άδεια MIT. Αναπτύχθηκε αρχικά από τους Αργεντινούς προγραμματιστές λογισμικού Juan Linietsky και Ariel Manzur για αρκετές εταιρείες στη Λατινική Αμερική πριν από τη δημόσια κυκλοφορία του. Το περιβάλλον ανάπτυξης εκτελείται σε πολλά λειτουργικά συστήματα, όπως Linux, BSD, macOS και Microsoft Windows. Έχει σχεδιαστεί για τη δημιουργία παιχνιδιών 2D και 3D που στοχεύουν σε υπολογιστές, κινητές συσκευές και πλατφόρμες ιστού. Μπορεί επίσης να χρησιμοποιηθεί για τη δημιουργία λογισμικού μη παιχνιδιών, συμπεριλαμβανομένων των συντακτών.

Χαρακτηριστικά
--------------

Ο Godot στοχεύει να προσφέρει ένα πλήρως ενσωματωμένο περιβάλλον ανάπτυξης παιχνιδιών. Επιτρέπει στους προγραμματιστές να δημιουργήσουν ένα παιχνίδι, χωρίς να χρειάζονται άλλα εργαλεία πέρα από αυτά που χρησιμοποιούνται για τη δημιουργία περιεχομένου (οπτικά στοιχεία, μουσική κ.λπ. ). Η αρχιτεκτονική του κινητήρα είναι χτισμένη γύρω από την ιδέα ενός δέντρου «κόμβων». Οι κόμβοι είναι οργανωμένοι μέσα σε "σκηνές", οι οποίες είναι επαναχρησιμοποιήσιμες, παραδειγματικές, κληρονομούμενες και ένθετες ομάδες κόμβων. Όλοι οι πόροι του παιχνιδιού, συμπεριλαμβανομένων των σεναρίων και των στοιχείων γραφικών, αποθηκεύονται ως μέρος του συστήματος αρχείων του υπολογιστή (και όχι σε μια βάση δεδομένων ). Αυτή η λύση αποθήκευσης προορίζεται να διευκολύνει τη συνεργασία μεταξύ των ομάδων ανάπτυξης παιχνιδιών που χρησιμοποιούν συστήματα ελέγχου εκδόσεων λογισμικού.

### Σενάριο

 Οπτικό σενάριο.
Ο Godot υποστηρίζει μια ποικιλία γλωσσών προγραμματισμού για τη δημιουργία παιχνιδιών, συμπεριλαμβανομένων των ενσωματωμένων γλωσσών GDScript, C++ και C#. Επιπλέον, ο κινητήρας περιλαμβάνει GDNative, μια δυνατότητα δημιουργίας δεσμών με άλλες γλώσσες. Οι επίσημα υποστηριζόμενες γλώσσες GDNative περιλαμβάνουν τη C και τη C++. Οι γλώσσες που υποστηρίζονται από την κοινότητα περιλαμβάνουν τις Rust, Nim, JavaScript, Haskell, Clojure, Swift και D. Υποστηρίζεται επίσης η οπτική κωδικοποίηση, μέσω της ενσωματωμένης γλώσσας VisualScript, που έχει σχεδιαστεί για να είναι οπτικό ισοδύναμο με το GDScript.

Το πρόγραμμα επεξεργασίας Godot περιλαμβάνει ένα πρόγραμμα επεξεργασίας κειμένου με αυτόματη εσοχή, επισήμανση σύνταξης και συμπλήρωση κώδικα. Διαθέτει επίσης πρόγραμμα εντοπισμού σφαλμάτων με δυνατότητα ορισμού σημείων διακοπής και βημάτων προγράμματος 

#### GDScript

 Στιγμιότυπο οθόνης επεξεργασίας ενός αρχείου GDScript με χρήση του ενσωματωμένου προγράμματος επεξεργασίας σεναρίων του Godot 3.4
Ο Godot έχει τη δική του ενσωματωμένη γλώσσα δέσμης ενεργειών, την GDScript, μια υψηλού επιπέδου, δυναμικά πληκτρολογημένη γλώσσα προγραμματισμού που είναι συντακτικά παρόμοια με την Python. Σε αντίθεση με την Python, το GDScript είναι βελτιστοποιημένο για την αρχιτεκτονική που βασίζεται στη σκηνή του Godot και μπορεί να καθορίσει αυστηρή πληκτρολόγηση μεταβλητών. Οι προγραμματιστές του Godot έχουν δηλώσει ότι πολλές εναλλακτικές γλώσσες δέσμης ενεργειών τρίτων όπως οι Lua, Python και Squirrel δοκιμάστηκαν πριν αποφασίσουν ότι η χρήση μιας προσαρμοσμένης γλώσσας επέτρεπε ανώτερη βελτιστοποίηση και ενσωμάτωση επεξεργαστή. Στην έκδοση 4.0, μια νέα δυνατότητα που ονομάζεται πίνακας Typed εφαρμόστηκε στο GDScript. Αυτό επιτρέπει στους χρήστες να αλλάζουν εύκολα έναν κανονικό πίνακα σε πληκτρολογημένο και αντίστροφα χωρίς να αλλάζουν πολύ κώδικα. 

Ένα απλό πρόγραμμα "Hello world" μπορεί να γραφτεί ως εξής:

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

```
Πιο πολύπλοκα προγράμματα, όπως αυτό που δημιουργεί μια ακολουθία Fibonacci, είναι επίσης δυνατά:

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

```

### Απόδοση

Η μηχανή γραφικών του Godot χρησιμοποιεί OpenGL ES 3.0 για όλες τις υποστηριζόμενες πλατφόρμες. Διαφορετικά, χρησιμοποιείται το OpenGL ES 2.0. Αναπτύσσεται μελλοντική υποστήριξη για το Vulkan, η οποία περιλαμβάνει επίσης τη δυνατότητα υποστήριξης για Metal χρησιμοποιώντας MoltenVK. Ο κινητήρας υποστηρίζει κανονική χαρτογράφηση, ιδιομορφία, δυναμικές σκιές με χρήση σκιωδών χαρτών, ψητό και δυναμικό παγκόσμιο φωτισμό και εφέ μετα-επεξεργασίας πλήρους οθόνης όπως άνθηση, DOF, HDR και διόρθωση γάμμα. Μια απλοποιημένη γλώσσα shader, παρόμοια με την GLSL, έχει επίσης ενσωματωθεί. Οι σκίαστρες μπορούν να χρησιμοποιηθούν για υλικά και μετα-επεξεργασία. Εναλλακτικά, μπορούν να δημιουργηθούν με χειρισμό κόμβων σε ένα οπτικό πρόγραμμα επεξεργασίας.

Ο Godot περιλαμβάνει επίσης μια ξεχωριστή μηχανή γραφικών 2D που μπορεί να λειτουργεί ανεξάρτητα από τη μηχανή 3D. Ο κινητήρας 2D υποστηρίζει χαρακτηριστικά όπως φώτα, σκιές, σκίαστρες, σετ πλακιδίων, κύλιση παράλλαξης, πολύγωνα, κινούμενα σχέδια, φυσική και σωματίδια. Είναι επίσης δυνατή η μίξη 2D και 3D χρησιμοποιώντας έναν «κόμβο παραθύρου προβολής».

### Αλλα χαρακτηριστικά

Ο Godot περιέχει ένα σύστημα κινούμενων εικόνων με GUI για σκελετικά κινούμενα σχέδια, ανάμειξη, δέντρα κινούμενων σχεδίων, μορφοποίηση και περικοπές σε πραγματικό χρόνο. Σχεδόν κάθε μεταβλητή που ορίζεται ή δημιουργείται σε μια οντότητα παιχνιδιού μπορεί να κινηθεί. Ο κινητήρας χρησιμοποιεί το Bullet για τρισδιάστατη προσομοίωση φυσικής. 

Πρόσθετα χαρακτηριστικά περιλαμβάνουν:

\* Γραφήματα ανάλυσης απόδοσης
* Ελαφρύ ψήσιμο
* Multithreading
* Σύστημα πρόσθετων
* Απόδοση στόχων
* Αναπαραγωγή βίντεο με χρήση του κωδικοποιητή Theora
* Αναπαραγωγή ήχου των κωδικοποιητών Ogg Vorbis, MP3 και WAV
* Σύστημα σωματιδίων
* Σωλήνας εισαγωγής/εξαγωγής/συμπίεσης υφής
* Υποστήριξη Navmesh
* Γραφικό περιβάλλον χρήστη
* Πληκτρολόγιο, Ποντίκι, gamepad και υποστήριξη οθόνη αφής

Παραπομπές
----------

1. ↑  «Maintenance release: Godot 4.2.1».
2. ↑  «Dev snapshot: Godot 4.2 beta 6».
3. ↑  «Historia de Godot». *Headsem* (στα Αγγλικά). 15 Σεπτεμβρίου 2017. Ανακτήθηκε στις 22 Αυγούστου 2022.
4. ↑  Linietsky, Juan (4 Μαρτίου 2016). «Godot 2.0: Talking with the Creator». *80.lv* (στα Αγγλικά). Ανακτήθηκε στις 22 Αυγούστου 2022.
5. ↑  «File system». *Getting started* (στα Αγγλικά). Godot Docs. Ανακτήθηκε στις 22 Αυγούστου 2022.
6. ↑  «Godot With C++» (στα Αγγλικά).
7. ↑  «GDNative C++ example» (στα Αγγλικά). Αρχειοθετήθηκε από το πρωτότυπο στις 22 Αυγούστου 2022. Ανακτήθηκε στις 22 Αυγούστου 2022.
8. ↑  «GDScript basics: History». *Getting started* (στα Αγγλικά). Godot Docs. Ανακτήθηκε στις 22 Αυγούστου 2022.
9. ↑  «TypedArrays» (στα Αγγλικά). Ανακτήθηκε στις 22 Αυγούστου 2022.

Εξωτερικοί σύνδεσμοι
--------------------

* Επίσημος ιστότοπος
* godot στο GitHub
* Παιχνίδια που δημιουργήθηκαν με τον Godot Αρχειοθετήθηκε 2022-08-30 στο Wayback Machine.