Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
rund um die cityrules
#1
Ich arbeite gerade an einer verbesserten (hoffentlich Big Grin) cityrules, basierend auf den alten Regeln (cityrules.old des pak.german). Vorschläge würde ich dann hier posten. Zuerst hätt ich aber noch ein paar Fragen:
  1. Welchen Wahrscheinlichkeiten entsprechen die einzelnen Werte der Chance? Ein paar stehen ja in den 3x3cityrules. Gibt es auch einen Wert, der 0% entspricht (quasi eine Ausschlussregel, die das Bauen in dieser Situation immer verhindert)
  2. Was passiert, wenn auf eine Situation zwei Regeln zutreffen (vor allem wenn die eine sagt: "baue immer" und die andere "baue nie" Tongue )
  3. Beziehen sich U und u nur auf Hänge oder lassen sie sich auch in anderen Situationen einsetzten?
  4. Funktioniert der Straßenbau noch wie in cityrules.tab - Neue Version beschrieben? Bin mir nicht sicher, ob ich das verstanden habe. Wenn die letzten Positionen gespeichert und nur (?) von dort ausgehend gesucht wird und dann gebaut wird, sobald eine Regel passt, welche Rolle spielt dann noch die Chance?
  5. Müssen die Nummern (house_x) fortlaufend sein?
    [/list=1]
Join the herd - become a brony!
[Bild: banner_broniesde.png]
Zitieren
#2
Getestet wird eine Regel, falls random(Chance)==0. Passt die Regel, wird gebaut. Daraus folgt:

1) Nein (s.o.)
2) Kann nicht passieren. Straßenbau an einem Ort ok => baue Strasse, sonst checke ob Hausbau ok, sonst renoviere.
3) Nur für Straßenbaur, nür Hänge.
4) s.o.
5) Ja, nach der ersten fehlenden Zahl wird abgebrochen.
Zitieren
#3
Oh, oh, ich glaube das wird komplizierter als ich dachte. Ich sag erst mal, was ich eigentlich verbessern wollte, und mach dann Schritt für Schritt weiter.

Zunächst noch mal sehen, ob ich das richtig verstanden habe:
  1. Es wird zufällig eine Position innerhalb des Stadtgebiets ausgewählt.
  2. Nun wird zufällig eine Straßenbauregel ausgewählt. Passt sie, wird mit einer bestimmten Wahrscheinlichkeit (z.B. bei chance=-6 mit 50%) gebaut.
  3. Passt die Regel nicht, werden der Reihe nach die anderen Straßenbauregeln geprüft. Sobald eine passt, wird gebaut (wieder mit bestimmter Wahrscheinlichkeit)
  4. Passt keine der Straßenbauregeln, wird eine zufällig ausgewählte Hausbauregel gewählt und überprüft. Passt diese Regel, wird mit der entsprechenden Wahrscheinlichkeit gebaut
    [/list=1] Drei Fragen sind jetzt noch offen:
    1. Wenn eine Straßenbauregel passt, wegen der chance aber nicht gebaut wird, wird das Ganze dann abgebrochen oder wird mit den Hausbauregeln weitergemacht?
    2. Wird abgebrochen, wenn die erste gewählte Hausbauregel nicht passt, oder werden weitere getestet?
    3. Muss in der Bauregel an der Stelle, an der gebaut werden soll, immer n stehen, oder könnte es auch ein anderes Symbol sein?
      [/list=1] Grundsätzlich finde ich die alten citurules gut, deswegen verwende ich sie ja auch. Es gibt nur ein paar Situationen, die - meiner Meinung nach - noch verbesserungswürdig wären.
      • Neben Kurven wird nicht weitergebaut (Anhang scr9). Die Lücke bleibt leer, bis von der anderen Seite aus gebaut wird oder man von Hand weiterhilft.
      • Ich würde gerne Sackgassen vermeiden. Nachdem es keine Ausschlussregeln geben kann wird das allerdings schwierig. Ich hab besonders einen Fall im Auge: Wenn zwei Straßen in rechtem Winkel aufeinander treffen, dann sollen sie auch mit einander verbunden werden und nicht von einem Hausbau blockiert werden, sodass im schlimmsten Fall zwei Sackgassen entstehen (scr10).
      • Häufig entstehen Lücken, die nicht bebaut werden, insbesondere im Zusammenspiel mit Sehenswürdigkeiten, Fabriken und Gleisen (scr7). Um solche Situationen händeln zu können, wäre ein neues Symbol notwendig. Am einfachsten wäre N (must not be bare land). Besser wäre ein eigenes Symbol, das so ähnlich wie U/u funktioniert, nur eben nicht ausschließlich für Hänge. Also z.B. X für alles, wo eine Straße gebaut werden könnte oder schon vorhanden ist (flaches und unbebautes Land, gerade Hänge) und x für alles, wo keine Straße ist oder gebaut werden kann (z.B. bebautes Land, egal ob Stadthaus, Schiene, Kanal o.ä., Sehenswürdigkeit, Fabrik, "ungerader" Hang...). Würde es sich lohnen, das zu programmiere? Zwei neue Regeln könnten dann so aussehen: .x. xnx .h. oder ... xnx .h.
      • Weite Teile der Küste werden nicht bebaut. Das wäre mit dem oben genannten Symbol behebbar. Noch einfacher wäre es mit einem eigenen Symbol wie w (für Wasser).


Angehängte Dateien Bild(er)
           
Join the herd - become a brony!
[Bild: banner_broniesde.png]
Zitieren
#4
Zitat:Original von 3+4i
Ich würde gerne Sackgassen vermeiden. Nachdem es keine Ausschlussregeln geben kann wird das allerdings schwierig. Ich hab besonders einen Fall im Auge: Wenn zwei Straßen in rechtem Winkel aufeinander treffen, dann sollen sie auch mit einander verbunden werden und nicht von einem Hausbau blockiert werden, sodass im schlimmsten Fall zwei Sackgassen entstehen (scr10).

Es gibt keine Regeln zum Abriss von Häusern. D.h. so bald da ein Haus steht, ist Sackgasse. Im doppelten Sinne Wink
Blogger blog blog
Zitieren
#5
Rückwärts nach vorne:

Küste wird bebaut, wenn ein Haus für "Wasser" definiert ist. Fehlt das Klima => dort nicht erlaubt.

Lücken sind mit 4x4 oder 5x5 Regeln in den Griff zu bekommen ... n heißt keine Natur und N heißt Natur (also keine Straße)

Sackgassen sind mit 5x5 Regeln durchaus vermeidbar ...

Das Weiterbauen nach Kruven führt zu dem rasenten Standtwachstum entlang diagonaler Verbindungsstraßen => daher diese Regel entfernt.

Klarstellung zu den Regeln:

1: Zufällige Position, ok
2+3+4: Es werden alle Regeln durchprobiert, solange bis eine passt. Sind die Straßenbauregeln erfolgreich, wird eine Straße gebaut, sonst die Hausbauregeln durchprobiert und ein Haus gebaut, ansonsten renoviert.
Zitieren
#6
Zitat:Original von prissi
... n heißt keine Natur und N heißt Natur (also keine Straße)
Heißt das, N ist schon definiert? Muss ich mal ausprobieren.

Zitat:Original von Hajo
Es gibt keine Regeln zum Abriss von Häusern. D.h. so bald da ein Haus steht, ist Sackgasse.
Das ist mir schon klar. Ich hätte dazusagen müssen, dass das Haus erst gebaut worden ist, nachdem die Straßen schon so waren. Das ist es, was ich vermeiden möchte. Ganz ohne wird es eh nie gehn.

Zitat:Original von prissi
Das Weiterbauen nach Kruven führt zu dem rasenten Standtwachstum entlang diagonaler Verbindungsstraßen => daher diese Regel entfernt.
Ich meinte die Außenseite der Kurve, da, wo auf dem Screenshot nichts gebaut ist (und auch nicht wird).
Join the herd - become a brony!
[Bild: banner_broniesde.png]
Zitieren
#7
Zitat:Original von 3+4i
[Sackgassen]Ich hätte dazusagen müssen, dass das Haus erst gebaut worden ist, nachdem die Straßen schon so waren. Das ist es, was ich vermeiden möchte. Ganz ohne wird es eh nie gehn.

Das müsste mit einer Regel machbar sein die im Falle solcher "Strasse trifft Strasse mit 1 Feld Versatz" eine Strasse in der Ecke baut.
Blogger blog blog
Zitieren
#8
@Hajo
... .ns .sS müsste reichen. Weiß nicht, ob das auch zu ungewollten Effekten führt, ich werd's mal ausprobieren.

An das Problem mit dem Wachstum an diagonalen Straßen hab ich noch gar nicht gedacht. Das müsste diese Hausbauregel sein:
... .ns .ss
Die ist aber noch drinn (zumindest in alternative_cityrules.tab und cityrules.old). Wenn man das in ..... ....S ..nsS ..ss. ..... ändert plus das ganze gespiegelt ..... ..... ..ns. ..ss. .SS.., dann wird das entlangschlängeln an den Diagonalen verhindert, während an kurzen Diagonalen gebaut werden kann.

edit: Ich hab's mal noch in grafische Form gebracht. Sind die Bilder selbsterklärend oder soll ich noch ne Legende schreiben?


Angehängte Dateien Bild(er)
       
Join the herd - become a brony!
[Bild: banner_broniesde.png]
Zitieren
#9
Hab beim Testen gemerkt, dass ich das falsche Symbol verwendet habe (ist korrigiert). Das Ergebnis war recht interessant 8o.

Im Kurztest hat die Änderung übrigens bestens funktioniert.


Angehängte Dateien Thumbnail(s)
   
Join the herd - become a brony!
[Bild: banner_broniesde.png]
Zitieren
#10
Meine letzte Aussage muss ich noch mal korrigieren:
... .ns .sS hat ungewollte Effekte, ich hab es in .S. Sns .sS geändert, das funktioniert besser. Die Änderungen zum Vermeiden des Wachstums an Diagonalen funktionieren aber einwandfrei.

Was mich noch interessieren würde: Benützt eigentlich sonst noch jemand die alten cityrules?

Jetzt noch ein paar Fragen an den Autor der alten cityrules (Hajo?):
  1. Den Sinn von Hausregel 5 (.h. hns .sH) und 6 (.h. snh Hs.) verstehe ich nicht. Wofür waren die gedacht?
  2. Ich denke mal, die erste Straßenbauregel (.H. SnS .sS) ist für die Links-Kurven gedacht. Warum gibt es keine gespiegelte für die Rechts-Kurven? Oder anders gefragt, gibt es etwas, das dagegen spricht, diese Regel mit rein zu nehmen?
    [/list=1]
Join the herd - become a brony!
[Bild: banner_broniesde.png]
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste