Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 18.08.2003, 18:29 Titel: Scriptsprachen |
|
|
Kennt jemand ne gute Scriptsprache die ich in meine Projekte einbinden kann oder muss ich mir die Mühe machen und mir selber sowas schreiben ? Wäre ja kein Problem aber Grafiksachen sind viel hübscher. |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 18.08.2003, 18:32 Titel: |
|
|
klar.
Lua
Python
JavaScript
Ruby
Tcl
C
Lisp
... hmm mehr fallen mir auf Anhieb nicht ein. _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 18.08.2003, 18:36 Titel: |
|
|
Mhh, nicht schlecht und damit kann ich so arbeiten:
Ich erstelle einige KI-Datein
die führe ich dann im Spiel aus:
KI-Datei wird geladen dann ausgeführt mit einigen Variabeln die ich eingegeben habe.
Das Script endet und gibt mir einige variabeln wieder zurück. |
|
Nach oben |
|
|
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 18.08.2003, 18:46 Titel: |
|
|
KI würde ich lieber in C++ programmieren und die Missionen/Menüs/Einstellungen/Waffenverhalten etc... darin programmieren, aber ich glaube dass ich die KI doch lieber im Programm selber programmieren würde. KI ist generell schon ein größeres Projekt und dann sollte man es nicht unötig komplizierter machen als es ohnehin schon ist. Aber wenn du dich dafür entscheiden solltest glaube ich das Lua noch das beste davon ist. Obwohl ich darin nicht soviel Erfahrung habe wie anscheinend Hazel, der schon ne ganze Menge so aus dem Steggreif aufzählen kann! _________________ The source of all power is in its destiny... |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 18.08.2003, 18:49 Titel: |
|
|
Ist das denn nicht viel Professioneller wenn man alles möglichst Modular und auswechselbar ist. Die Comunity wird sich freuen und man kann immer wieder was exportieren und verwenden.
Also am besten mach ich mir selber ne Scriptsprache trotzedm danke für die Mühe. |
|
Nach oben |
|
|
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 18.08.2003, 18:56 Titel: |
|
|
Ja, ich liebe auch alles, was molekular ist, aber man muss auch Grenzen setzen. Und es ist viel komplizierter sowas einzubauen als nur was, was man einmal in das Programm ladet. Du musst jeden Frame eine Funktion und mehrere Anweisungen ausführen für eine normale KI und wenn die jetzt aber in ner Datei steckt, brauchst du eine Routine die aber nicht jedesmal das erneut einliest etc...also bedeutet das viel arbeit und heute wurde mir das ja auch gesagt. Schau erst mal dass es überhaupt funktioniert bevor man alles mögliche einbauen will... _________________ The source of all power is in its destiny... |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 18.08.2003, 18:59 Titel: |
|
|
Ich werde doch auf solche Ideen nicht ohne Grund kommen und erst recht nicht wenn ich keine Ahnung/Ideen habe wie ich so was machen könnte.
Ich plane ja nur solche simplen Scripte wie beim Spiel BaldursGate, also simpel aber mächtig. |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 18.08.2003, 19:02 Titel: |
|
|
Ich stimme dir da zu FallenAngel... genau DAS ist ja der Vorteil einer Scriptsprache. Du kannst wärend das Programm läuft die Logik umschreiben. Und dass du sie jeden Frame neu aufrufen musst stimmt auch nicht... Grundfunktionen wie Wegfindung sollten in C++ sein und die Scripte berechnen dann z.B. alle 2 Sekunden einen neuen Befehlssatz für die Einheiten. Dieser wird dann in eine Warteschlange gesteckt und nacheinander abgearbeitet. Das war jetzt eher ein Beispiel für Strategiespiele aber im Prinzip geht es so. Man sollte eine Engine so Data-driven wie möglich halten. _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 18.08.2003, 19:16 Titel: |
|
|
Ja Hazel, du erstaunst mich immer wieder wo du dein Wissen herbeziehst!
Auch sowas (Auszug aus ZFX I)
Code: |
if(pObj->Akt_Bild != pObj->Zielrichtung)
xxxObjekt_Drehung(pObj);
....
if( (Entfernung_2 < 55000) && (anz_Laser<ANZ_LASER_GESAMT) && (rand()%3==1)
{
if( (pObj->Zielrichtung >1) && (pObj->Zielrichtung < 5) )
{
..
}
...
..
xxxObjekt_Laserschuss_erzeugen(pObj->x+48+x1,pObj->y+20+y1,pObj->zx+48,pObj->zy+37,253);
... |
Geht sowas auch leicht?
Ansonsten Hazel könntest du paar Bücher nennen die du darüber hast oder kannst du wieder paar tolle Internetseiten nennen? Das wäre echt super! _________________ The source of all power is in its destiny... |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 18.08.2003, 19:19 Titel: |
|
|
Ähm nicht böse sein aber so schwer ist der Auszug auch nichtbzu programmieren sowas ähnliches wöre sicher auch mit dem baldursGate Script möglich. |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 18.08.2003, 19:26 Titel: |
|
|
Mein Wissen über Scripting habe ich mir größtenteils selber erarbeitet *hält seine dicke Projektdoku hoch* ;)... Bücher hab ich leider keine drüber. =/ Aber das mit der Modularität ist doch auch logisch... eine andere Möglichkeit wäre die Benutzung von DLLs aber die muss man immer wieder neukompilieren.
Zu deinem Codeausschnitt:
Ich benutze Lua und damit wäre das ein Klacks. Glue-Funktionen schreiben oder gleich die Klassen exportieren und ein:
_________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 18.08.2003, 20:29 Titel: |
|
|
oh, tschuldigung. Klar ist das ein Klacks.
Ich meine auch sowas:
Code: |
if(blabla != lala)
{
var1= 5478/35*mvision;
var2= ...;
}
else if(blabla=="WHILE")
{
while(GAME=="PLAYING")
for(i=0;i<STUFF_LEN;i++)
{
moveobject();
if(Object[i].AmmoCollision)
del Object[i];
...
}
|
Mit while und for ist das schon schwieriger und sagt nicht, dass ihr das del Object[i]; nicht machen würdet ist nur zur Demonstration des Beispiels
Ist das jetzt wirklich immer noch so einfach?
Und ich meine das natürlich nicht so wie es da steht als Scripting, sondern das gescriptete so zu formulieren, dass es dann so aussieht für das Programm. Denn mal Hand-aufs-Herz die meisten Gamer können nicht proggen und würden mit sowas wie Lua nicht zurecht kommen. Deshalb programmiert man ja auch meist nur für das Spiel eine angenehem angepasste Scriptsprache. Deshalb frag ich das halt. Denn entweder man macht sich den Aufwand und proggt eine eigene schöne Scriptsprache, was sich bestimmt lohnt, wenn es dann durch ein von sehr vielen möglichen Kandidaten nutzt oder man macht es mit Lua, ziemlich einfach und die wenigstens können es nutzen. Naja ist so eine Art Zwiespalt und deshalb weiß ich nicht, ob sich das Ganze lohnt. Wegen dem Aufwand. _________________ The source of all power is in its destiny... |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 18.08.2003, 22:03 Titel: |
|
|
Also Lua sollte auch nur der Grundstein sein... die Funktionen musst du natürlich selber hinzufügen. Und Lua ist wirklich einfach... ein Kumpel von mir der absolut keine Ahnung vom Proggen hat, hat es nach 2 Tagen kapiert. ;) Und schau die doch mal UnrealScript an... DAS Teil ist Fett und es gibt trotzdem eine lebhafte Community, die interessante Mods/Maps programmiert.
Zurück zu deinem Codeausschnitt... natürlich müsste man das Lua's Syntax anpassen aber natürlich geht das. Lua5 kann Threads und so kann man das Script parallel zur Engine laufen lassen und es je nach Bedarf anhalten/resumen. _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 19.08.2003, 19:02 Titel: |
|
|
Habe jetzt meine erste Version der Scriptsprache von mir fertig gestellt.
Die Scriptsprache unterstützt jetzt if Anweisungen Variabeln ein und ausgabe sowie jede beliebige float berechnung
Und weitere Befehle sind hinzufügbar.
Such nur noch ein Webspace um das mal raufzuladen.
So sieht ein Script aus:
Code: |
one = one * 2 ;
if one > 10 ;
one = 0 ;
endif ;
|
Und so baue ich neue Befehle ein:
Code: |
scrCreateCommand(scrBig,">",1,0,2,scrNONE)
{
float *a=(float*)arg[0];
float *b=(float*)arg[1];
float *c=new float(*a > *b);
if(globalscrtmpresult==NULL)
globalscrtmpresult=new float;
globalscrtmpresult=(float*)memcpy(globalscrtmpresult,c,sizeof(float));
delete c;
return globalscrtmpresult;
}
|
|
|
Nach oben |
|
|
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 19.08.2003, 20:45 Titel: |
|
|
Code: | scrCreateCommand(scrBig,">",1,0,2,scrNONE)
{
float *a=(float*)arg[0];
float *b=(float*)arg[1];
float *c=new float(*a > *b);
if(globalscrtmpresult==NULL)
globalscrtmpresult=new float;
globalscrtmpresult=(float*)memcpy(globalscrtmpresult,c,sizeof(float));
delete c;
return globalscrtmpresult;
}
|
scrCreateCommand(scrBig,">",1,0,2,scrNONE)
fehlen da nicht all die Dateitypen?
Oder ist das kein echter C++ Code sondern nur für's Script? _________________ The source of all power is in its destiny... |
|
Nach oben |
|
|
|