13.01.2014 Aufrufe

KI Middleware in der Spieleentwicklung

KI Middleware in der Spieleentwicklung

KI Middleware in der Spieleentwicklung

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>KI</strong> <strong>Middleware</strong> <strong>in</strong> <strong>der</strong> <strong>Spieleentwicklung</strong><br />

E<strong>in</strong>leitung<br />

In dieser Literaturrecherche werden sog. AI <strong>Middleware</strong>s im Bereich <strong>der</strong><br />

<strong>Spieleentwicklung</strong> betrachtet. Der Schwerpunkt liegt dabei auf <strong>der</strong><br />

Charaktersteuerung, <strong>in</strong> den Bereichen Bewegung, Kommunikation, „Gefühle“.<br />

E<strong>in</strong>satz<br />

Folgende Gründe s<strong>in</strong>d denkbar, e<strong>in</strong>e <strong>KI</strong>- <strong>Middleware</strong> e<strong>in</strong>zusetzen anstatt alle<br />

Algorithmen und Prozesse selber zu entwickeln:<br />

Qualität und Glaubwürdigkeit des <strong>KI</strong>- Verhaltens steigern<br />

Arbeitserleichterung durch Wie<strong>der</strong>verwendbarkeit gängiger Methoden<br />

Mangelnde <strong>KI</strong>- Kenntnisse im Entwicklerteam<br />

Zeitmangel<br />

Es bestehen allerd<strong>in</strong>gs auch Nachteile:<br />

Spezielle benötigte D<strong>in</strong>ge s<strong>in</strong>d <strong>in</strong> <strong>der</strong> <strong>Middleware</strong> nicht implementiert<br />

Ke<strong>in</strong>e komplette Kontrolle über alle Spiel- Prozesse<br />

Performance, wenn nicht optimal implementiert, evtl. ohne<br />

Optimierungsmöglichkeiten<br />

<strong>KI</strong> verhält sich an<strong>der</strong>s als vorgesehen<br />

<strong>Middleware</strong> ist evtl. unkomfortabel e<strong>in</strong>zub<strong>in</strong>den<br />

Um die Nachteile zu m<strong>in</strong>imieren sche<strong>in</strong>t es e<strong>in</strong>e Grunvoraussetzung zu se<strong>in</strong>,<br />

e<strong>in</strong>e <strong>Middleware</strong> auf möglichst e<strong>in</strong>fache Art und Weise erweitern bzw.<br />

modifizieren zu können. Schnittstellen sollten ferner so allgeme<strong>in</strong> gehalten<br />

se<strong>in</strong>, dass sie mit sämtlichen Technologien und Eng<strong>in</strong>es <strong>in</strong> <strong>der</strong><br />

<strong>Spieleentwicklung</strong> verknüpft werden können.<br />

Kommerzielle Produkte<br />

Untersucht werden vier kommerzielle <strong>Middleware</strong> Produkte die <strong>KI</strong>- Funktionen<br />

für e<strong>in</strong>e Game Eng<strong>in</strong>e bereitstellen. Diese Produkte setzen ihren Schwerpunkt<br />

auf das Verhalten von Charakteren.<br />

AI.implant (Biographic Technologies) [1][6]<br />

DirectIA (Masa) [2][7]<br />

Ren<strong>der</strong>Ware AI (Criterion) [3][8]<br />

SimBionic (Stottler Henke) [4][9]<br />

AI.implant<br />

„Animation Control Eng<strong>in</strong>e“<br />

Plug- In Interface für Maya und 3ds Max<br />

C++ SDK (erweiterbar)<br />

Zielgruppe: Spiele mit komplexen Animationen und Bedarf an<br />

Charakterkontrolle<br />

DirectIA<br />

„Behaviour- Oriented SDK“


Motivation Eng<strong>in</strong>e, Behaviour Eng<strong>in</strong>e, Communication Eng<strong>in</strong>e, Perception<br />

Eng<strong>in</strong>e, Action Eng<strong>in</strong>e, Knowledge Eng<strong>in</strong>e<br />

Agent- based Behaviour Model<strong>in</strong>g System<br />

Scripts und C++<br />

Für Programmierer, nicht Level- Designer<br />

Ren<strong>der</strong>Ware AI<br />

C++ Basis- Klassen<br />

Charakter Verhalten<br />

Architecture Layer, Services Layer, Agents Layer, Decision Layer<br />

Gute Modifiaktionsmöglichkeiten (direkt im Sourcecode)<br />

Teil <strong>der</strong> „Ren<strong>der</strong>Ware Plattform“ (Suite of Gamedevelopment)<br />

Viel E<strong>in</strong>arbeitung erfor<strong>der</strong>lich<br />

SimBionic<br />

Beson<strong>der</strong>heit: Objekt- Kontrolle<br />

Sehr “state oriented” (wie F<strong>in</strong>ite State Mach<strong>in</strong>e)<br />

Visual Editor<br />

C++ API<br />

Komfortables Debugg<strong>in</strong>g<br />

Übersicht [5]<br />

Product<br />

Feature AI.implant DirectIA RWAI SimBionic<br />

User<br />

Decision<br />

Support<br />

Other<br />

Services<br />

Behavior<br />

Support<br />

Eng<strong>in</strong>e<br />

Source<br />

Code<br />

Availability<br />

Extensibility<br />

Production<br />

Tools<br />

B<strong>in</strong>ary<br />

decision<br />

trees<br />

Auto path<br />

generation,<br />

pathf<strong>in</strong>d<strong>in</strong>g<br />

Prepackaged<br />

behaviors<br />

Motivated<br />

decision<br />

graphs<br />

Pathf<strong>in</strong>d<strong>in</strong><br />

g<br />

Templated<br />

behavior<br />

scripts<br />

F<strong>in</strong>ite state<br />

mach<strong>in</strong>es,<br />

neural<br />

networks<br />

Graphics and<br />

physics <strong>in</strong><br />

other<br />

modules, auto<br />

path<br />

generation,<br />

pathf<strong>in</strong>d<strong>in</strong>g<br />

Pre- packaged<br />

behaviors<br />

F<strong>in</strong>ite state<br />

mach<strong>in</strong>es<br />

Inter- agent<br />

communication<br />

User developed<br />

behaviors<br />

Some No Yes Some<br />

Userdeveloped<br />

behaviors<br />

Maya/3ds<br />

max plug<strong>in</strong>s<br />

Userdeveloped<br />

scripts,<br />

callback<br />

functions<br />

Script<br />

templates,<br />

tun<strong>in</strong>g GUI<br />

Userdeveloped<br />

behaviors,<br />

callback<br />

functions<br />

AI skeleton<br />

code, XML<br />

configuration<br />

User developed<br />

behaviors,<br />

callback<br />

functions<br />

Visual editor,<br />

visual<br />

debugger


Open Source Produkte<br />

Ausgereifte Open Source <strong>Middleware</strong> im Bereich AI existiert nur sehr spärlich,<br />

bei den meisten Produkten wurde die Weiterentwicklung <strong>in</strong>zwischen<br />

e<strong>in</strong>gestellt. Die Produkte FEAR [10] und OpenSteer [11] werden hier näher<br />

betrachtet:<br />

FEAR<br />

Module mit allgeme<strong>in</strong>en <strong>KI</strong> Techniken<br />

Interfaces für Game Environments<br />

Generisches Framework<br />

C++<br />

OpenSteer<br />

Steuerverhalten von Charakteren<br />

C++<br />

OpenGL <strong>in</strong>tegriert<br />

Plug- In Architektur<br />

Weitere Produkte<br />

Es existieren weitere Produkte, die sich als AI <strong>Middleware</strong> bezeichnen.<br />

Meistens handelt es sich jedoch um Produkte im Low- Level Bereich die<br />

lediglich elementare <strong>KI</strong>- Methoden und Algorithmen, hauptsächlich im Bereich<br />

Pathf<strong>in</strong>d<strong>in</strong>g bereitstellen.<br />

Referenzen<br />

[1] Gamasutra Artikel von Eric Dybsand (Juli 2003): AI <strong>Middleware</strong>: Gett<strong>in</strong>g<br />

<strong>in</strong>to Character Part 1 - BioGraphic Technologies' AI.implant<br />

http:/ /www.gamasutra.com /features /20030721 / dybsand_01.shtml<br />

[2] Gamasutra Artikel von Eric Dybsand (Juli 2003): AI <strong>Middleware</strong>: Gett<strong>in</strong>g<br />

<strong>in</strong>to Character Part 2 - MASA's DirectIA<br />

http:/ /www.gamasutra.com /features /20030722 /dybsand_01.shtml<br />

[3] Gamasutra Artikel von Eric Dybsand (Juli 2003): AI <strong>Middleware</strong>: Gett<strong>in</strong>g<br />

<strong>in</strong>to Character Part 3 - Criterion's Ren<strong>der</strong>Ware AI 1.0<br />

http:/ /www.gamasutra.com /features /20030723 / dybsand_01.shtml<br />

[4] Gamasutra Artikel von Eric Dybsand (Juli 2003): AI <strong>Middleware</strong>: Gett<strong>in</strong>g<br />

<strong>in</strong>to Character Part 4: Stottler Henke's SimBionic<br />

http:/ /www.gamasutra.com /features /20030724 /dybsand_01.shtml<br />

[5] Gamasutra Artikel von Eric Dybsand (Juli 2003): AI <strong>Middleware</strong>: Gett<strong>in</strong>g<br />

<strong>in</strong>to Character<br />

http:/ /www.gamasutra.com /features /20030725 /dybsand_01.shtm<br />

[6] Biographic Technologies: AI.Implant<br />

http://www.ai- implant.com /<br />

[7] Mathematiques Appliquees S.A. (MASA)<br />

http://www.directia.com/<br />

[8] Criterion Software Inc.: Ren<strong>der</strong>Ware AI<br />

http://www.ren<strong>der</strong>ware.com/ai.asp<br />

[9] Stottler Henke: SimBionic<br />

http://www.simbionic.com/<br />

[10] OpenSource AI <strong>Middleware</strong>: FEAR


http://fear.sourceforge.net/<br />

[11] OpenSource AI <strong>Middleware</strong>: OpenSteer<br />

http://opensteer.sourceforge.net/<br />

Weitere L<strong>in</strong>ks<br />

http://www.red3d.com /cwr /games /#ai - software (Gesamtübersicht)<br />

http://www.red3d.com /cwr / pa pers / 1999 /gdc99steer.html (Paper:<br />

Steer<strong>in</strong>g)<br />

http://www.red3d.com /cwr /steer / (Paper: Steer<strong>in</strong>g, Examples)<br />

http://www.igda.org/ai/ (Interest Group on Artificial Intelligence)<br />

http://www.stottlerhenke.com /papers /Bra<strong>in</strong>frame_IEEE_article.pdf<br />

(Paper zu SimBionic)<br />

Ideen für die Ausarbeitung / den praktischen Teil<br />

Zunächst könnte man untersuchen, <strong>in</strong>wiefern es S<strong>in</strong>n macht, AI <strong>Middleware</strong>s<br />

für Spiele e<strong>in</strong>zusetzen. Noch vor wenigen Jahren konnte sich kaum e<strong>in</strong><br />

Spieleentwickler vorstellen, e<strong>in</strong>e <strong>Middleware</strong> für e<strong>in</strong>e komplexe <strong>KI</strong> zu<br />

benutzen, es herrschte immer die Me<strong>in</strong>ung dass jedes (professionelle) Spiel<br />

e<strong>in</strong>e komplett eigenständige <strong>KI</strong> benötigt. Inzwischen werden diese<br />

<strong>Middleware</strong>s aber auch <strong>in</strong> <strong>der</strong> professionellen <strong>Spieleentwicklung</strong> e<strong>in</strong>gesetzt.<br />

Hier könnte man herausf<strong>in</strong>den, welche Produkte bei welchen bekannten<br />

Spielen e<strong>in</strong>gesetzt werden, ob die <strong>Middleware</strong> nur am Rande e<strong>in</strong>gesetzt wurde<br />

(zum Beispiel für Teilbereiche wie Pathf<strong>in</strong>d<strong>in</strong>g), o<strong>der</strong> ab sie für die gesamte <strong>KI</strong><br />

verwendet wird.<br />

E<strong>in</strong> wichtiger Punkt dabei ist natürlich die Erweiterbarkeit <strong>der</strong> Produkte: E<strong>in</strong>e<br />

Universal- <strong>KI</strong> für sämtliche Spiele o<strong>der</strong> auch nur Spiele e<strong>in</strong>er bestimmten<br />

Kategorie kann es vermutlich nicht geben.<br />

E<strong>in</strong> weiterer <strong>in</strong>teressanter Punkt wäre es, die bestehenden Nachteile e<strong>in</strong>er AI<br />

<strong>Middleware</strong> näher zu betrachten und nach Möglichkeiten zu suchen diese<br />

Nachteile <strong>in</strong> zukünftigen Versionen zu m<strong>in</strong>imieren.<br />

Es könnte die generelle Frage untersucht werden, wie e<strong>in</strong>e perfekte AI<br />

<strong>Middleware</strong> aussehen sollte und wo dennoch immer Grenzen existieren<br />

werden.<br />

In dieser Sammlung wurden kommerzielle und Open Source Produkte<br />

betrachtet. Auf den ersten Blick machen die kommerziellen Produkte auf dem<br />

momentan Stand e<strong>in</strong>en deutlich professionelleren E<strong>in</strong>druck. E<strong>in</strong>e Möglichkeit<br />

für den praktischen Teil wäre e<strong>in</strong>er Weiterentwicklung o<strong>der</strong> die<br />

Implementierung e<strong>in</strong>es Moduls bei e<strong>in</strong>em <strong>der</strong> Open Source Produkte.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!