Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

02.11.2007, 14:58

Frage::Logik via Scriptsprache

Hallo,

...ich schreibe gerade an einer Physik-Simulation - eine Anzahl von Sonnensystemen werden in 3D dargestellt, der Benutzer legt zu Anfang die Startbedingungen fest (Anzahl der Teilchen, Grav. Konstante, Verteilung, etc.) und dann kann man zusehen, wie sich die Systeme entwickeln. Manchmal entstehen Mehrfach-Sonnensysteme oder einfache oder es bildet sichauch gar keine Sonne, etwa weil zu wenig Masse da ist und dergleichen mehr.

Daraus soll nun ein Spiel werden: Mehrere Species besiedeln die Planeten und konkurieren miteinander. Die Idee ist, daß die Spieler vorher via Scriptsprache das Verhalten und die Fähigkeiten ihrer Species programmieren. Das stellt natürlich etwas höhere Anforderungen an die Scriptsprache als dies für das Festlegen der Anfangsbedingungen der Planetensysteme der Fall war...

:!: Es sollen also richtige Befehle mit Logik ("wenn dann" "für alle " u.s.w.) via Scriptsprache gegeben werden.

:?: Hat das schon mal jemand gemacht? Tips, Tutorial- oder Buch-Empfehlungen erwünscht!


(Link)

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

2

02.11.2007, 17:03

Also um Wissensbanken zu führen ist Prolog erste Sahne und es soll auch recht einfach in Java integrierbar sein, für Eclipse soll es gar ein Plugin geben.

Diese Daten kannst du natürlich für dein Planetensystem nutzen, aber ich glaub das ganze bekommt dadurch eher etwas akademischen Charakter, da die meisten Eigenschaften sich ebenso, vielleicht sogar noch einfacher, in C/C++/Java einhacken lassen.

Ich schreib gerade mit Komolitonen an einem "General Game Player" der ebenfalls bis auf wenige Teile in Prolog implementiert ist.

In Prolog sind alle Variablen allquantifiziert, in der Logik (speziell der Prädikatenlogik dann) kann man den Existenziellen Quantor oder den Allquantor durch den jeweils anderen ausdrücken => Skolemisieren)

3

02.11.2007, 17:16

Prolog: ...es geht ja darum, daß der Benutzer Dateien anlegen können soll, die Befehle enthalten oder sogar ganze Klassen (nicht bloß irgend welche Anfangsdaten), die das Programm ausführt ohne neu kompiliert werden zu müssen.

Das geht wohl eher nicht mit Prolog?

Ich dachte daran mir einen Compiler selber zu bauen (mit c#) - die Frage ist, wie man so eine genügend starke Sprache erhält, mit der man auch richtige Befehle, die sonst im Programmcode stünden, ausdrücken kann.

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

4

02.11.2007, 17:24

Man kann Wissensbanken während ein Programm läuft in Prolog fortschreiben und auch das kompilieren sollte mit consult kein Problem darstellen, ich würde sagen: Im Prinzip geht das schon

Eine Sprache mit regulären Ausdrucken ist natürlich einfacher und unter Umständen auch schneller gecodet. Wenn du mit Logik noch nichts gemacht hast, dann würde ich das lieber weglassen.

Gleich einen Compiler Coden zu wollen ist overkill für ein Spiel. Schau dir mal das Prinzip von Plugins, Komponenten u.s.w. an. Wenn du mit Java zum Beispiel arbeitest - die ClassLoader oder ähnliche Klassen in C#.

5

02.11.2007, 17:30

..."Classloader" - das hört sich interessant an! Danke!

In math. Logik bin ich nicht ganz unbeleckt - wie würde das denn prinzipiell ein Informatiker angehen, wenn er so einen Compiler programmieren wollte?

So ähnlich müsste dann ja auch ein "Classloader" konstruiert sein, wenn er das macht, was ich hoffe?

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

6

02.11.2007, 18:22

Also irgendwie hört sich dein "Spiel" eher nach einem "Framework" an, es gab schon mal so ein ähnliches Spiel wo man das Verhalten von Ameisen oder dergleichen programmieren musste, so dass sie sich möglichst erfolgreich in einem gegebenen Terrain bewegen.

Eine möglichst einfache Form wäre direkt den C# Compiler zu benutzen, und die oben beschriebene Funktionalität in eine DLL zu packen. Kind Applikationen können dann die DLL als Referenz einbinden und die freien Methoden z.B. zum Verhalten einer Spezie mit Code ausfüllen. Gleichzeitig besitzen die Kind Applikationen den vollen .NET Umfang und müssen sich auf keine rudimentäre Scriptsprache verlassen.

Du solltest dir dabei mal die Design Pattern Strategie oder TemplateMethod anschauen.

7

03.11.2007, 12:20

...ok vielen Dank erst mal so weit! Hab jetzt das Projekt in seinem jetzigen Stand einfach mal zum Runterladen bereitgestellt - für weitere Kritik und Anregungen bin ich immer dankbar! ;)

https://www.spieleprogrammierer.de/phpBB…opic.php?t=8513

Werbeanzeige