AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Pascal-Code durch anderes Programm generieren lassen
Thema durchsuchen
Ansicht
Themen-Optionen

Pascal-Code durch anderes Programm generieren lassen

Ein Thema von Gargamel · begonnen am 18. Okt 2012 · letzter Beitrag vom 20. Okt 2012
 
Gargamel

Registriert seit: 19. Mär 2007
171 Beiträge
 
#1

Pascal-Code durch anderes Programm generieren lassen

  Alt 18. Okt 2012, 07:51
Hi

Vorgeschichte:

Ich möchte eine KI entwickeln, die so flexibel wie möglich einsetzbar ist. Dafür möchte ich ein Programm schreiben, in welchem man seine KI-Objektypen (Hase, Soldat, Alien, Fussballspieler... was auch immer), definieren kann. Dazu gehören, je nach Objekttyp, unterschiedliche Eigenschaften, Pathfinding, State-Machines usw.
Nehmen wir z.B. mal die State-Machines. Dort definiert man verschiedene Zustände wie laufen, flüchten, jagen, fressen. Einer dieser Zustände ist von Anfang an aktiv. Um jetzt jedoch in einen anderen Zustand zu gelangen, müssen bestimmte Kriterien erfüllt sein.

Zustand: laufen
Bedingung: Wenn Hunger, dann jagen.
Zustand: jagen
Bedingung: Wenn Beute gemacht, dann fressen.
Zustand: fressen

Mit solchen State-Machines lassen sich viele lustige Sachen anstellen.

Wenn ich so ein Programm schreibe, wo ich das alles definieren kann, müssen alle Angaben von der KI ausgewertet und ausgeführt werden. Jetzt ist es natürlich so, daß jeder Objekttyp unterschiedliche Eigenschaften hat, die die KI im Vorfeld garnicht kennt. Demnach kann ich nicht einfach in Delphi Klassen erstellen und deren Eigenschaften zur Laufzeit erweitern. Auch sind die Bedingungen ein Problem (Wechsel von einem Zustand in den nächsten), da diese oftmals komplexere Formeln enthalten. Ich hatte mir das so vorgestellt, daß man in dem separaten Programm die Bedingungen wie in einem Ausdrucks- bzw. Formeleditor erstellt (kennt man z.B. von Microsoft Access).

Jetzt gibt es zwei Möglichkeiten:

Variante A: Ich schreibe so ein Programm.
Vorteil: Die KI ist flexibel einsetzbar. *** Nachteil: Die Ausführungsgeschwindigkeit ist langsam, da alle Eigenschaften der Objekte und vorallem die Bedingungen in den State-Machines erstmal ausgewertet (interpretiert) werden müssen. Und das in jedem Hauptschleifendurchlauf.

Variante B: Ich lasse das mit dem separaten Programm und codiere alles "hart" in Delphi.
Vorteil: Die Ausführungsgeschwindigkeit ist deutlich höher. *** Nachteil: Die KI ist nicht flexibel einsetzbar.


Jetzt fiel mir allerdings eine mögliche Lösung ein, um evtl. die Vorteile beider Varianten zu vereinen. Die sieht so aus:
Ich schreibe diese separate Programm, wo ich jegliche Objekttypen, Eigenschaften, Kriterien für State-Machines usw. definieren kann. Final, wenn alle Informationen eingegeben wurden, erzeugt das Programm Pascal-Code in Form von *.pas-Dateien, speichert diese ab und läßt durch den Kommandozeilen-Compiler eine DLL erstellen. Die KI selbst läuft in einer DLL und wird an eine 3D-Engine gebunden.

OK, zugegeben, die Idee klingt ziemlich abenteuerlich.

Was haltet Ihr davon?

Danke
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz