Game Description Language

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Game Description Language (GDL) ist eine Beschreibungssprache, die von Michael Genesereth als Teil des General Game Playing Projekts an der Stanford University, Kalifornien entwickelt wurde. GDL beschreibt den Zustand eines Spiels als eine Reihe von Fakten und die Spielmechanik als logische Regeln. GDL wird als Basissprache zur Entwicklung von Spielbeschreibungen im wissenschaftlichen Umfeld eingesetzt. Auf dieser Sprache basierend können über eine geeignete Schnittstelle beliebige endliche, deterministische Spiele mit vollständigem Wissen (also ohne Zufall) modelliert und gegeneinander gespielt werden.[1]

Prinzip[Bearbeiten | Quelltext bearbeiten]

Die Beschreibung eines Spiels mittels GDL erfolgt in Form einer Reihe von logischen Sätzen. Diese Sätze müssen in jedem Stadium des betreffenden Spiels gegeben sein. Als gegebene Sätze werden folgende Begriffe definiert:

  • Role - wird verwendet, um den Namen bzw. die Rolle eines Spielers festzulegen oder hinzuzufügen;
  • Init - bezeichnet den anfänglichen, wahren Spielzustand (die zu diesem Zeitpunkt gegebene, wahre Tatsache);
  • True - bezeichnet den derzeitigen, aktuellen Spielzustand (die zu diesem Zeitpunkt gegebene, wahre Tatsache);
  • Does – der Zug, die Aktion, die der Spieler im aktuellen Zustand des Spieles durchführt;
  • Next – bezeichnet eine wahre Tatsache über den folgenden Spielzustand;
  • Legal – bezieht sich auf einen legalen Schritt („Does“) im aktuellen Zustand;
  • Goal - wird verwendet, um den Zielwert des Spiels im aktuellen Zustand zu definieren;
  • Terminal - bedeutet den aktuellen Zustand des Endspiels;

GDL ist eine offene Sprache, deren Vokabular erweitert werden kann, jedoch ist die Bedeutung dieser Grundbegriffe für alle Spiele immer gleichbleibend.[2]

Beispiel: Beschreibung des Spiels Tic-Tac-Toe (zwei Spieler)[Bearbeiten | Quelltext bearbeiten]

Role - Zwei Spieler - xplayer und oplayer

(role xplayer)
(role oplayer)

Init - xplayer beginnt

(init (control xplayer))
(init (cell 1 1 blank))
 ...
(init (cell 3 3 blank))

True - xplayer aktiv im aktuellen Zustand

(true (control xplayer))
(true (cell 1 1 b))
(true (cell 3 2 x))
(true (cell 3 3 o))

Does - xplayer markiert Zelle (1, 2) während oplayer nichts macht

(does xplayer (mark 1 2))
(does oplayer noop)

Next - hängt häufig von den gewählten Zügen ab

(<= (next (control xplayer))
(true (control oplayer)))

Legal - mindestens ein Zug für jeden Spieler in jedem (nicht terminalen) Zustand

(<= (legal ?player (mark ?x ?y))
(true (cell ?x ?y b))
(true (control ?player)))

Goal - ordnet diesen Zuständen Bewertungen zu

(<= (goal ?player 100)
(line ?player))

Terminal - Definiert Terminalzustände

(<= terminal
(role ?player)
(line ?player))

Weblinks[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. Standord University - Game Description Language Specification (PDF, 285 kB) - abgerufen am 05. Dez 2016
  2. (GDL) Handlungsplanung und Allgemeines Spiel docstoc.com - abgerufen am 1. März 2013