Zu Godot: Lerne GDScript und probiere dich dann erst einmal an kleinen (Übungs-)Projekten aus. Minispiele wie Asteroids, Pong, Flappy Bird, Snake oder Pacman eignen sich sicherlich gut.
Mache dir einen Plan, bevor du mit einer Umsetzung beginnst. Der sollte beispielsweise beinhalten, was du für Komponenten benötigst, welche Zustände sie haben, wie sie sich verhalten oder welche Fähigkeiten ihnen innewohnen. Am Beispiel von Pacman betrachtet, kann die Spielfigur nach oben/unten/links/rechts laufen, sofern das nächste Feld in dieser Richtung frei ist. Sie kann Punkte fressen und bei Kollision mit einem Gegner gefressen werden. Sie hat eine bestimmte Maximalanzahl an Leben. Nach Fressen eines Powerups kann sie für eine gewisse Zeit Geister mampfen.
Auf diese Weise erlangst du einen besseren Überblick über dein zu implementierendes Spielsystem und verminderst das Risiko, in Designfallen zu tappen oder wichtige Spielelemente bei der Implementation zu vergessen. Für die ermittelten Funktionen/Verhaltensweisen lohnt es sich, einen Lösungsalgorithmus mittels Programmablaufplan oder Pseudocode zu bilden. Ist die Planung abgeschlossen, hast du beim Skripting bestenfalls nur noch Übersetzungsarbeit (Lösungsschritte zu GDScript) zu leisten.
Tutorials/Lernpfade, Nachschlagematerial u.ä. findest du unter anderem hier:
- Offizielle Dokumentation
- GDQuest
- Von Godot empfohlene Third-Party-Tutorials
- YouTube: @GodotEngineOfficial
Hinsichtlich Blender findest du auf YouTube zahlreiche Kanäle, die sich der 3D-Modellierung widmen.
- Sebastian Lague: Blender to Unity Character Creation (zwar im letzten Teil auf den Import und die Animation in Unity bezogen, doch dazu kannst du dir passend für Godot ja noch etwas heraussuchen)
- YouTube-Kanäle: blenderguru, CG Boost, CGMasters, Grant Abbitt (grabbitt), Greyscalegorilla
- Selbst wenn du Tutorials für andere Modellierungssoftware wie Autodesk Maya oder Cinema 4D findest: Die Funktionen mögen in Blender vielleicht ein wenig anders heißen und sich in der GUI woanders befinden, doch sie sind in der Regel übertragbar.
Und da gibt es natürlich noch die offizielle Trainingssektion mit einem Basiskurs und weiterem Material.
Ich würde für Praxisübungen den vorrangigen Fokus auf die Modellierung der Grundfigur legen. Texture-Mapping, Rigging u.ä. kann man sich später nach und nach widmen (keine Frage, es ist ebenso wichtig für deine Spielassets).
An Übungsideen dürfte es nicht scheitern. Lege dir ein Blueprint von deinem Zielmodell an (am besten Front- und Seitenansicht) oder suche nach Blueprints im Internet. Dann kannst du auch schon anfangen. Ich verlinke an dieser Stelle immer wieder gern dieses Tutorial für Bart Simpson.
Python benötigst du für dein Vorhaben gar nicht. Du kannst damit zwar Aufgaben in Blender automatisieren oder Blender funktional erweitern, aber eine Notwendigkeit dafür sehe ich nicht.
Was Gimp angeht: Basistutorials findest du auf der offiziellen Webseite und auf YouTube. Es gibt ebenso Bücher oder Videokurse auf Plattformen wie Udemy.
Für das praktische Erstellen von Texturen wiederum gibt es keinen festen Weg. So manches musst du einfach ausprobieren. Wenn du bestimmte Vorstellungen hast, aber nicht weißt wie, macht es wohl mehr Sinn, einfach zu schauen, ob es schon Tutorials gibt, die zumindest ähnliches realisieren. Dabei würde ich mich bei der ersten Recherche nicht völlig auf Gimp versteifen. Manchmal ist der Weg (bzw. die Benamung von Funktionen in Zeichenprogrammen wie Adobe Photoshop) einfach nur etwas anders oder du kannst mit anderen Gimp-Funktionen zumindest ähnliche Effekte erzielen.
Ein paar theoretische Grundlagen zu Texturen kannst du übrigens im Polycount Wiki nachschlagen (Texturing).
Zusätzliche Tipps für den Anfang:
- Achte beim Zeichnen darauf, erst sehr spät (beim Export) zu komprimieren und arbeite so lange mit Gimps Projektformat (xcf).
- Auf Alphakanäle würde ich verzichten, so lange Transparenz nicht benötigt wird.
- Bei der Texturgröße ist es in der Regel besser, die Po2-Regel zu berücksichtigen.
- Überlege dir für dein Spiel eine Farbpalette, bevor du beginnst, deine Texturen zu erstellen. So entsteht eher ein konsistenter bzw. stimmiger Stil.
Bezüglich Reaper findest du Grundlagentutorials im Videoformat auf ihrer Online-Präsenz und YouTube kann man erneut als weitere Lernquelle nutzen. Nach kurzer Recherche habe ich zum Beispiel den Kanal von @AkashThakkarAudio gefunden, der hilfreich erscheint.
(...) könnt ihr mir helfen wie ich das alles gut lernen kann?
Alles in allem solltest du definitiv viel Motivation und Zeit mitbringen, denn keines dieser Themen (Modelling, Texturing, Audiocreation, Programmierung) ist in wenig Tagen gelernt und für so manches wirst du zusätzliche Recherchearbeit aufbringen müssen. In jedes kann man sich sogar leicht jahrelang spezialisieren/verlieren, wenn man das Interesse dafür hat.
Vermutlich macht es Sinn, wenn du anfangs stärker reduzierst und mit auf fertige Assets setzt. Es gibt für Godot eine Asset Library und abseits davon ebenfalls mehrere Online-Portale, auf denen du 2D-/3D-Modelle, Texturen, Sounds, u.ä. findest.
Fange mit kleinen Projekten an.
Ich möchte ein Videospiel entwickeln (...)
Fange hierbei mit einer Planungsphase an, sofern noch nicht getan. Ein Game Concept hilft als Startpunkt und kann anschließend weiter zu einem Design Document ausgearbeitet werden. Diese Artikel beschreiben genauer, um was es sich handelt:
- The Anatomy of a design document
- How to write a game design document
- Tom Sloper: Sample outline for a Game Design Document
Es geht hierbei vor allem um Selbstorganisation, um das Schaffen einer Projektübersicht und Beschränkung zum Schutz vor Überforderung/dem Scheitern des Projekts. Konzentriere dich vorrangig auf Schlüsselfunktionen, die dein Spiel erfüllen soll. Erweiterungen/Nice-To-Have's/neue Ideen können auf einen gesonderten Zettel, der erst angerührt wird, wenn das Fundament steht.
Des Weiteren machst du es dir in der Umsetzungsphase einfacher, wenn du grob beginnst und erst in weiteren Schritten den Feinschliff ansetzt. Das heißt konkret, dass du ganz am Anfang definitiv noch keine ausgearbeiteten, hochqualitativen Modelle und Texturen benötigst. Du könntest soweit gehen, deine Spielwelt vorerst nur mit Blöcken als Platzhalter auszustatten, die dann nach und nach ersetzt werden. So lange du noch nicht soweit bist, kannst du dich dennoch bereits anderen Aufgaben (wie der Programmierung der Spiellogik) widmen.
Außerdem würde ich dir empfehlen, dich mit einem Versionierungssystem wie Git oder Mercurial auseinanderzusetzen und das auf deinen Projektordner anzuwenden. Wenn du deine Änderungen regelmäßig in das Repository einspeist, hast du, solltest du dir mal etwas zerschießen, eher die Chance, den Fehler leicht rückgängig zu machen. Ein lokales Repository anzulegen reicht für deine Zwecke übrigens vollkommen. Du benötigst kein Remote-Repository wie GitHub.
Tutorials/Guides zu Git findest du unter anderem hier:
- Kurzreferenz
- A Grip on Git
Wobei ich dir empfehlen würde, mit einem GUI-Client (z.B. gitExtensions, GitKraken, SourceTree, ...) zu arbeiten. Das ist meiner Meinung nach übersichtlicher und so musst du nicht mit der Kommandozeile arbeiten oder dir die einzelnen Befehle merken.
Ein paar allgemeine Nutzungshinweise für Godot mit einem Versionierungssystem gibt es übrigens in der Dokumentation.