01.02.2013 Aufrufe

MiCaDo Projektbericht - artecLab - Universität Bremen

MiCaDo Projektbericht - artecLab - Universität Bremen

MiCaDo Projektbericht - artecLab - Universität Bremen

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.

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!