Spiele in Scriptsprachen schreiben
-
Hi,
ich mache mir gerade Gedanken darüber, ob es sinnvoll wäre eine Engine so zu schreiben, dass es vollen Zugriff über eine Scriptsprache (z.B. Lua) gibt. Mit dieser Scriptsprache könnte man dann später das ganze Spiel schreiben, und es würde in C++ nur noch die Initialisierung der Engine und der Aufruf der ersten Script Datei erfolgen.
So etwas in der Richtung gibt es ja schon, z.B. bei Unreal Tournament.
Dort wird die Script Sprache allerdings compiliert, ich weiß nicht genau was genau in diesem Vorgang bei einer Scriptsprache gemacht wird aber egal - wäre eine nicht compilierte Scriptsprache (wieder z.B. Lua) überhaupt schnell genug um gescheit Spiele mit zu schreiben? Oder dauert das parsen so lange, dass die Performance stark darunter leidet?MfG
-
Ganz UT? Nein, ein kleines Dorf in Gallien....
Die Scriptsprachen werden beim Compilen vermutlich nur in einen Bytecode umgewandelt. Da steht dann eben nicht mehr ("turnToEnemy") sondern 1712. Und diese
Zahl kann dann eben schneller verarbeitet werden. Ob man den Speed wirklich brauch, hängt davon ab ob es sonst schon schnell genug ist.Bye, TGGC (Pipe my World.)
-
Man sollte es nicht übertreiben. Das ganze Spiel mit einem Script zu programmieren, glaube ich, ein wenig übertrieben.
-
mhm, was wäre denn eurer meinung nach sinnvoll und was nicht?
also mal von engine typischen funktionen abgesehen (scene management, render arbeiten, inputs usw).
@TGGC
müsste doch aber eigentlich merkbare vorteile bringen nicht jedes mal strings zu vergleichen oder?MfG
-
in vielen spielen wird das so gemacht, das der core in c++ gemacht wird und GUI und einfache logic bzw manchmal auch events werden dann mittels einer scriptsprache gemacht.
soweit ich weiß wurde z.b. Homeworld(2) und Siedler, sowie FarCry mit LUA gescripted. dabei hat lua auch einen compiler der bytecode rauswerfen kann, trotzdem sind scriptsprache recht langsam und man sollte für alles rechenintensive engine funktionen bereitstellen.
dieser ansatz ist aber natürlich nichts neues, das erste spiel von epic (war übrigens textmode) hatte einen interpreter für eine pascal artige sprache.
für scriptsprachen spricht vor allem, das man sie leicht zur laufzeit modifizieren kann und viele dinge, wie z.b. speicherverwaltung können vom c++Core sauber durchgeführt werden. wen eine scriptsprache gut integriert ist, dann kann sogar ein game-/leveldesigner das spiel zusammenstöpseln ohne einen programmierer zu benötigen. das wäre an sich optimal.
rapso->greets();
-
Wobei natürlich je mehr die Scriptsprache kann, um so komplizierter ist sie zu bedienen. Irgendwann kann ein Designer das nicht mehr übersehen (nichts gegen Designer) und dann muss doch wieder eine Programmierer ran. Und gerade Scriptdebugging kann ja recht haarig sein.
Bye, TGGC (Pipe my World.)
-
eine gut angepasste scriptsprache dürfte einen durschnitts gamedesigner nicht überfordern, denn die ist dann dann in den editor integriert und kann sehr intuitiv bedient werden.
z.b. kann man eine box hinstellen, wenn ein objekt in die box geht, kann ein event ausgeführt werden (änlich dem onMouseOver bei JS) und dort kann der gamedeigner dann sowas schreiben wie
On InBox["kistevortuer"] Entity["Light243"].Off(); EndOn
und scriptdebugger sind doch genau so gut bedienbar wie andere debugger auch. der von LUA ist ziemlich nett.
rapso->greets();
-
hm, also kann man wohl festhalten, dass es sinnvoll ist, wenn es nicht überladne ist und die script sprache gut zu verwenden ist, wobei darauf geschaut werden muss wer damit umgehen soll?
danke
MfG
-
Also wenn man in der (Script-)Sprache Z ein ganzes Spiel programmieren will, das aber gleichzeitig den Designer nicht überfordert, dann wäre das etwas komisch. Da bräuchte man ja gleich gar keine Programmierer mehr.
Bye, TGGC (Pipe my World.)
-
doch, die bräuchte man um eine engine zu machen die so gut scriptbar ist, dass der content vom gamedesigner alleine erstellbar ist. also ganz im gegenteil, dafür brauchst du dann die besten programmierer.
rapso->greets();
-
Wie mich?
Bye, TGGC (Pipe my World.)
-
Guter Witz.
-
naja gut isser das muss man ihm lassen
ach wo ich grad deine signatur seh TGGC...
gibbet eigentlich wat neues von gm-squared?
irgendwie news oder so..hat man ja ewig nix mehr von euch gehörtMfG