- In Städtebauspielen ist die realistische Umsetzung von Straßensystemen ein Kernelement; sie ist mehr als nur ein visuelles Detail und bildet die Grundlage für die strukturelle Qualität des Ganzen
- Bestehende Spiele stellen Straßen meist mit Bezier-Splines dar, doch dabei gibt es Grenzen bei der Erhaltung von Krümmung und Parallelität realer Straßen
- Reale Straßen müssen den Abstand zwischen den Fahrzeugachsen und Kurvenbeschränkungen berücksichtigen; beim Bezier-Ansatz wird die Form beim Offset verzerrt, was zu unrealistischen Kurven führt
- Um das zu lösen, lassen sich technische Kurven wie Kreisbögen (Circle Arc) und Klothoiden (Clothoid) einsetzen, wodurch sanfte Krümmungsänderungen und die Beibehaltung paralleler Offsets möglich werden
- Der Autor hat zur Überwindung dieser Grenzen ein eigenes Straßensystem aufgebaut und will den technischen Implementierungsprozess künftig offenlegen
Die Faszination von Straßen und Mustern
- Auch in Straßen entdeckt der Autor jene befriedigende Wirkung von ungeordnet wirkenden Mustern innerhalb einer Ordnung, wie man sie in der Natur findet
- Verglichen wird das mit Phänomenen wie Ameisenbauten, Bienenwaben oder Blattadern, bei denen sich aus einfachen Regeln komplexe Strukturen bilden
- Auch Straßennetze werden als eines der faszinierendsten vom Menschen geschaffenen Muster beschrieben
- Mit der Vorstellung von den Spuren eines Straßennetzes, die selbst nach dem Verschwinden einer Stadt bleiben würden, wird ihre strukturelle Schönheit betont
Städtebauspiele und die Evolution der Straßen
- Von SimCity 2000 bis Cities: Skylines 2 haben sich Straßensysteme stetig weiterentwickelt
- SimCity 4 brachte Höhenunterschiede und diagonale Straßen, SimCity 2013 gebogene Straßen, Cities: Skylines unterstützt freie Platzierung und den Aufbau von Kreuzungen
- Dennoch bestehen weiterhin Probleme wie unnatürliche Kurven, abrupte Wendekreise und unrealistische Autobahnauffahrten
- Durch Mods wurden realistische Fahrspuren, Markierungen und Kurven möglich, doch die grundlegenden Beschränkungen der Engine bleiben bestehen
Die Grenzen von Bezier-Splines
- Bezier-Kurven sind ein leistungsfähiges mathematisches Werkzeug, um zwei Punkte weich miteinander zu verbinden, und werden in den meisten Game-Engines verwendet
- Allerdings bleiben bei diesen Kurven Form und Krümmung bei Offsets nicht erhalten – mit anderen Worten: „Der Offset einer Bezier-Kurve ist keine Bezier-Kurve“
- Dadurch entstehen Abweichungen zwischen Innen- und Außenkurve, Selbstüberschneidungen und Pinching-Effekte
- In der Folge ist es schwierig, wie bei realen Straßen parallele Kurven abzubilden, die den Fahrzeugtrajektorien entsprechen
Einsatz von Kreisbögen (Circle Arc) und Klothoiden (Clothoid)
- Kreisbögen bieten auch nach dem Offset perfekte Parallelität, da ihre Form erhalten bleibt
- Die Berechnung von Schnittpunkten zweier Kreisbögen ist deutlich einfacher als bei Bezier-Kurven und mit einer Rechenkomplexität von O(1) effizient
- Durch das Verbinden von Kreisbögen mit unterschiedlichen Radien lassen sich ingenieurtechnisch plausible Straßenformen erzeugen
- Allerdings haben Kreisbögen eine konstante Krümmung, wodurch beim Übergang von einer Geraden in eine Kurve sprunghafte Änderungen der Querbeschleunigung auftreten
- Um das auszugleichen, werden Klothoiden (Clothoid) verwendet
- Ihre Krümmung nimmt schrittweise zu, was natürlicheres Lenken und mehr Fahrkomfort ermöglicht
- Sie sind mathematisch komplexer, aber für die Planung von Straßen mit hohen Geschwindigkeiten unverzichtbar
- In langsamen Bereichen wie städtischen Kreuzungen lässt sich jedoch auch mit kreisbogenbasierter Gestaltung ausreichend Realismus erreichen
Warum ein eigenes Straßensystem entwickelt wurde
- Die meisten Spieler interessieren sich kaum für die Genauigkeit der Krümmung an Kreuzungen, doch den Entwickler treibt Neugier und die technische Herausforderung an
- Die Umsetzung in bestehenden kommerziellen Spielen ist zwar auf hohem Niveau, doch Materialien oder Assets, auf die Indie-Entwickler zugreifen können, sind rar
- Statt einfacher gitterförmiger Straßen wurde die Eigenentwicklung vorangetrieben, um ein präziseres und besser teilbares System zu schaffen
- Im nächsten Beitrag soll der technische Implementierungsprozess im Detail vorgestellt werden; Updates lassen sich per Abonnement erhalten
1 Kommentare
Hacker-News-Kommentare
Nachdem ich einen Beitrag gesehen habe, der sagte, dass Straßen der Kern von Städtebauspielen seien, glaube ich zu verstehen, warum Stadtplaner Albträume haben
Die Grundlage einer Stadt ist nicht die für Autos gedachte Straße (road), sondern die Straße (street), die von Fußgängern, Fahrrädern und dem öffentlichen Nahverkehr gemeinsam genutzt wird
Als verwandtes Konzept ist der Artikel zu Stroad lesenswert
Eine road ist auf Transport (transportation) ausgerichtet, eine street auf öffentliche Interaktion (public interaction)
Trotzdem finde ich, dass das Zitat aus dem Original übermäßig kritisiert wird. Die moderne Gesellschaft hat einen enormen Transportbedarf, daher bildet das Straßennetz innerhalb und außerhalb von Städten das Skelett der Stadt
Vor den 1900er Jahren konnte man Städte nur in der Nähe von Wasserwegen bauen, heute ist das dank Straßen auch im Landesinneren möglich
Wenn man eine realistische Stadt bauen will, halte ich diesen Ansatz statt falscher Straßen für richtig
Manchmal stelle ich mir vor, wie eine Zivilisation Städte gestalten würde, die ausschließlich Fahrräder und das Gehen nutzt
Es gibt ein Spiel, das dem Autor gefallen dürfte: das Sandbox-Spiel Junxions, das sich auf den Bau von Straßenkreuzungen konzentriert
Das zugehörige Subreddit ist hier. Dieses Spiel dürfte das Verlangen nach Straßendesign gut stillen
Ich mag Junxions auch, aber mein Ansatz ist anders. Dort wird eine knotenbasierte Bézier-Struktur verwendet, während ich Kreuzungen automatisch durch Kollisionen zwischen Straßensegmenten erzeuge
Im nächsten Blogbeitrag werde ich die Unterschiede zwischen den beiden Ansätzen ausführlich behandeln
Es heißt, nur 1 % der Menschen achten auf den Radius an Kreuzungsecken, und ich gehöre genau zu diesen 1 %
Straßen mit Bézier-Kurven zu definieren, ist nicht einfach
Besonders bei engen Kurven entstehen visuell unschöne Ergebnisse
Ich hatte letztes Jahr beim Projekt Azoth dasselbe Problem und habe eine vereinfachte Lösung gefunden
Siehe: Azoth-Repository, Bézier-Beispiel
Elemente, die in Spielen selbstverständlich wirken, sind in Wirklichkeit das Ergebnis enormer Arbeit und Planung
Zum Beispiel achten Spieler nicht im Detail auf Straßen, aber wenn sie seltsam aussehen, fällt das sofort unangenehm auf
Das habe ich kürzlich beim Spielen von Kingdom Come 2 gespürt — es wirkt natürlich wie in der Realität, aber all diese Details sind aus Schweiß und Tränen der Entwickler entstanden
Deshalb kann ich nachvollziehen, warum die Spieleindustrie unter Crunch leidet
Verwandte Artikel: The Door Problem, IGN-Artikel
Solche Beiträge sind der Grund, warum ich Hacker News weiter lese. Ich würde dem Autor gern sagen, dass er weiter schreiben soll
Es scheint viele Menschen mit ähnlichen Interessen zu geben, daher will ich künftig aktiver sein
Dieser Beitrag ist wirklich genau mein Ding. Ich habe dieselbe Besessenheit von Straßen
Städte bestehen wie Blutgefäße aus Straßen, und die Dorfwege in Europa und Asien erzählen davon, dass sie auf Fußpfaden entstanden sind
Dagegen verlaufen die Landstraßen meiner Heimat schnurgerade und knicken plötzlich ab, wenn ein Bauer sein Land nicht verkaufen will
Nur aus der Kolonialzeit oder in einigen Planstädten gibt es Raster, die meisten Orte ändern ihre Richtung je nach Flusslauf oder Gelände
Solche Schnittpunkte zwischen Rastern sind die schönsten und architektonisch interessantesten Teile einer Stadt
Ein Spiel, das Veränderungen des Stadtwachstums simuliert, wäre wirklich großartig
Echte Städte haben sich wie ein Ameisenbau mit Komplexität innerhalb einer natürlichen Ordnung entwickelt
Über dieses Thema würde ich später gern einmal gesondert schreiben
Im nächsten Spiel Canalpunk werde ich weiterhin Bézier-Splines verwenden
Ein Katastrophensystem, das entsteht, wenn sich Pfade selbst schneiden, klingt interessant
Ich bin gerade besessen davon, in einem Eisenbahn-Track-Editor Klothoiden (curve transition) zu implementieren
In leerem Raum ist das einfach, aber beim Verbinden von Gleisen wird es schwierig
Ich habe dazu früher einmal erklärendes Material erstellt: Euler Spiral Explanation
Ich würde gern experimentieren, ob man diesen Schnittpunkt nutzen kann, um einen neuen Spline zu interpolieren
Referenzbild: visuelles Beispiel
Man könnte es einfach wie die Römer machen und gerade Straßen bauen :-)
Natürlich haben sich die Römer nicht um Privatgrundstücke geschert. In Lincolnshire in Großbritannien, wo ich lebe, werden römische Straßen immer noch genutzt
Nur bei der Verlängerung der Startbahn von RAF Scampton wurde die Straße ausnahmsweise umgelegt
Mehr dazu im Artikel Roman aqueduct
Noch heute stimmt die Mittellinie der Straße perfekt mit der Richtung des Kirchturms überein. Dieses kirchenzentrierte Landverständnis ähnelt dem der Römer