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