Verfügbare kleine Open Source Game Engines für Tutorial [geschlossen]

8

Ich lerne, eine Spiel-Engine in XNA von Grund auf neu zu erstellen. Ich suche Beispiele für sehr kleine Spiele-Engines, insbesondere die Architektur und Struktur von Quelldateien usw. Es sollte eine Scripting-Engine enthalten. Artikel werden ebenfalls geschätzt.

Insbesondere habe ich ein Problem damit, die Skript-Engine mit dem Rest der Spiel-Engine zu verbinden, z. B. das Laden von Modellen aus dem Skript.

Shawn Mclean
quelle
Warum brauchen Sie aus Interesse eine Scripting-Engine? C # selbst löst bereits fast alle Probleme, mit denen eine Scripting-Engine gelöst wird. Und XNA ist bereits eine "sehr kleine Spiel-Engine", die Modelle laden kann.
Andrew Russell
Der Typ, mit dem ich zusammenarbeite, sagte, er wolle eine Skript-Engine, damit er das Spiel nicht neu kompilieren muss, wenn sich etwas in der Geschichte ändert.
Shawn Mclean
Damit Sie wissen, gibt es reine C # -Lösungen für dieses Problem: stackoverflow.com/questions/1353456/… (der C # -Compiler ist Teil der Laufzeit).
Andrew Russell

Antworten:

2

Die Angel Engine ist eine sehr schöne, kleine Open Source Engine, die in C ++ und OpenGL geschrieben wurde. Außerdem verfügt es über eine Python-Skriptoberfläche. Obwohl die Engine nicht in C # geschrieben ist, sollte sie Ihnen einige Hinweise und Ideen geben, und von dem kleinen, das ich damit gespielt habe, ist der Code sehr sauber und leicht zu verstehen, auch wenn Sie nicht ganz mit C ++ vertraut sind.

Muttley
quelle
4

Ich mag das Buch Programmieren von Rollenspielen mit DirectX (2. Ausgabe) für seinen Skriptbereich; Ich habe noch kein umfassendes Tutorial zum Erstellen einer Skript-Engine an anderer Stelle gesehen. Und natürlich führt es Sie als Buch Schritt für Schritt durch die Erstellung des Skriptteils der Engine (und natürlich des gesamten Restes der Spiel-Engine, die er im gesamten Buch erstellt). Leider ist der Quellcode online nicht verfügbar.

Sobald Sie eine Skript-Engine haben, würde ich die 3D-Modelle von den Skripten trennen . Skripte befinden sich normalerweise auf der logischen Seite der Dinge, während 3D-Modelle mit Sicherheit die Präsentations- / Ansichtsseite der Dinge sind und diese nicht wirklich gemischt werden sollten. Wenn ein Skript einem Zeichen befiehlt, "zu (3,5) zu gehen", muss es nicht "Gehanimation laden, Geschwindigkeit auf (-1,1) setzen, 3 Sekunden warten, Geschwindigkeit auf Null setzen, Leerlauf laden" sagen Animation"; Normalerweise walkTo(x,y)steht dem Skript nur eine Funktion zur Verfügung, und der Zwischencode kümmert sich um 3D-Modelle, Animationen usw.

Aber hey, wenn Sie es wirklich brauchen, definieren Sie Ihre eigenen Funktionen in Ihrem Scripting-Interpreter, die 3D-Modelle erhalten und mit ihnen alles tun, was Sie brauchen. Ich denke, Sie denken etwas zu weit voraus. Machen Sie sich zuerst Gedanken über das Schreiben eines einfachen Skriptinterpreters und fügen Sie dem Interpreter dann die erforderlichen Funktionen hinzu, während Sie Ihre Skripte schreiben.

Ricket
quelle