JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=fce8fd8e7ede8707588909c2dbeb5e49Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Scriptsprachen
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 18.08.2003, 18:29    Titel: Scriptsprachen Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 18.08.2003, 18:32    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 18.08.2003, 18:36    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 18.08.2003, 18:46    Titel: Antworten mit Zitat

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! WinkVery Happy
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 18.08.2003, 18:49    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 18.08.2003, 18:56    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 18.08.2003, 18:59    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 18.08.2003, 19:02    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 18.08.2003, 19:16    Titel: Antworten mit Zitat

Ja Hazel, du erstaunst mich immer wieder wo du dein Wissen herbeziehst! Smile

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! Smile
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 18.08.2003, 19:19    Titel: Antworten mit Zitat

Ä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. Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 18.08.2003, 19:26    Titel: Antworten mit Zitat

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:

Code:

lua_dofile(bla);

_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 18.08.2003, 20:29    Titel: Antworten mit Zitat

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 Wink
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
Benutzer-Profile anzeigen Private Nachricht senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 18.08.2003, 22:03    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 19.08.2003, 19:02    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 19.08.2003, 20:45    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum