Projekt Schach

Was ist die Aufgabe im Schach-Projekt?

Im zweiten Game Engineering Projekt liegt der Fokus vor allem auf der Entwicklung von künstlichen Intelligenzen.

Grundlage bildet ein in Java implementierter Schach-Server, welcher alle Funktionalitäten der gängigen Schach-Regeln über REST-Architektur dem Client zugänglich macht. Das Spiel ist bereits über die gängigen Web-Browser spielbar und bietet nicht nur die Möglichkeit, gegen einen Real-Gegner zu spielen, sondern entweder selbst gegen einen Computergegner anzutreten oder dem Match zweier künstlicher Intelligenzen zuzusehen.

Die Implementierung der künstlichen Intelligenzen soll dabei iterativ vorgenommen werden, was der stufenweise Erzeugung unterschiedlicher Schwierigkeitsgrade gleichkommt, die jeweils separat voneinander als Gegner angeboten werden können.

In der ersten Iteration wurde die KI zunächst voll zufällig implementiert, es wird also eine Liste gültiger Züge generiert, aus denen dann durch ein randomisiertes Verfahren einer ausgewählt wird. Ungültige Züge werden dadurch bereits zu Beginn ausgeschlossen.

Als nächstes soll die KI eine weitere Liste gültiger Züge ableiten, die ihr eine Schlagmöglichkeit bieten, und aus dieser verfeinerten Auswahl ihre Aktion wieder zufällig bestimmen.

Daran anschließend kann die Liste der Schlagmöglichkeiten nach Wertigkeiten der zu beseitigenden Spielfigur sortiert werden, um nicht nur den Weg zum Sieg nach Punkten zu ebnen, sondern den Gegner auch um seine wertvollsten Figuren zu bringen.

Im Folgenden wäre das Vorausahnen gegnerischer Spielzüge zur Evaluierung der eigenen Möglichkeiten denkbar.

Langfristig bietet der Kontext des Schach-Spiels natürlich auch die Möglichkeit, ganz andere Systeme für künstliche Intelligenzen zu implementieren und gegeneinander abzuwägen. Besonders spannend sind hier unter anderem regelbasierte Systeme, Entscheidungsbäume, künstliche neuronale Netze oder evolutionäre Algorithmen.

Die folgende Abbildung zeigt den Prototyp des JMonkey-Frontends, der in der 2. Interation des Wahlfachs entstanden ist. Das Frontend koppelt sich per REST-Architektur an das Java-Backend, das die Regeln und das Management für konkrete Spiele enthält. Im weiteren Verlauf erfolgten an der Hochschule Mannheim in der 5. Iteration erfolgreiche Test zur Ersetzung des JMonkey-Frontends durch ein Unity-Frontend.