Deutsches Simutransforum

Normale Version: Häuserblöcke / Blockbebauung / Trabantenstädte / Satellitenstadt / Cluster
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5 6
Das Kuscheln der Industrie rund ums Rathaus lässt sich anscheinend nicht verhindern.
Beziehungsweise nur mit krassen Parameter, die dann sonst alles durcheinander schmeißen.
Ich habe jetzt die hohen Industrie Level um unscheinbare Hochhäuser ergänzt. Diese hab ich von com verschoben. Jetzt fällt es nicht mehr auf. Das sind einfach die Firmenzentralen der Industrie.

Am Stadtrand hätte ich gerne mehr Industrie, aber das wäre wohl nur mit einer Programmänderung einfach möglich.
derzeit in simcity.cc Zeile 3066 -> build_city_building

Zitat:    int employment_wanted  = get_unemployed() / 4;
    int housing_wanted = get_homeless();
das bevorzugt beim Neubau die Wohnung

während beim Renovieren gleichberechtigt -> Zeile 3199
Zitat:    const int employment_wanted  = get_unemployed() / 4;
    const int housing_wanted = get_homeless() / 4;
Der Narva Turm Berlin nervt. Der ist Level 20 und Baujahr 1963.
Der nächste mit Level 22 kommt erst 2005.
Dann kommt Level 24 im Jahr 2006.
Damit ist die Kette gerissen und bis zum Jahr 2005 vermehrt sich der Narva Turm wie die Karnickel.
Ich steh im Narva Wald und der wird leider auch nicht gegen Kleinkram getauscht.

Ich könnte noch 1-2 4Kachel com Häuser mit Level 22-24 und Baujahr 1963+ brauchen.
Hab ich doch gerade bei Pumuckl_Originale ein paar Parkplätze gefunden die wir nicht im Set haben.
Man könnte für mehrkachel Gebäude höherer Stufe auch kombinierte Gebäude nehmen. Damit meine ich zum beispiel Einkaufscentren mit angeschlossenem Wohn oder Bürobereich. In der realen Welt gibt es das öfter, zum beispiel in der Stadt Buchholz in der Nordheide, wo es 2 einkaufscentren gibt die sich dafür eignen würden.

Zum einen das Citycenter, ( ka wann genau gebaut aber steht auf jeden fall schon seid den 1990gern) das ist ein einkaufscenter an dem eine reihe wohnhäuser direkt dran stehen.

Das zweite ist die Passage oder Citypassage, dort ist im unteren Bereich platz für Geschäfte und darüber ein Bürobereich.

Ein weiteres beispiel ist in Hamburg die Mundsburg türme (anfang der 1970ger,
auch Einkaufscenter im allgemeinen würden sich eignen wie das Phönix center in Harburg oder in Hamburg das Wandsbeker carre.

Das würde das Stadtbild etwas auflockern und man hätte nicht nur Spargel in der Landschaft sondern auch "Flächenbauten"


Was das aufstufen von 4 kachelgebäude betrifft hier einfach mal ein gedankengang, ich bin kein Programmierer aber vllt hilft es ja das ganze mal aus laien sicht zu sehen.

nehmen wir mal an ein solches Gebäude entsteht, dann bekommt es ja Programmiertechnisch eine eigende definition (damit es als ganzes weiter entwickelt wird und nicht in 1 kachel Gebäude gesplitet wird damit eins davon die stufe aufsteigen kann.

Damit ein Gebäude wachsen kann müssen bestimmte Parameter erfüllt werden (nachfolgend als wachstumsfaktor)

nun könnte man doch folgendes machen: wenn es ein 4 kachelgebäude wird dann erhöhe wachstumsfaktor (für 4 kachelgebäude)um x

Ich erhoffe mir daraus das ein 4 kachelgebäude dann einfach eine erhöhte anforderung stellt für den wachstum und das dadurch langsamer geschieht.
@Alrik
Zu dem schnellen Wachstum von 4 Kachel Gebäude:
Die Vermutung von mir, dass 4k schneller aufsteigen, also ein Programmfehler, war ein Irrtum von mir.
Das Programm führt eine Liste aller Gebäude einer Stadt und wählt daraus per Zufall eine Gebäude zum renovieren aus. Ohne Ansehen der Größe.

Allerdings, siehe Narva Turm oben, steigen 4k bei uns sehr wohl schneller auf. Weil:
1. ein 4k Gebäude nur durch ein anderes 4k ersetzt werden kann. Das schränkt die Zahl möglicher Gebäude stark ein.
2. unsere 4k meist Hochhäuser mit einem späten Erscheinungsjahr sind. So um Jahr 2000. Wir haben zwar jeden Level ein 4K Gebäude, aber so entstehenden Lücken im Level, da das Gebäude erst später erscheint. Das Programm kann bis zu 6 Level überspringen, um über Lücken hinweg zu kommen. Aber wo ein 1k Haus um einen Level aufsteigt, steigt so im schlimmsten Fall ein 4k um 6 Level auf.

Das Problem bekommt man mit mehr 4k Gebäude und einer gezielten Level Verteilung in den Griff.
Zitat:kombinierte Gebäude
Ich hab schon an eine gezielte 4k Gebäude Produktion auf die einfach Weise gedacht, um dem Problem oben schnell Abhilfe zu schaffen.
Man könnte normale 1 Kachel Gebäude gezielt per .dat zu kombinierten 4k Gebäuden zusammenfassen.

Das ist natürlich die zweitbeste Lösung, nach einer neuen 4K Grafik von Pumuckl. Blush

Mit was ich zur Zeit kämpfe:
Wenn man ein spätes Jahr als Startjahr beim Starten des Spiels angibt, dann werden die Städte gealtert.

Das funktioniert nicht so wie erhofft.

Ich habe eine Testhilfe eingebaut. Startjahr ist 1990. PAK128.german beginnt 1800.
Es soll eine Stadt mit 38.086 Einwohnern gebaut werden.

Tabelle
Jahr -> Einwohner
1800 -> 1       +64 = 65
1895 -> 65     +128 = 193
1942 -> 193   +256 = 449
1966 -> 449   +512 = 941
1978 -> 961  +1024 = 1985
1984 -> 1985 +2048 = 4033
1986 -> 4033 +4096 = 8129
1988 -> 8129 +8192 = 16312
1989 -> 16321 + 16384 = 32705
1989 -> 32705 +6356(das ist der Rest bis zum Ziel) = 39061
1990 -> 39061

Das heiß in den letzten 10 Jahren steigt die Einwohnerzahl von 1985 Leuten auf 39061 das sind 2000%

Das Wachstum von Städten ist exponentiell in der Realität. Aber so wie ich das sehe, ist das in Simutrans zur 4 Potenz exponentiell.
Der Stadtbaucode ist eine endlose Baustelle. Es fiel allerdings bei den meisten Sets nicht so auf. Ich bin für bessere Vorschläge (besonders in Form von Programmcode) dankbar.
Ich habe inzwischen verschiedene Formeln ausprobiert. Dodgy
Mit log2() und mit quadratischem Wachstum.
Das funktioniert nicht so, wie ich mir das vorstelle. Sad

Die Grundidee ist sicher richtig, mit dem die Städte durch die Jahre wachsen zu lassen. Angel
Im Moment sind mir die Ideen ausgegangen. Confused

(24-10-2019, Thursday-11:13:16 )prissi schrieb: [ -> ]Es fiel allerdings bei den meisten Sets nicht so auf.

Naja, erst ab einer gewissen Menge an vorhandenen Häuschen, kann man auf die doofe Idee kommen, eine Stadtentwicklung abbilden zu wollen.
----------------------------------------------------------------------------------------------
Die eigentliche Idee ist ja auch: Wenn man ein Langzeit Spiel spielt, sollen sich die Städte, ebenso wie das Transportwesen, mit den Jahren ändern.
Also primär gar nicht so das Starten zu einem späten Zeitpunkt. Nur das testen solcher Stadtentwicklung über die Spieljahre hinweg im Spiel, ist noch erheblich aufwendiger.
Mal was zu der tabelle und dem Problem,

nach betrachtung der tabelle und ein kleiner Rechnerei meinerseits komm ich zu folgendes:

Insgesamt sind 190 Jahre abgebildet, die erste Verdoppelung der Einwohner findet jedoch erst nach 95 jahren statt.
das Konzept führt sich fort bis zum Jahr 1990, grob jeweils verdoppelung der einwohner bei halbierung der Zeit.

Wäre es eine einfacher exponentieller wachstum  zur 2 Potenz im zeitraum von 190 jahren bei verdoppelung der einwohner alle 10 jahre wäre bereits zwischen 1950 und 1960 dein angestrebtes ziel von 39061 Einwohnern erreicht worden, alle 12 jahre hingegen erst zwischen 1980 und 1990 (siehe Tabelle)

Durch die halbierung der zeit mit hohem Startwert bei gleichzeitig niedriger Einwohnerzahl ergibt dein ergebnis. 

was man testen könnte wäre ob er das selbe bei nur 100 jahren macht, also erste verdoppelung dann nach 50 jahren und dann grob jeweils halbiertem zeitabstand zu der jeweils nächsten verdoppelung

Habe hier mal eine einfache tabelle erstellt:
[Bild: c1047e-1571932829.jpg]


Wachstum von städten in der realen welt sind durch sehr viele faktoren beeinflusst wodurch eine vorraussage eher schwierig ist. Manches erhöht den wachstumsfaktor anderes senkt ihn wieder, auch die zeit spielt mit rein. Es gibt Jahre mit starkem Wachstum und jahre mit schwachem Wachstum.

Wenn man das in Simutrans haben möchte wäre der weg dort hin warscheinlich etwas komplexer. Man Könnte die Bei einem festen Zeitfaktor den wachstumsfaktor variabel gestalten. Beispielsweise den Zeitfaktor für je 10 jahre festlegen aber den Wachstumsfaktor um wie viel individuell einstellen.So könnte man z.b sagen die jahre 1970-1980 sind jahre mit starkem wachstum also 2,5. In den jahren 1980 - 1990 jedoch sind schwache jahre mit wachstum 1,5 usw

Wie immer alle angaben ohne garantie auf richtigkeit. Sind einfach meine gedanken dazu =)
Das hier ist die relevante Routine aus simworld.cc Zeile 877
Zitat:                const sint32 citizens = (2500l * new_mean_citizen_count) /(simrand(20000)+100);

                sint32 diff = (original_start_year-game_start)/2;
                sint32 growth = 32;
                sint32 current_bev = 1;

                /* grow gradually while aging
                 * the difference to the current end year will be halved,
                 * while the growth step is doubled
                 */
                current_month = game_start;
                bool not_updated = false;
                bool new_town = true;
                while(  current_bev < citizens  ) {
                    growth = min( citizens-current_bev, growth*2 );
                    current_bev += growth;
                    stadt[i]->change_size( growth, new_town );
                    // Only "new" for the first change_size call
                    new_town = false;
                    if(  current_bev > citizens/2  &&  not_updated  ) {
                        ls.set_progress( ++old_progress );
                        not_updated = true;
                    }
                    current_month += diff;
                    diff >>= 1;
                }
Variable diff = Zeitraum = gewünschtes Spielbeginn Jahr - Pak Startjahr
der Wert versteht sich als Jahr * 12 + Monat
der Zeitraum wird halbiert
zum current_month addiert und wieder halbiert

Die Einwohnerzahl startet mit 1 growth mit = 32
es wird growth mit 2 multipliziert und zur Einwohnerzahl addiert
-------------------------------------------------------------------------------------------------------
das hier war mein Versuch mit gleichmäßiger Verteilung der Steigerung über die Jahre

Zitat:                sint32 diff = (original_start_year-game_start)/(log2(citizens)-6);
                sint32 growth = 32;
                sint32 current_bev = 1;

                /* grow gradually while aging
                 * the difference to the current end year will be halved,
                 * while the growth step is doubled
                 */
                current_month = game_start;
                bool not_updated = false;
                bool new_town = true;
                while(  current_bev < citizens  ) {
                    growth = min( citizens-current_bev, growth*2 );
                    current_bev += growth;
                    stadt[i]->change_size( growth, new_town );
                    // Only "new" for the first change_size call
                    new_town = false;
                    if(  current_bev > citizens/2  &&  not_updated  ) {
                        ls.set_progress( ++old_progress );
                        not_updated = true;
                    }
                    current_month += diff;
//                    diff >>= 1;
                }
es werden die Anzahl Verdoppelungsschritte die notwendig sind  berechnet
und Gleichmäßig auf die Jahre verteilt.

Funktioniert nicht: weil letzter Verdoppelungsschritt das groß der Leute bringt und  nicht fein genug auf die letzten Jahre verteilt wird.

--------------------------------------------------------------------------
Versuch quadratisches Wachstum
Ziel war mehr Steigerungsschritte erreichen für eine feinere Verteilung auf die Jahre

Zitat:    //            citizens = citizens/10+simrand(2*citizens+1);
                const sint32 citizens = (2500l * new_mean_citizen_count) /(simrand(20000)+100);

                sint32 step =1;
                sint32 diff = (original_start_year-game_start)/(sqrt(citizens/64));
                sint32 growth = 32;
                sint32 current_bev = 1;

                /* grow gradually while aging
                 * the difference to the current end year will be halved,
                 * while the growth step is doubled
                 */
                current_month = game_start;
                bool not_updated = false;
                bool new_town = true;
                while(  current_bev < citizens  ) {
                    growth = min( citizens-current_bev, (64*step*step)-current_bev);
                    current_bev += growth;
                    step++;
                    stadt[i]->change_size( growth, new_town );
                    // Only "new" for the first change_size call
                    new_town = false;
                    if(  current_bev > citizens/2  &&  not_updated  ) {
                        ls.set_progress( ++old_progress );
                        not_updated = true;
                    }
                    current_month += diff;
                }

Funktioniert nicht weil die letzten Jahre zwar mehr Schritte haben, aber zu wenig Leute
-------------------------------------------------------------------------------------------------------------
Derzeit tendiere ich dazu das doch einfach so zu lassen wie bisher
Wobei die Anzahl notwendiger Verdoppelungsschritte nur zufällig ähnlich sind wie die Anzahl Halbierungsschritte bei den Jahren
--------------------------------------------------------------------------------------------
Zitat:was man testen könnte wäre ob er das selbe bei nur 100 jahren macht, also erste verdoppelung dann nach 50 jahren und dann grob jeweils halbiertem zeitabstand zu der jeweils nächsten verdoppelung

Die 190 Jahre werden berechnet und von da an halbiert
Die notwendigen Verdoppelungen der Einwohner werden immer erreicht weil auch innerhalb des letzten Jahres die Monate halbiert werden können.
und durch diff >>= 1 der Steigerungswert im Notfall auch auf glatt 0 laufen darf.
(23-10-2019, Wednesday-20:00:00 )makie schrieb: [ -> ]....
Ich habe eine Testhilfe eingebaut. Startjahr ist 1990. PAK128.german beginnt 1800.
Es soll eine Stadt mit 38.086 Einwohnern gebaut werden.

Tabelle
Jahr -> Einwohner
1800 -> 1       +64 = 65
1895 -> 65     +128 = 193
1942 -> 193   +256 = 449
1966 -> 449   +512 = 941
1978 -> 961  +1024 = 1985
1984 -> 1985 +2048 = 4033
1986 -> 4033 +4096 = 8129
1988 -> 8129 +8192 = 16312
1989 -> 16321 + 16384 = 32705
1989 -> 32705 +6356(das ist der Rest bis zum Ziel) = 39061
1990 -> 39061

Das heiß in den letzten 10 Jahren steigt die Einwohnerzahl von 1985 Leuten auf 39061 das sind 2000%

...

1.000 Einwohner bei einer Stadt ist auch eine magische Zahl. Genau so wie 10.000 Einwohner.

Da im pak128.german nicht gesetzt gilt folgendes aus der globalen simuconf.tab

Code:
# town growth is size dependent. There are three different sizes (<1000, 1000-10000, >10000)
# the idea is, that area increase by square but growth is linear
growthfactor_villages = 400
growthfactor_cities = 200
growthfactor_capitals = 100

Ein generelles Problem ist bei Simutrans, das es immer ein mehr oder weniger starkes Wachstum gibt.

Städte schrumpfen normalerweise aber auch. Und dann wandern auch Einwohner von einer Stadt in eine andere.
Und diese beiden Aspekte ignoriert Simutrans.

Selbiges ist bei den Gebäuden, die werden immer nur durch welche mit höherem Level ersetzt. Nie mit welchen die ein niedrigeres Level haben.
Aber in Städten werden auch große Gebäude und ganze Areale abgerissen ( mit verschiedenen Ursachen, die aber hier nicht wirklich relevant sind ).
Abwertung wäre aber die einzige Möglichkeit um die Gebäudeabwechslung zu erhalten, wenn das Endlevel eines Gebäudetypes erreicht wurde.

Und spätestens wenn der Stadt der Platz aus geht, wird praktisch nur noch in die Höhe gebaut bei Simutrans.

Und es gibt noch andere Faktoren die Einfluss auf das Wachstum haben. zBsp Industrien
Seiten: 1 2 3 4 5 6