05/10/2025
Ich wollte wissen, wie man mit der Godot-Engine an eine Datenbank anbindet.
Dazu hab ich ein Konzept verwendet, das ich erstmals Ende der 90er-Jahre mit PHP 3, MySQL 3 und HTML 3 umgesetzt hab – digitaler Einkaufszettel. Damals war es noch nicht üblich, seinen Einkaufszettel auf dem Handy zu haben. Stattdessen hatte diese Urversion eine Funktion zum Ausdrucken des Einkaufszettels.
Zwischenzeitlich hab ich das immer wieder umgebaut, teilweise auch mit anderen Technologien, z.B. C # und MS-SQL.
Der Zugriff auf die Datenbank in Godot erfolgt über HTTPRequests einer Klasse namens HTTPClient. Soll überall funktionieren, nicht nur auf dem Rechner oder in dem Segment, in dem die Datenbank läuft, weshalb der Zugriff über eine SQL-Client-Bibliothek suboptimal ist, weil man dazu den Datenbank-Port nach draußen routen müsste. Wesentlich sicherer ist es, wenn der Port im Internet erst gar nicht zur Verfügung steht.
Die Lösung ist allerdings nicht neu. Schon seit geraumer Zeit unterscheidet man deshalb Frontend- und Backend-Programmierung – HTTPRequests gab es schon mit AJAX. Für das Backend braucht es ein serverseitiges Programm (Webservice/Datenservice), das Zugriff auf die Datenbank hat und über Commands unter Berücksichtigung von Sicherheitsstandards Funktionalität nach draußen zur Verfügung stellt. Richtig angebunden spuckt dieser Datenservice die von Godot angeforderten Daten aus, die daraufhin von Godot verarbeitet werden. Das geht auch andersrum. Godot kann auch Daten an die Datenbank übermitteln und dort hinterlegen.
Es geht somit nicht nur um das Godot-Programm als Frontend, sondern auch um den Datenservice als Backend, den ich in diesem Fall in PHP geschrieben hab – geht aber auch mit vielen anderen Sprachen, z.B. C als CGI-Programm oder C # als Webservice.