Ich habe mit Algorithmen experimentiert, um automatisch Straßenkarten für ein Spiel zu generieren, an dem ich arbeite.
Ich benutze die " Kingdom Rush " -Spiele als Referenz, da sie einige großartig aussehende Karten haben.
Ich bin neu in der Erstellung von prozeduralen Inhalten und habe mich gefragt, ob hier jemand Hinweise hat. Ich habe experimentiert, zufällige Straßentopologien zu generieren, z. B. einige Eingangs- / Quellknoten, mehrere innere Knoten (Gabelung und Zusammenführung) und einige Austrittssenkenknoten, und dann mithilfe von Graph-Layout-Algorithmen eine tatsächliche Straßenkarte basierend auf diesen Informationen erstellt.
Hier ist ein Beispiel mit dem Fruchterman-Reingold-Algorithmus für das Straßenlayout:
Das blaue Diagramm verwendet einige zufällig generierte Bézier-Kontrollpunkte, damit die Kanten weniger gerade aussehen.
Hier ist ein weiteres Beispiel, das mit demselben Algorithmus, aber unterschiedlichen Zufallszahlen erstellt wurde:
Das Problem ist, dass die meisten Ergebnisse ziemlich ähnlich aussehen und ich nicht sicher bin, welche Regeln ich hinzufügen kann, um die Steuerbarkeit und Vielfalt der prozedural generierten Karten zu verbessern.
Jeder Rat geschätzt.
quelle
Antworten:
Ihre Beispielstraßen haben Kurven auf den Segmenten zwischen Kreuzungen, wo Ihre generierten keine haben. Haben Sie versucht, mehr "redundante" Kontrollpunkte auf Ihren Straßen hinzuzufügen?
Wie wäre es, wenn die Anzahl der Schleifen ein Generierungsparameter wäre? Auch "Krümmung" (Anzahl redundanter Kontrollpunkte) Anzahl der Ausgänge wäre eine andere.
Ich denke, Sie könnten Straßen auch beenden, wenn sie auf Kreuzungen treffen, indem Sie ihnen doppelte Kontrollpunkte geben. Dadurch sollten die Kreuzungen besser aussehen.
quelle