Einflussmöglichkeiten der Pakset-Autoren auf die Automatische Generierung von Gebäuden - Druckversion +- Deutsches Simutransforum (https://simutrans-forum.de/mybb) +-- Forum: Simutrans (https://simutrans-forum.de/mybb/forumdisplay.php?fid=3) +--- Forum: Dokumentation (https://simutrans-forum.de/mybb/forumdisplay.php?fid=36) +--- Thema: Einflussmöglichkeiten der Pakset-Autoren auf die Automatische Generierung von Gebäuden (/showthread.php?tid=7734) Seiten:
1
2
|
Einflussmöglichkeiten der Pakset-Autoren auf die Automatische Generierung von Gebäuden - Rainer - 16-11-2013 Da wir nebenan viel von Wikis und Docu tippen, hier mal nen Text, der bei mir schon länger auf der Platte rumlungert. Das ist weder vollständig, noch 100% korrekt. Da sind auch etliche offene Fragen drin. Weder formal noch linguistisch ist er perfekt. Macht nix. Hoffentlich. Es ist ein Thema, dass mich bei pak64.ho-scale viel beschäftigt hat, und das immer noch tut. Es ist nicht trivial. Ich verzichte ausdrücklich auf alle Rechte nach dem Urheberrechtsgesetz. Nehmt den Text, verbessert ihn, ergänzt ihn, löst die offenen Fragen auf, werft ihn wohin ihr wollt, aber bitte unter einer freien Lizenz. ------------------- Einflussmoeglichkeiten der Pakset-Autoren auf die Automatische Generierung von Gebaeuden - ein Versuch einer Naeherung 1. Man stelle sich einen multidimensionalen Vektorraum vor. Die Dimensionen seien, auf Gebaeude bezogen: - Art - Zeit, hier: Bauperiode - Haeufigkeit - Zahl der Alternativen - "level" Die Wahrscheinlichkeit, welches Gebaeude gebaut wird, sei ein Punkt in diesem Vektorraum. Betrachten wir die Dimensionen als Parameter, so ergeben fuer Pakset-Autoren verschiedene Moeglichkeiten, einzugreifen. Die Wahrscheinlichkeit, wann und wo ein Gebaeude gebaut wird, wird durch andere Parameter bestimmt, die hier nur am Rande gestreift werden sollen. - Stadtgroesse - Tempo des Wachstums - Mass der Erschliessung der Stadt, hier: Anschluss an und Abdeckung mit Verkehrsinfrastruktur - Besiedlungsdichte - Aufbau des Stadtstrassennetzes Diese Parameter bedingen sich teilweise gegenseitig. Sie koennen fast nie vom Autor beeinflusst bzw. genutzt werden (Ausnahme "build_time" fuer CUR, z.B.) 2. Moeglichkeiten fuer Autoren - die .dat-Datei diverse Parameter mit diversen Wertebereichen - der Dateiname des paks building.[RES|IND|COM|CUR]xx-yy.pak bzw fuer Rathaeuser: building.xx_[yy_][City|city|CITY].pak Unklar: Alle Einzelheiten des Dateinamens ab "building." scheinen optional zu sein. Wie verhaelt sich das System bei anderen Namen? Unklar: Es scheint keine offizielle Dokumentation der Stellen "xx" und "yy" zu geben. Hierzu werden im folgenden nur Vermutungen geaeussert, die auf eigenen Erfahrungen und etwas ungenauen Formulierungen aus Foren-Diskussionen beruhen. - Setzen von default-Parametern in der simuconf.tab Da dies das Verhalten das Systems nur bedingt beeinflusst, meistens nur abbremst, wird hier nicht weiter darauf eingegangen. Wichtiger erscheinen die ersten beiden Moeglichkeiten. 3 im Einzelnen - Die Art des Gebaudes wird im Dateinamen des .pak angegeben, definiert durch den Parameter "type" in der .dat-Datei: Wertebereich: res = Wohngebaeude ind = Indutriegebaude (_nicht_ Fabriken!) com = Gewerbegebaeude cur = Sehenswuerdigkeit tow = Rathaus mon = Denkmal hq = Firmensitz - Die Bauperiode wird durch selbsterklaende Parameter in der .dat-Datei definiert: "intro_year" "intro_month" "retire_year" "retire_month". Alle Angaben sind optional: - Wird "intro_*" nicht gesetzt, ist das Gebaeude immer von Anfang an verfuegbar. - Wird "*_month" nicht gesetzt, beginnt/endet die Bauperiode zum 1.1. des angegebenen Jahres. - Wird "retire_*" nicht gesetzt, endet die Bauperiode nie. Wertebereich: Sinnvolle Angaben in Jahren [und Monaten] - Die Haeufigkeit des Erscheinens wird ueber die Wahrscheinlichkeit des Baus gesteuert, definiert durch den Parameter "chance" im .dat. Wertebereich: "0" bis "100" Die Werte sind nicht absolut, sondern werden im Vergleich zu den anderen Werten alternativer Objekte gleicher Art und gleichen Levels bewertet. Hieraus berechnet die AI dann Zufallszahlen und baut mit passender Verteilung. - Alternativen sind Gebaeude gleichen Levels und gleicher Art definiert durch die Stellen "yy" im Dateinamen des .pak. Hieraus sucht sich die AI zufallsgesteuert passende Gebauede (natuerlich nur, falls sie in die Bauperiode passen). Wertebereich "01" bis vermutlich "99". - "level" Der Parameter setzt die Passagier- und Postgenerierung, sowie den Wert des Gebaeudes. Je aelter (in Spielzeit) die Besiedlung ist, desto hoeher die Level der Gebaeude, die die AI baut. Gebaeude hoeheren Levels sollten also groessere oder anderweitig leistungsfaehigere Gebaeude sein. Dies ist unabhaengig von der Zeitleiste, es geht also nicht um "modern" versus "unmodern". Unklar: "level" kann vermutlich sowohl durch die Stellen "xx" im Dateinamen des .pak als auch durch den Parameter "level" in der .dat-Datei definiert werden. Unklar: Was hat Vorrang, wenn beide Methoden benutzt werden? Unklar: Laut Forendiskusion berechnet sich der Wert eines Gebaeudes: [level] mal 1000. Ob es fuer Passagiere und Post einen Faktor mit welchem Wert gibt, ist hier noch nicht bekannt. Wertebereich: Unklar, vermutlich "00" bis mindestens "64" im Dateinamen und "1" bis mindestens "64" beim Parameter "level" im .dat. - Stadtgroesse und Wachstum haben zwar Einfluss auf die Generierung, koennen aber nur a) direkt als Oeffentliche Hand mit den passenden Werkzeugen (mehr/weniger Einwohner) b) indirekt ueber das Spiel per sauberer Versorgung mit Verkehrs-Infrastruktur beeinflusst werden. Bei der Generierung werden dann hoehere Level in aelteren Stadtteilen (normalerweise das Zentrum um das Rathaus) schneller oder langsamer erreicht, sowie das Tempo der Ausdehnung der Stadt beeinflusst. Autoren koennen nicht als "Stadtplaner" eingreifen. Spieler koennen das Wachstum der Stadt abstellen und selbst bauen. 4 Konsequenzen/Verschiedenes - Einen "Denkmalschutz" gibt es nur fuer Denkmaeler, Sehenswuerdigkeiten und Hauptquartiere. RES, COM, und IND koennen per default jederzeit von der AI ueberbaut werden. Nur das Abschalten des Stadtwachstums im Dialogfenster der Stadt verhindet das - dann wird aber nichts mehr gebaut. - Ein automatisches Upgrade mit Gebauden gleichen Levels und gleicher Art entlang der Zeitleiste gibt es nur bei Rathaeusern. Ein vorgegebener Austausch der Grafiken im Sinne von "Modernisierungen" ist bei allen anderen Gebaeuden nicht moeglich. Verlangen modernere Rathaeuser mehr Kacheln, kann es sein, dass das neue Rathaus "springt", auch an eine Stelle ausserhalb der besiedelten Flaeche. - Die AI kann zwar RES, COM und IND mit mehr als einer Kachel auswaehlen, wird jedoch nur eine Kachel belegen und auch nur diesen Teil der Grafik darstellen. Dies fuehrt zu unbefriedigenden Ergebnissen. Wird jedoch der Parameter "Chance" auf "0" gesetzt, kann der Spieler selbst groessere Gebaeude bauen. Unklar: Es waere schoen zu wissen, ob dies in Zukunft auch weiter funkionieren wird. - Fuer den Bau von Gebaeuden auf Hangflaechen wird die AI die Kacheln immer anheben. Gebaeude direkt an Hangflaechen (also _ohne_ die Kachel anzuheben sind nur moeglich, wenn der Parameter "chance" auf "0" gesetzt wird, und der Spieler die Hangflaeche selbst absenkt und dann baut. Unklar: Es waere schoen zu wissen, ob dies in Zukunft auch weiter funkionieren wird. - Die Beeinflussung der Ausrichtung im Sinne von "Strassenseite des Baus immer zur Strasse hin - Eckbauten immer an Strassenecken" ist derzeit nicht automatisiert moeglich. Es gab einen Thread im Forum dazu, hierzu ist aber von Seiten der Entwickler vermutlich nichts geplant. Lediglich der Spieler kann beim Selbstbauen die Ausrichtung im Bau-Dialog auswaehlen. - Dwachs - 16-11-2013 Dateiname (oder Objektname) hat keinen Einfluss auf Generierung. Ist nur relevant, wenn ein Savegame geladen wird, damit das Programm raten kann, wie fehlende Gebaeude ersetzt werden. Level: wird nur durch den Parameter 'level' bestimmt, Dateiname hat keinen Einfluss. Wertebereich: 16bit. Die meisten Paksets kommen kaum in den dreistelligen Bereich. Denkmalschutz: Man kann Haeuser kaufen, die dann nicht ueberbaut werden. Automatisches Upgrade: gibts nicht. Gebaeude werden nur durch andere mit hoeherem Level ersetzt. Rathaeuser werden nur umgebaut, wenn die Bevoelkerung waechst (Parameter build_time = benoetigte Bevoelkerung). Gebaeuder mit Flaeche groesser als 1x1: werden nicht korrekt gebaut. Vielleicht kommt das irgendwann. Abgeschafft werden solche Typen sicher nicht. Bauen auf Hangflaechen: Keine Aenderungen geplant. Ausrichtung zur Strasse hin: sollte moeglich sein. Zitat aus simcity.cc: Code: /******************************************************* Hoffe, das hilft weiter. Zitat:1. Man stelle sich einen multidimensionalen Vektorraum vor.Da musste ich schmunzeln, bin beruflich etwas vorbelastet, was 'Vektorraum' angeht. Darfs auch ein Hilbertraum sein? - The Transporter - 16-11-2013 Die meisten brauchen für den Vektorraum schon ein eigenes Wiki. Wenn der Text als Anleitung gedacht ist, sollte er doch allgemein verständlich geschrieben sein. Und "Bilder sagen mehr als 1000 Worte" nicht vergessen. - prissi - 17-11-2013 Noch was, im aktuellen Nightly ist noch ein Parameter hinzugekommen,d er Blockbebauung bevorzugen kann. Ist "cluster_factor" in der simuconf.tab auf einen Wert groeßer eins gesetzt und gibt es Gebaude, die in ihrem Dat-File den Wert "clusters" gesetzte haben (kann eine Liste von 1...31 sein, z.B. 1,4,17 ) dann werden Gebäude mit gleicher Clusternummer bevorzug (chance*cluster_factor) nebeneinander gebaut. - The Transporter - 17-11-2013 Dankeschön! Da läßt sich bestimmt einiges daraus basteln ^^ - Wurzelgnom - 17-11-2013 stellt sich mir wieder die Frage, warum man nicht gleich ne Wikiseite dafür verwendet ( kann einfach ne neue Seite sein, die erst eingebunden wird wenn fertig ) wie läufts jetz mit Forum - einer schreibts - die nächsten schreiben Korrekturen - die Korrekturen muss der ursprüngliche Schreiber bei seinem Post einbauen ( zeitaufwendig und fehlerträchtig ) - dann muss noch einer das ganze ins Wiki übertragen ( zur Errinerung, das mit den Umwegen ( pay_for_totaldistance oder wie das war ) steht bis heute nicht im Wiki, weils keiner übertragen hat ) wie wärs direkt im Wiki - einer schreibts ggf auf ne neue Seite - der nächste korrigiert und berichtigt - dann kommt einer und formatierts, weils ihm besser liegt zu formatieren statt zu schreiben - der nächste hat passende Bilder erstellt und fügt die ein - dann wirds eingebunden nach Angabe wo ( was teilweise schwierig ist, da es immer wieder Themenüberschneidungen gibt, was man aber über Strukturen/Kategorien/Freetags durchaus handhaben kann ) Ergebnis,ne fertige Seite parallel hier nen Thread zu machen mit ner Verlinkung und zur weiteren Diskussion ist ja trotzdem möglich Ganz ehrlich, es macht absolut keinen Unterschied ob man im Forumseditor oder im Wikieditor schreibt. Auf jeden Fall wenns hauptsächlich nur um Text und dessen Formatierung geht. Aber die Nacharbeit und Übertragung vom Forum ins Wiki macht zusätzliche Arbeit. Zum einen kann man Aufgrund der Unterschiedlichen Syntax nicht einfach den Quelltext rüberkopieren oder muss dann sehr Umständlich die ganze Formatierung zeitaufwendig umändern. Zum anderen muss man alles Nachtformatieren, wenn mans als reinen Text rüber kopiert. Macht beides erheblich viel mehr Aufwand als gleich im Wiki zu schreiben. - Rainer - 17-11-2013 Zitate Dwachs: "Dateiname (oder Objektname) hat keinen Einfluss auf Generierung. Ist nur relevant, wenn ein Savegame geladen wird, damit das Programm raten kann, wie fehlende Gebaeude ersetzt werden." Ah! Das ist mal ne sinnvolle Information! Danke! Nachfrage: Stört sich das Programm weiteren Zeichen nach dem XX_YY? "Level: wird nur durch den Parameter 'level' bestimmt, Dateiname hat keinen Einfluss." Gut. Prima. Danke. "Wertebereich: 16bit. Die meisten Paksets kommen kaum in den dreistelligen Bereich." Kein Wunder. Welche Algorhythmus (oder Faktor) schlägt hier eigentlich in welcher Weise für Passagier- und Postgenerierung zu? Solange ich das nicht weiss, werde ich mich kaum trauen, höhere Levels zu benutzen. : - ) "Denkmalschutz: Man kann Haeuser kaufen, die dann nicht ueberbaut werden." Danke! Darauf wäre ich von alleine nie gekommen. Dann kann man wenigstens als Spieler schöne Altstädte und sowas bauen. Ein schönes Beispiel für die Auswirkungen fehlender (oder unbekannter) Dokumentation. "Gebaeuder mit Flaeche groesser als 1x1: werden nicht korrekt gebaut. Vielleicht kommt das irgendwann." Gut. Bis dahin kann man aber wenigstens als Spieler Gebäude setzen, die mit "chance = 0" eingebaut werden. "Abgeschafft werden solche Typen sicher nicht." Gut zu wissen. "Ausrichtung zur Strasse hin: sollte moeglich sein. Zitat aus simcity.cc: (...)" Klingt gut, aber darüber werde ich wohl noch ein Weile meditieren, bis ich das verstehe. : - ) Meinst Du, dass das Programm diese Ausrichtungen selbst beachtet, oder tippst Du vom Setzen der Gebäude durch Spieler? Prissi, das mit den Clustern klingt genial! Wird getestet. Zitat The Transporter "Wenn der Text als Anleitung gedacht ist, sollte er doch allgemein verständlich geschrieben sein." Jo. Stimmt. Ich habe hier sozusagen meine Notizen abgeworfen und deutlich auf deren Unvollkommenheit hingewiesen. Macht was draus! : - ) Edit, damit es Frank vielleicht endlich mal versteht: Frank, ich werde mich nicht in Deinem Wiki anmelden. Nimm es endlich hin. Hör endlich auf, jeden 2. Thread auf Dein Lieblingsthema umzubiegen und rumzumeckern. Je mehr Du meckerst, desto besser pflegst Du meine Abneigung (offensichtlich nicht nur meine). Der Text ist frei, nehme ihn und mach, was Du willst, aber lass mich in Ruhe. Bitte. Danke. - Wurzelgnom - 17-11-2013 Rainer,'index.php?page=Thread&postID=99361#post99361' schrieb:... schaue und staune soferns noch stimmt wobei die Seite eigentlich genau das selbe aussagt, nur das die ganzen neuen Sachen der letzten 3 Jahre fehlen keine Ahnung warum das Wiki von diversen Leuten schlicht ignoriert wird, obwohl es schon viele Informationen gerade im Entwicklerteil zu bieten hat liegt wahrscheinlich auch an der Abneigung von Leuten gegen Sachen die ihren Vorstellungen in irgend einer zu wieder sind man sollte auch mal über seinen eigenen Schatten springen statt es auf andere abzuwälzen nur weil man selber irgendwas gegen irgendwas hat mir hat auch vieles nicht gepasst und ich musste es hinnehmen oder in Konsequenz aufhören damit - prissi - 17-11-2013 Die automatisch ersetzung von Gebäuden nimmt den Anfang (ind, com, res, cur) und die Zahl am ende und ignoriert die Mitte. Level über Hundert sind nicht so sinnvoll (es sei denn man hat 900 Gebäude), denn es ist besser mehrere Gebäude im gleichen Level zu haben (gibt einfach nettere Städte). Das hängt aber sehr von der letztlichen gestaltung der Grafiken ab und kann eigentlich nur durch Testen optimiert werden. Soweit ich weiß ist nicht einaml pak128 in diese Level vorgedrungen. - Wurzelgnom - 17-11-2013 pak128 überspringt glaube auch Level, zumindest damals als ich mit den Dat-Dateien zu tun hatte ich halte eine Besetzung mit mind. 6 Gebäuden pro Level für nötig, um abwechslungsreiche Stadtansichten zu bekommen pak64.german hat bei den meisten Leveln 3 Gebäude kann man sich hier ansehen |