MiCaDo Projektbericht - artecLab - Universität Bremen
MiCaDo Projektbericht - artecLab - Universität Bremen
MiCaDo Projektbericht - artecLab - Universität Bremen
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Eine weitere wichtige Eigenschaft sind die so genannten Capabilities. Diese kann man sich als eine<br />
vom Benutzer definierbare Menge C von Flags vorstellen, welche global durch Zuhilfenahme einer<br />
Symboltabelle verwaltet wird. Sie stellen einen wichtigen Bestandteil der Kreatur-KI dar, da sie<br />
erlauben, Kreaturen und Wegpunkten bestimmte Eigenschaften zuzuweisen und auf deren Vorhandensein<br />
zu testen. Die Namen der Eigenschaften können vom Benuzter frei gewählt werden, ohne<br />
dass sie im Programmcode als Konstanten bekannt sein müssen. Es handelt sich bei ihnen um einfache<br />
Zeichenketten, welche zur schnellen internen Verarbeitung in eindeutige natürliche Zahlen<br />
übersetzt werden.<br />
Ein Wegpunkt hält zwei Mengen P ⊂ C und R ⊂ C von zugewiesenen Capabilities, P steht hierbei<br />
für provides, R für requires. Beide Flag-Mengen geben pro Wegpunkt an, welche Eigenschaften er für<br />
Kreaturen in der Welt zur Verfügung stellt (wie beispielsweise Wasser, Futter oder einfach nur einen<br />
schönen Ausblick – der Kreativität seien hier keine Grenzen gesetzt) und welche er von ihnen erwartet,<br />
damit diese dort eine bestimmte Aufgabe oder Tätigkeit verrichten können. Im Translation File<br />
wird festgelegt, welche Capabilities eine Gruppe von Wegpunkten respektive Klasse von Bonuspaketen<br />
automatisch vom pathtool zugewiesen bekommt. Darüber hinaus kann auch festgelegt werden,<br />
dass Wegpunkte, welche oberhalb eines mit einem bestimmten Shader versehenen Polygons liegen,<br />
automatisch weitere Capabilities erhalten. Auf einer Grasfläche liegenden Punkten kann so z.B. eine<br />
Capability "grass" ∈ P zugewiesen werden. Im Translation File wird außerdem noch ein weiterer<br />
wichtiger Parameter angegeben – der Parameter penalty. Er ist wichitg, da viele intelligente Lebewesen<br />
die Tendenz haben, einfache Wege mit wenigen Richtungsängerungen 8 geringfügig kürzeren<br />
Wegen mit vielen Richtungsänderungen vorzuziehen. Dies mag einerseits in einer gewissen Faulheit<br />
begründet liegen, andererseits in der Tatsache, dass sie Distanzen und Weglängen deutlich schlechter<br />
abschätzen können, als ein Computer dies kann. Im Zweifelsfall wird von ihnen der Weg um<br />
ein Labyrinth aus Hindernissen herum gewählt, statt eines Weges durch dieses, selbst wenn der<br />
Weg aussen ein gutes Stück länger ist. Um dieses Verhalten nachzuahmen, kann das pathtool bei<br />
der Berechnung der Kosten eines Weges durch den Graphen ab der zweiten eingeschlagenen Kante<br />
zusätzliche Strafpunkte auf das Gesamtergebnis aufschlagen. Dieser Parameter gibt diese Punkte<br />
pro zusätzlicher Kante an. Seien dist(ei) die Kosten einer Kante ei, dann werden die Gesamtkosten<br />
einer Kantenfolge p = e1...en nach der folgenden Formel berechnet:<br />
pathcost(p) = dist(e1) +<br />
n<br />
∑<br />
i=2<br />
(dist(ei) + penalty)<br />
8 Wir nehmen an, dass an den meisten Knoten entlang eines Weges durch den Wegpunktgraphen eine Richtungsänderung<br />
nötig ist.<br />
55