Giacinto-WPFB_Prozed..

Transcription

Giacinto-WPFB_Prozed..
1
Prozedurale Generierung von Wegsystemen in
Computerspielen
Robert Giacinto
[email protected]
Dieser Bedarf wurde mit unterschiedlichen Zielsetzungen in der
Forschung untersucht. Einige Arbeiten sollen kurz angesprochen
Zusammenfassung—Die hohe Verfügbarkeit von leistungsfähigen
Computern im Consumerbereich hat in den vergangenen Jahren
zu einem immer größeren Bedarf an qualitativ hochwertigen und
abwechslungsreichen Inhalten geführt. Die steigenden Anforderungen
können nicht mehr allein durch Künstler erfüllt werden, sondern werden
auf unterschiedliche Weise durch prozedural erzeugte Inhalte sinnvoll
ergänzt. In dieser Arbeit wird ein System zur dynamischen Generierung
von Wegesystemen als Grundlage von virtuellen Städten präsentiert,
das auf Grundlage von einzelnen über Pheromone kommunizierende
Agenten arbeiten.
Index Terms—Procedural Content Creation, Multiagent System
werden.
Die CityEngine [4] ist in der Lage glaubhafte Stadtstrukturen zu erzeugen. Hierfür benötigt die Software eine Vielzahl
von Eingabewerten (Bevölkerungsverteilung in der Stadt, Landschaftsmerkmale und weitere statistische Daten), die während
der Generation der virtuellen Stadt verwendet werden. Der Nutzer
hat durch die Definition von Bildungsvorschriften mittels eines
erweiterten L-Systems die Möglichkeit direkten Einfluss auf das
Aussehen der Stadt zu nehmen.
Ein weiterer globaler Ansatz zur prozeduralen Erzeugung von
I. Einführung und verwandte Arbeiten
Die Ansprüche, die an den grafischen Inhalt von neuen Compu-
urbanen Strukturen ist der Prototyp CityGen von Greuter et
al. [5], der auf einem festen Grid Parzellen einer bestimmten
Gebäude- bzw. Nutzungsart zuweist.
terspiel gestellt werden, können durch die alleinige Erhöhung des
Der CityBuilder [6] erzeugt auf Basis der Interaktion verschie-
Produktionsbudgets nicht mehr erfüllt werden. Aus diesem Grund
dener Agenten die urbane Landnutzung in einer Region. Das
wird versucht Arbeiten auf prozedurale Techniken auszulagern,
Modell umfasst drei verschiedene Landnutzungstypen: Wohnge-
um so die Bedürfnisse und Ansprüche befriedigen zu können,
biete, Industrie- und Gewerbegebiete. Die Simulation läuft endlos,
ohne eine weitere Erhöhung des Budgets in die Planung mit
kann aber von dem Nutzer zu beliebigen Zeitpunkten gestoppt
einzubeziehen. Beispiele für die Verwendung prozeduraler Tech-
und das Resultat verwendet werden. Der CityBuilder sieht eine
niken in Computerspielen findet sich an unterschiedlichen Stellen
Einflussnahme von Außen durch das Konzept von honey vor.
und wird schon unterschiedlich lang erfolgreich in der Produktion
Hierbei handelt es sich um auf die Karte auftragbare Incentives,
neuer Spiele eingebunden. Die Generierung zufälliger Landschaf-
die die Agenten zu einer bestimmten Handlung animieren.
ten in Strategiespielen wie The Settlers (Bluebyte), Star Craft
Diese Arbeit zielt auf die glaubhafte, dynamische Erzeugung
(Blizzard) oder Tribal Trouble (Oddlabs), das die Generierung
und Anpassung urbaner Strukturen in Computerspielen zur Lauf-
von virtuellen Landschaften mit Modellen der künstlichen Erosion
zeit. Strukturen können entstehen, sich verändern oder verworfen
erweiterte, um den Grad an visuellem Realismus zu verbessern [1],
werden. Basis dieser Veränderungen sind die Interaktionen sozia-
erhöht die Wiederspielbarkeit von Titeln und kann als eine der
ler Agenten, die von Bedürfnissen angeleitet die Welt entspre-
Standardtechniken angesehen werden, die über Jahre erfolgreich
chend verändern. Dem Beispiel sozialer Insekten folgend ist die
in kommerziellen Spielen eingesetzt wurde. Neuere Beispiele für
Grundlage der Interaktion und Kommunikation einzelner Agenten
prozedurale Techniken sind die Erzeugung prozeduraler Wälder
ein Phermomonsystem, das den Agenten die Möglichkeit des
zur Begrünung großer Flächen, wie sie spätestens seit dem
lokalen Wissensaustauschs bietet. Hierbei ist die Entstehung
erfolgreichen Einsatz in dem Spiel The Elder Scrolls IV: Oblivion
urbaner Strukturen ein emergenter Prozess, bei dem die lokal ver-
eingesetzt werden [2] und in unterschiedlichen kommerziellen
arbeiteten Informationen und durchgeführten Aktionen zu einer
Produkten zu finden sind (z.B. SpeedTree von IDV Inc. [3]).
gemeinschaftlich globalen Entwicklung führen.
Ein wichtiger Teil vieler Spiele ist die glaubhafte Darstellung
von Städten und dem in ihnen stattfindenen Leben. Ein bekanntes
Beispiel für die relevanz virtueller Städte ist die Grand Theft Auto
II. Architektur
Reihe, die ihre Geschichten im urbanen Umfeld erzählt und durch
Das System ist mit einen hohen Modularität und Erweiter-
einen Open World Ansatz geprägt ist, bei dem der Spieler sich frei
barkeit im Kopf gestaltet worden. Das dem System zugrunde
in der Welt bewegen und nach eigenen Wünschen erkunden kann.
liegende Konzept ist in Abb. 1 zu sehen. Innerhalb des Systems
2
– Bedürfnis nach Kommunikation mit anderen Personen
•
Sicherheitsbedürfnis
– Bedürfnis nach finanzieller Sicherheit (Arbeitsplatz)
Abhängig von der Triggerfunktion und der Priorisierung des jeweiligen Bedürfnisses wird es als Motivation für zukünftige Aktionen
gewählt. Die Bedürfnisse werden in regelmäßigen Zeitabständen
aktualisiert. Die Wahrscheinlichkeit, mit der ein Verhalten durch
das Bedürfnissystem getriggert wird, wird über die Funktion λ
bestimmt. Sie hängt von bedürfnisspezifischen Faktoren ab und
Abbildung 1.
Komponenten der Simulation
existieren zwei Typen von Agenten, die Personen und die Gebäude, die von Personen zur Bedürfnisbefriedigung genutzt werden.
Die Weltkomponente verwaltet die zentralen Datenstrukturen,
in denen die Welt gespeichert ist. Die Welt fungiert hierbei als
eine Art von Singleton-Objekt, das auf Anfrage eines Agenten
lokale Informationen zurückgibt. Der Prototyp wurde mithilfe des
Frameworks JADE in Java implementiert. Und bietet somit über
ACL-konforme Schnittstellen die Möglichkeit, externe Agenten
zu einem späteren Zeitpunkt mit den laufenden Agenten kommunizieren zu lassen.
beschreibt die Eintrittswahrscheinlichkeit zum Zeitpunkt t.
B. Bedürfnissystem
Das Bedürfnissystem ist über einen Bedürfnismanager realisiert, der alle Bedürfnisse eines Agenten aktualisiert. Die Reihenfolge, in der diese Bedürfnisse ein Verhalten triggern, das den
Agenten dazu anleitet dieses zu stillen, hängt von der Priorität
und der aktuellen Gewichtung des betrachteten Bedürfnisses ab.
Die Triggerfunktion λ kann abhängig vom zugrunde liegenden
Bedürfnis unterschiedliche Faktoren in die Berechnung mit einbeziehen. Der Bedürfnismanager ist eine Subkomponente eines
Personenagenten. Diese Komponente versucht die Bedürfnisbefriedigung so groß wie möglich zu halten.
III. Agenten und Bedürfnisbefriedigung
Die Zufriedenheit eines Agenten innerhalb der Simulation de-
Die Agenten besitzen ein Anzahl von verschiedenen Bedürf-
finiert sich als die Abwesenheit von unbefriedigten Bedürfnissen.
nissen, die befriedigt werden müssen, damit der Agent in der
Das Bedürfnissystem evaluiert dafür zu jedem Zeitpunkt den ak-
Welt überleben kann. Um zu entscheiden, welche Bedürfnisse
tuellen Zustand des Agenten und aller im System implementierten
befriedigt werden müssen und welche Aktionen durchgeführt
Bedürfnisse. Wird ein Bedürfnis zur Befriedigung ausgewählt, so
werden müssen, um das Ziel zu erreichen, werden die Aktionen
übernimmt ein entsprechendes Befriedigungsverhalten die Kon-
des Agenten von einer Entscheidungsinstanz kontrolliert. Dieses
trolle über die Person. Befindet sich der Agent nicht direkt an
System lenkt die Handlungen des Agenten auf Grundlage der
einem Ort, an dem er ein Bedürfnis befriedigen kann, ermög-
Bedürfnisse und ihrer Prioritäten.
licht eine Steeringkomponente die Navigation durch die Welt.
Das Finden solcher Ressourcen wird über das Emittieren von
A. Bedürfnisse
Ein Agent besitzt unterschiedliche Bedürfnisse, die unterschiedlich relevant für die Aufrechterhaltung des eigenen Organismus sind. Sie können als das Tupel (vcurrent , λ, p), mit
dem aktuellen Energiewert vcurrent , der Triggerfunktion λ und
der Priorität p betrachtet werden und sind die grundlegende
Motivation für die Interaktion mit anderen Agenten und der
Welt.
Die Bedürfnishierarchie und der damit verbundenen Priorisierung richtet sich dabei nach der Maslowsche Bedürfnispyramide
[7]. Die innerhalb der Simulation implementierten Bedürfnisse
sind:
•
•
Ressourcen-abhängigen Pheromonen ermöglicht, die sich in der
Welt ausbreiten und ihre Position über einen Pheromongradienten
im System propagieren.
Im Regelfall emittieren die zu der Ressource gehörigen Gebäude
ein entsprechendes Pheromon, das von den Agenten wahrgenommen werden kann. Ein einziger Sonderfall existiert in der
Simulation. Dies ist ein Pheromon, das von den Agenten selbst
ausgegeben wird und für das Finden sozialer Kontakte benötigt
wird.
Der generelle Ablauf der Bedürfnisbefriedigung ist in Abbildung 2 dargestellt. Der Ablauf besteht aus zwei wesentlichen
Phasen. Der Aktualisierung der Bedürfnisse, bei der zu befriedigende Bedürfnisse einer Warteschlange übergeben werden und
vegetative Bedürfnisse
dem Job Manager, der das wichtigste Bedürfnis auswählt und
– Hunger
eine Bedürfnisbefriedigung initiiert. In der Regel wird hierfür ein
– Schlaf
Bewegungsverhalten im Agenten getriggert, bei dem der Agent
– Sicherheit (Bedarf nach Wohnraum)
die Informationen seiner Umgebung dazu nutzt, sein Ziel zu
soziale Bedürfnisse
erreichen.
3
eine Spur in der Welt, die der Agent zur Orientierung
verwenden kann.
2) Interaktionspheromone
a) Sozialpheromon
Diese Art von Pheromonen kann von Agenten dazu
verwendet werden, soziale Interaktion mit anderen
Agenten innerhalb der Welt zu betreiben. Hat ein
Agent das Gefühl zu vereinsamen, kann der Agent
mithilfe dieses Pheromons gefunden werden und durch
die Nähe eines anderen Agenten das Bedürfnis nach
sozialen Kontakten befriedigen.
b) Gebäudepheromone
Jeder Gebäudetyp, der in der Welt existiert, ist in der
Lage ein eigenes Pheromon in die Welt zu entlassen.
Dieser kann, bei Bedarf, spezifisch sein und nur einen
Agenten im Speziellen ansprechen.
i) Wohnungspheromon
Abbildung 2.
Simulation.
Dieses Pheromon ist ein Beispiel für ein Phero-
Flow Chart der Bedürfnisverwaltung innerhalb der
mon, das nur für einem einzigen Agenten verarbeitet wird. Es wird dazu benutzt, um das eigene
C. Pheromone
Haus wiederzufinden, in dem der Agent Bedürfnisse nach Schlaf oder Sicherheit befriedigen kann.
Agenten besitzen zur Laufzeit weder eine eigene Wissensre-
ii) Dienstleistungspheromone
präsentation der Welt (z.B. eine intern gepflegte Karte, die zur
Dienstleistungspheromone werden von Gebäuden
Navigation und Routenplanung verwendet werden kann), noch
emittiert, die eine Dienstleistung, zum Beispiel
hat ein Agent Zugriff auf ein globales Wissen, das zentral von
der Verkauf von Lebensmitteln, anbieten. Agenten
der simulierten Welt verwaltet wird. Entscheidungen werden allein
können diese Informationen nutzen, um zu einem
auf Grundlage von Informatonen gefällt, die sie aus ihrer direkten
Dienstleister zu gelangen, der die entsprechenden
Umgebung in Form von Pheromonen wahrnehmen. Daher findet
Bedürfnisse eines Agenten befriedigen kann. Da-
die Kommunikation zwischen den Agenten sowie mit der Welt
mit eine solche Dienstleitung angeboten werden
indirekt auf Basis von unterschiedlichen Pheromonen statt, die in
kann, muss sie von einem Agenten produziert
die Welt ausgegeben werden. Den Agenten stehen die Pheromone
werden.
innerhalb der Moore-Nachbarschaft ihrer Position zur Verfügung.
iii) Arbeitsplatzpheromon
Sie dienen dem Informationsaustausch und sind die einzigen
Ein solches Pheromon wird von einem Gebäude
externen Informationen, die der Agent während seiner Aktionen
produziert, wenn ein freier Arbeitsplatz verfügbar
verarbeitet und in seine Entscheidungsfindung mit einbezieht. Die
ist. Dieser kann von einem Agenten belegt werden,
Pheromone erfüllen nach [8] folgende Eigenschaften:
der somit sein Bedürfnis nach Geld und Beschäf•
Pheromone gleichen Typs addieren sich in ihrer Stärke
•
die Stärke der Pheromone nimmt über die Zeit ab
•
Pheromone diffundieren im Raum
•
Pheromone sind von anderen Entitäten wahrnehmbar und
dienen als Grundlage ihrer Entscheidungen
tigung befriedigen kann.
D. Verhaltensklassen
Die Aktionen, die ein Agent ausführen kann und die durch
Die zwei Komponenten, die im Wesentlichen auf eine Pheromon-
den Bedürfnismanager getriggert werden können, sind als Ver-
gestützte Kommunikation zurückgreifen, sind die Wegfindung
haltensklassen innerhalb der Simulation definiert. Diese sind dem
innerhalb der Welt und die Bedürfnisbefriedigung des Agenten.
Bedürfnismanager bekannt und können zur Laufzeit geladen und
Somit ergibt sich auch die Hauptunterteilung der in der simulier-
durch den Agenten ausgeführt werden.
ten Welt existierenden Pheromone.
1) Wegpheromone
Wegpheromone werden vom Agenten während eines aktiven Bewegungsverhalten emittiert. Er hinterlässt dadurch
Es werden dabei zwei Arten von Verhaltensklassen unterschieden:
•
Bedürfnisbefriedigung
Diese Klasse wird ausgelöst, wenn ein Bedürfnis durch den
4
Abbildung 3. Ein Agent auf der Suche nach einem freien Haus. Das
blaue Pheromon signalisiert, dass das Haus noch frei ist (linkes Bild).
Sobald der Agent das Pheromon wahrnimmt, folgt er dem Gradienten
und findet so das Haus. Mithilfe des roten Pheromons kann der Agent
sein Haus wiederfinden (rechts Bild).
Bedürfnismanager ausgewählt wird und durch den Agenten
befriedigt werden soll.
Bewegungsverhalten
•
Das Bewegungsverhalten wird immer dann verwendet, wenn
der Agent sich fortbewegen muss, um einen Job zu abschließen zu können. Dieses Verhalten ist das Kernstück
dieser Arbeit gewesen und soll im folgenden Abschnitt näher
beschrieben werden.
Abbildung 4.
Simulationsergebnis mit 4 Agenten nach 70 Minuten.
1) Bewegungsverhalten: Das Bewegungsverhalten sorgt dafür, dass der Agent sich innerhalb der Welt von einem Punkt
zu einem anderen bewegen kann, unter Berücksichtigung existierender Wege.
]
Die Methode endet, wenn der Agent einen Bereich erreicht
Im Laufe der Zeit entstehen durch die Interaktion der Agenten
hat, in dem das gesuchte Pheromon einen definierten Grenzwert
mit der Umwelt durch das Hinterlassen von Pfaden Wegsysteme,
überschreitet, danach kann das Bedürfnisbefriedigungsverhalten
die von anderen Agenten mitbenutzt werden und die existierenden
das mit dem Servicetyp assoziierte Bedürfnis befriedigen, indem
Weg so verstärken. Der Bedürfnismanager teilt dem Bewegungs-
der Wert um einen zufälligen Wert reduziert wird.
verhalten mit, zu welcher Art von Dienstanbieter (welcher Ge-
Auf Basis dieser Navigation durch die Welt entsteht über die
bäudetyp) der Agent gehen soll. Das Bewegungsverhalten über-
Zeit hinweg ein Wegesystem, das von den Agenten verwendet
nimmt ab diesem Zeitpunkt die Kontrolle über den Agenten und
werden kann, um einen schnellen Weg durch die Welt zu finden.
steuert ihn mithilfe der Pheromoninformation in seiner direkten
Umgebung zu seinem Zeil.
Da weniger verwendete Pheromonspuren durch die oben beschriebenen Eigenschaften der Pheromone über die Zeit hinweg
Abbildung 3 zeigt, wie ein Agent mithilfe des Bewegungsver-
in ihrer Stärke abnehmen, werden sie von Agenten seltener
halten sein Ziel finden kann. In diesem Beispiel befindet sich die
verwendet, wodurch falsche oder nicht optimale Wege von dem
Person auf der Suche nach einem Haus, in das sie einziehen
System vergessen werden.
kann. Hierfür folgt der Agent dem Pheromon des Hauses bis es
gefunden wurde.
Der allgemeine Ablauf des Bewegungsverhalten ist:
def moveTo ( service type ):
while agent is not at target location [
get current vicinity of agent
if pheromone of service type exists in vicinity
and strength is larger than threshold [
IV. Ergebnisse
Die Simulation ist im Stande, grundlegende Straßenstrukturen
zu produzieren, auf denen sich die Agenten innerhalb der Stadt
fortbewegen. Der Aufbau der simulierten Stadt verändert sich im
Laufe der Zeit dahingehend, dass die Wege sich einem optimalen
Weg zwischen den einzelnen Gebäuden annähern. Dies deckt sich
agent has reached target location
mit Erkenntnissen und Arbeiten der letzten Jahre, in denen das
]
if pheromone of service type exists in vicinity [
set heading of agent to direction of the maximum
if road is in vicinity of agent and heading matches [
set heading of agent to the weighted mean of road and pheromone direction
]
] else if road is in vicinity of agent [
set heading of agent to direction of the road
] else [
Foraging-Verhalten von Ameisen zum Pathfinding in unbekannten
Umgebungen untersucht wird (zum Beispiel [9], [10], [11]).
Die Ergebnisse, wie sie in Abbildung 4 zu sehen sind, sie
demonstrieren die Interaktion von vier Agenten, die die Welt
bewohnen und sich um ihre Bedürfnisbefriedigung kümmern. Man
set heading of agent to random direction
]
erkennt die deutlich hervortretenden Hauptwege, die von den
move agent one step in the new direction
Agenten besonders häufig frequentiert wurden. Allerdings ist die
5
Performanz der Simulation für einen ernsthaften Einsatz noch
zu langsam und müsste über ein intensives Profiling optimiert
werden.
V. Evaluation und zukünftige Arbeit
Es konnte im Rahmen dieser Arbeit gezeigt werden, das es auf
Grundlage einiger weniger Befürfnisse und Entscheidungen von
selbstständigen Entitäten möglich ist, künstliche Wegesysteme
zu generieren.
Die Ergebnisse dienen aber eher einem Proof of Concept
Gedanken, als dass sie eine anwendbare Lösung vorschlagen.
Unter anderem müssten folgende zusätzliche Fragestellungen
bearbeitet werden, um zu einer Anwendung zu kommen, die für
die Benutzung in Computerspielen interessant ist:
•
Welche Auswirkungen hat die Topologie einer Landschaft
auf die Entwicklung von urbanen Strukturen?
•
Wie lassen sich Erkenntnisse aus der Stadtplanung integrieren, die die Struktur und Verteilung von Gebäuden beeinflussen?
•
Welche Datenstrukturen ermöglichen einen Austausch mit
existierenden Spiele-Engines?
In zukünftigen Arbeiten sollte die Welt, die einen Agenten umgibt, um wesentliche Kompontenten erweitert werden, die die
Entscheidungen wesentlich beeinflussen. Gerade das Fehlen von
topologischen Daten innerhalb der Simulation sollte behoben
werden, da Landschaftsmerkmale, wie Berge, Ebenen oder der
direkte Zugang zu Wasserquellen wesentlichen Einfluss auf die
Gestalt einer Stadt haben.
Die Modellierung müsste in weiteren Schritten mit Testdaten
von realen Städten verglichen werden und zusätzliche, für die
Computerspielebranche relevante, Evaluationskriterien ergänzt
werden.
Literatur
[1] J. Olsen, “Realtime procedural terrain generation - realtime synthesis of eroded fractal terrain for use in computer games,”
Department of Mathematics And Computer Science IMADA
University of Southern Denmark, 2004.
[2] B. Softworks. (2006) The elder scrolls iv: Oblivion. [Online].
Available: http://www.elderscrolls.com
[3] I. Inc. (2011) Speedtree. IDV Inc. [Online]. Available: http:
//www.speedtree.com
[4] Y. I. H. Parish and P. Müller, “Procedural modeling of cities.” in
SIGGRAPH, 2001, pp. 301–308. [Online]. Available: http://dblp.
uni-trier.de/db/conf/siggraph/siggraph2001.html#ParishM01
[5] S. Greuter, J. Parker, N. Stewart, and G. Leach, “Real-time
procedural generation of ‘pseudo infinite’ cities,” in Proceedings
of the 1st international conference on Computer graphics and
interactive techniques in Australasia and South East Asia, 2003.
[6] T. Lechner, B. Watson, P. Ren, U. Wilensky, S. Tisue, M. Felsen,
T. Lechner, B. Watson, P. Ren, U. Wilensky, S. Tisue, and
M. Felsen, “Procedural modeling of land use in cities,” 2004.
[7] A. Maslow, “A theory of human motivation,” Psychological Review, vol. 50, no. 4, pp. 370–396, 1943.
[8] H. V. D. Parunak, S. Brueckner, R. S. Matthews, and J. A.
Sauter, “Pheromone learning for self-organizing agents.” IEEE
Transactions on Systems, Man, and Cybernetics, Part A, vol. 35,
no. 3, pp. 316–326, 2005. [Online]. Available: http://dblp.
uni-trier.de/db/journals/tsmc/tsmca35.html#ParunakBMS05
[9] L. N. Guptha, Prasaanth, and Srikrishna, “Article: Swarm
intelligence- ant colony foraging behavior,” International Journal
of Computer Applications, vol. 1, no. 27, pp. 95–98, February
2010, published By Foundation of Computer Science.
[10] L. Panait and S. Luke, “Ant foraging revisited,” in Proceedings
of the Ninth International Conference on the Simulation and
Synthesis of Living Systems (ALIFE9), 2003. [Online]. Available:
http://cs.gmu.edu/~eclab/papers/panait04ant.pdf
[11] A. E. Langham and P. W. Grant, “Using competing ant
colonies to solve k-way partitioning problems with foraging and
raiding strategies.” in ECAL, ser. Lecture Notes in Computer
Science, D. Floreano, J.-D. Nicoud, and F. Mondada, Eds., vol.
1674. Springer, 1999, pp. 621–625. [Online]. Available: http:
//dblp.uni-trier.de/db/conf/ecal/ecal99.html#LanghamG99