Ich habe dies früher in diesem Thread auf stackoverflow.com gefragt. Einer der frühen Kommentare hat mich hierher zu gamedev.stackexchange.com weitergeleitet, also reposte ich hier.
Auf der Suche nach verwandten Fragen habe ich eine Reihe sehr spezifischer Fragen gefunden, aber ich fürchte, die Details haben sich für mich als nutzlos erwiesen, und nach 4 Stunden bei Google bin ich nicht näher dran als ich begonnen habe in Ordnung.
Erstens mein Ziel: Ich habe noch nie ein Spiel gemacht, obwohl ich mehrmals über die Möglichkeit nachgedacht habe. Ich beschloss, mich endlich hinzusetzen und zu lernen, wie man Spiele codiert, Game Engines verwendet usw. So dass ich eines Tages (hoffentlich bald) in der Lage sein werde, funktionierende (wenn auch einfache) Spiele zu entwickeln. Ich kann später anfangen, die Komplexität zu erhöhen, denn jetzt wäre ich froh, eine tastaturgesteuerte Kamera zu haben, die sich in einer 3D-Welt ohne weitere Interaktion bewegt.
Mein Hintergrund: Ich habe in MEHREREN Programmiersprachen gearbeitet, von PHP über C ++ über Java bis hin zu ASM. Ich habe keine Angst vor Herausforderungen, die mit dem Erlernen der neuen Syntax oder den Einschränkungen einer neuen Sprache einhergehen. Alle meine bisherigen Programmiererfahrungen waren jedoch rein nicht grafisch und normalerweise mit wenig oder extrem einfacher Interaktion während der Ausführung. Ich habe umfangreiche und brillante Algorithmen zur Lösung logischer und mathematischer Probleme sowie zur Darstellung von Problemen entwickelt. In jedem Fall wurde die Eingabe jedoch entweder in einer Datei definiert, in einem HTML-Formular übergeben oder in die Konsole eingegeben. Die Interaktion in Echtzeit mit dem Benutzer ist etwas, mit dem ich keine Erfahrung habe.
Meine Frage: Wo soll ich anfangen, um Spiele zu machen? Besser noch - wo soll ich anfangen, um eine mit der Tastatur navigierbare 3D-Umgebung zu erstellen? Bei der Online-Suche habe ich mehrere Ressourcen gefunden, die mit Game-Engines, Grafik-Engines und Physik-Engines verknüpft sind. Hier ist eine kurze Zusammenfassung meiner Erfahrungen mit einigen Motoren, die ich ausprobiert habe:
Unreal SDK: In den Tutorial-Videos wird davon ausgegangen, dass Sie bereits über fundierte Kenntnisse in Bezug auf 3D-Modellierung, Grafik-Engines, Animationen usw. verfügen bin schon vertraut mit. Nachdem ich das SDK heruntergeladen und es gestartet hatte, um zu prüfen, ob die Tools so intuitiv waren, wie sie behaupteten, wurde ich mit etwa 60 Schaltflächen und einer leeren Leere für meine 3D-Modellierung begrüßt. Durch Klicken auf "Add Volume" (um zu versuchen, einen Basiswürfel hinzuzufügen) wurde ich mit einem Menü mit 30 Optionen konfrontiert. In Panik schloss ich den Editor.
Crystal Space: Die Website schien eher informativ zu sein und erklärte, dass Crystal Space nur für Grafiken gedacht war und die Companion-Software CEL eine Entitätslogik für die Erstellung von Spielen lieferte. Es wurde ein Demo-Spiel zur Verfügung gestellt, das mit "CELStart" erstellt wurde, dem einfachen Tool für Leute, die keine Kenntnisse in der Programmierung von Spielen haben. Ich habe das Spiel gestartet, um zu sehen, worauf ich mich freuen könnte. Es fror mehrmals ein, die Menüs waren fehlerhaft, es gab Tausende von Grafikfehlern, Feinde reagierten nicht auf Schaden, und als ich das Spiel schloss, war es gesperrt. Hat diesen Motor aufgegeben.
IrrLicht: In diesem Tutorial wird davon ausgegangen, dass ich Visual Studio 6.0 (Visual Studio 2010) habe. Ihren Anweisungen folgend konnte ich die Bibliothek nicht ordnungsgemäß in Visual Studio importieren und keine der Funktionen aufrufen, die sie weiterhin verwendeten. Manuelles Kopieren von Header-Dateien, Klassendateien und DLLs in den Ordner meines Projekts - das Projekt konnte nicht ordnungsgemäß kompiliert werden.
Es ist klar, dass ich nicht gut anfange und mich im Kreis bewege. Kann mich jemand in die richtige Richtung weisen? Soll ich zuerst ein Programm wie Blender herunterladen und 3D-Modellierung lernen, oder soll ich lernen, wie man eine Grafik-Engine verwendet? Sollte ich nach einer All-Inclusive-Game-Engine suchen oder ist es besser, meine eigene Spielelogik zu programmieren? Wenn jemand tatsächlich seine eigenen Spiele gemacht hat, würde ich lieber hören, wie sie angefangen haben.
Auch Unterricht an meiner Schule ist keine Option. Es wird nichts angeboten.