The versatility of the CGA Rules and the fact that every detail can be processed by hand makes CityEngine a rapid and effective tool for game development.
Success Story
Destroyed City
Ziel des Projekts: Design eines prozedural generierten Levels für ein Computerspiel
Um den praktischen Nutzen seiner Bachelorarbeit zur prozeduralen Synthese von Architektur in Computerspielen unter Beweis zu stellen, entschied sich das Team aus Christian Holzer und fünf weiteren Studenten für die Entwicklung eines 3D-Action-Rollenspiels. Im Laufe des Projekts wurde ihnen schnell klar, dass sie eine düstere postapokalyptische mitteleuropäische Stadtszenerie als Hauptlevel ihres Spiels erschaffen wollten. Die Produktionsanforderungen legten sie wie folgt fest:
- Aufgrund des kleinen Teams musste es möglich sein, die gesamte Stadtszene in einem begrenzten Zeitrahmen zu modellieren
- Das Spiellevel sollte Gebäuderuinen und weiträumig verteilte zerstörte Assets enthalten
- Die Arbeit sollte sich mit einem begrenzten Polygon-Budget realisieren lassen
Lösung: Prozedurale Modellierung mit CityEngine
Die besondere Umgebung, die Holzer mit seinem Team schaffen wollte, sollte in einer mitteleuropäischen Großstadt angesiedelt sein und durfte aufgrund der kurzen Entwicklungszeit nur eine geringe Polygonanzahl aufweisen. Außerdem benötigten sie eine effiziente Methode, um die Zerstörung zu modellieren, denn über 60 Prozent der Stadt sollte vollständig oder zumindest teilweise in Trümmern liegen. Holzer wendete die Regeln der CGA-Shape-Grammatik so an, dass er die zerstörte Architektur prozedural implementieren konnte.
"Bevor wir die Regeln für die Häuser und Parks erstellten, haben wir ganz einfach Gebäudeblöcke extrudiert und konnten somit erforschen, welche Auswirkungen dies auf die Architektur haben würde. Beim Design eine ausgewogene Balance zwischen den schmalen Straßenabschnitten und den freien Flächen und Parks zu finden, war für unser Projekt besonders wichtig. Der Spieler sollte sich im gesamten Level der Spiels zwar möglichst frei bewegen können, aber trotzdem sollte ihm die spezielle Anordnung aus Straßen, Häuserblöcken und markanten Gebäuden als Orientierungshilfe dienen und ihn zu den ambitionierteren Bereichen des Spiels leiten. Die CGA-Regeln lassen sich sehr vielseitig einsetzen, nicht nur für die Erschaffung von Gebäuden und Straßen, sondern zum Beispiel auch für Parkanlagen mit unregelmäßig entwickeltem Pflanzenwuchs. Nachdem wir ein wenig Übung hatten, wurde der Zeitgewinn, den wir im Vergleich mit anderen Methoden erzielen konnten, sehr offensichtlich."
Verwendeter Produktions-Workflow
Christian Holzer war in seinem aus fünf Entwicklern bestehenden Team als leitender Grafiker für das Spiellevel und die Stadtszenerie verantwortlich. Für die prozedurale Modellierung von Gebäuden, Parkanlagen und Straßen sowie für die Verteilung der übrigen Modelle setzte er CityEngine und CGA-Regeln ein. Die Game-Assets und ihre Texturen erstellte er mit Autodesk® Maya®. Im Einzelnen ging er hier folgendermaßen vor:
- Entwurfszeichnung der grundlegenden Anordnung der Gebäude und Straßen mit Adobe® Illustrator® mit Darstellung der Straßen als Vektorpfade.
- Die vektorisierten Straßen wurden in CityEngine importiert und dienten als Hauptstraßennetz, auf dessen Grundlage anschließend mithilfe verschiedener Bearbeitungswerkzeuge kleinere Straßen und Unterteilungen erstellt wurden.
- Festlegung der nicht begehbaren Bereiche durch Hochladen einer Hinderniskarte.
- Gestaltung der Architektur und des Straßenbildes, z. B. durch unterschiedliche Straßentexturen je nach Straßenlänge, mithilfe von CGA-Regeln.
- Automatische Verteilung von Laternen, Abfalltonnen und anderen Assets nach dem Zufallsprinzip.
- Export des Stadtmodells aus CityEngine im FBX®-Format mit der Option zum Zusammenführen nach Materialien. Import des Modells in Maya® für Feinarbeiten (siehe Abbildung).
Als Entwicklungsumgebung für das gesamte Spiellevel und für die Verteilung sämtlicher Assets wurde CityEngine verwendet. Die parametrische Zerstörung der Gebäude implementierten die Entwickler mithilfe von CGA-Regeln, in sie CityEngine definierten. Das fertige Spiellevel wurde abschließend aus Maya® exportiert, sodass es mit der 3D-Engine OGRE verwendet werden kann.
Zahlen und Fakten zur Produktion
- Verwendete Software: CityEngine®, Maya®, Photoshop®
- Zeitaufwand für die prozedurale Produktion (gesamt): 200 Personenstunden
- Zeitaufwand für die prozedurale Synthese der gesamten Fläche in CityEngine: ca. 25 Sekunden
- Prozedural generierte Fläche: 10 km2
- Gesamtanzahl der endgültigen erzeugten prozeduralen Polygone: 300.000
- Anzahl der Gebäude und individuellen Objekte im Gelände: ca. 50
Credits
Prozedurale Modellierung: Christian Holzer
Team: Stefan Grassberger, Ivo Brunnbauer, Lukas Meindl, Nico Harather und Christian Holzer
Projekt: Bachelorarbeit, Dark Realm-Computerspiel, FH Hagenberg