SimCity: Neuer Blogeintrag über das Gebietssystem

Auf der offiziellen Website von SimCity wurde nun ein neuer Blogartikel veröffentlicht. Dieser gibt einen genaueren Einblick in das Gebietssystem von SimCity. Seht selbst:

 

Hallo miteinander! Mein Name ist Greg Underwood, und ich bin als Techniker verantwortlich für das Gebietssystem des neuen SimCity. Das Gebietssystem verwenden wir anstelle des Gitternetzes vorheriger Spiele zur räumlichen Anordnung der Gebäude.

Der Städtebau ist größtenteils eine geometrische Herausforderung. Die Straßen und Gebäude müssen irgendwie in der Spielewelt platziert werden. Die Stadt muss sich auf natürliche, logische und glaubwürdige Art weiterentwickeln.


Das Gitternetz vorheriger Spiele hat den Prozess auf praktische Art abgekürzt: Der Raum wurde dabei in einer Reihe gleichmäßiger Zellen aufgeteilt. Die Straßen und Gebäude nahmen dabei jeweils eine bestimmte Anzahl von Zellen ein. Dies erleichterte die Stadtentwicklung und das Aufstellen der Gebäude ungemein. Der ganze Vorgang ähnelte damit einem Spiel Tetris.


Mit den Kurven und der komplett in 3-D gehaltenen virtuellen Welt des neuen SimCity verändert sich alles. Wir brauchten eine neue Methode, um die Bauten und das Wachstum der Stadt zu organisieren. Hier kam das Gebietssystem ins Spiel! Wir haben uns in dieser Version dazu entschlossen, die Straßen als Basis zu verwenden. Sobald eine Straße verlegt ist, können daran Gebäude aufgestellt und Gebiete ausgewiesen werden. Im Anschluss können die Wohn-, Gewerbe- und Industriegebiete wachsen. Hinter den Kulissen entsteht eine Reihe von Gebiets-Bauplätzen, sobald ihr eine Straße verlegt:



Diese Bauplätze sind wie eine spezifische Unterteilung der Spielewelt. Sie liefern uns ein organisches Gitternetz, das mit jeder Art von Kurven zurechtkommt. Wenn ihr mit dem Gebiets-Tool Wohn-, Gewerbe- oder Industriegebiete ausweist, bekommt ihr ein Gefühl für deren Form.



Im Hintergrund laufen die Gebietsregeln und erkunden, ob es Raum für ein bestimmtes Wohn-, Gewerbe- oder Industriegebäude gibt. Dabei durchsucht das Gebietssystem die Gegend nach Bauplatz-Gruppen, auf denen das entsprechende Gebäude Platz hat. Bei einem Gitternetz, das weder quadratisch noch regelmäßig ist, bedeutet dies eine komplexe Aufgabenstellung. Da die Gebiets-Bauplätze der Krümmung der Straße entsprechen, sind sie manchmal an einem Ende breiter oder schmaler. Sie können auch auf ungewöhnliche Weise überlappen. Das heißt, dass eine bestimmte Gruppe von Bauplätzen nicht unbedingt ein Rechteck bilden muss. Auf den nächsten Bildern seht ihr einige unserer Debug-Modi zum Verlegen von Straßen. Sie zeigen euch, welche Bauplätze welchen Gebieten zugewiesen sind. Der angenehme Nebeneffekt: Ihr seht dadurch auch die Form der zusammengefassten Bauplätze, die unterschiedlichen Straßenkonfigurationen zugrunde liegen.



Dies stellt ein interessantes Problem der Datenverarbeitung dar: Wie berechne ich, ob ein Gebäude mit seinem Grundriss in ein auf den ersten Blick merkwürdig geformtes Vieleck passt, wie es durch die Zusammenfassung der Baugebiete entsteht? Die mathematische Entsprechung dieser Aufgabenstellung ist das so Punkt-in-Polygon-Problem. Die ausformulierte Variante davon wäre die Frage: Wie viele unterschiedliche Möglichkeiten gibt es, eine Form in eine andere einzufügen? Da es eine unbegrenzte Anzahl an Formen gibt, können sich die Lösungswege recht komplex gestalten. Die komplette Berechnung erfordert relativ viel Zeit. Allerdings ist SimCity so aufgebaut, das wir zwei wichtige Tatsachen zugrunde legen können. Diese reduzieren die Zahl der möglichen Lösungswege:

Erstens kennen wir die Ausrichtung des Gebäudes, das auf einer Gruppe von Bauplätzen aufgestellt werden soll – es muss zur Straße zeigen. Zweitens kennen wir die Form des Gebäudes – es ist grundsätzlich immer rechteckig.

Auf diese Art können wir das Punkt-in-Polygon-Problem auf einige schnelle Tests reduzieren. So ist es möglich, die Gebäude an den Straßen recht zügig aufzustellen.




Es gibt daneben natürlich noch viele weitere Punkte, die berücksichtigt werden wollen. Dazu gehören Kreuzungen und die sich daraus ergebenden Überlappungen der Gebiets-Bauplätze, Steigungen, Brücken, Ufergebiete und Klippen. Ein weiterer Faktor sind natürlich nicht zuletzt die Gebäude selbst – vor allem, wenn sie interne Straßen und Module aufweisen, die sich auf den Bauplatz des Gebäudes setzen lassen. Alle Gebäude innerhalb des Gebietssystems bilden eine organische Einheit und stehen miteinander im Austausch. Wir haben dafür gesorgt, dass alles nachvollziehbar bleibt und eure Städte auf glaubwürdige und logische Art wachsen können. Bei der ganzen Bandbreite an Bedingungen, die es untereinander auszubalancieren galt, war dies wahrscheinlich eine der interessantesten und unterhaltsamen Herausforderungen meiner bisherigen Karriere. Ich hoffe, Ihr werdet mit dem Endergebnis genauso viel Spaß haben wie ich mit der Lösung dieser Aufgabenstellung!