Seite 4 von 5 ErsteErste 12345 LetzteLetzte
Ergebnis 46 bis 60 von 62

Thema: Relation der Unabhängigkeit der einzelnen Siedlungen zum Gesamtunabhängigkeitswunsch

  1. #46
    Geheimniskrämer Avatar von HUSch
    Registriert seit
    23.11.05
    Ort
    Schräg hinter dem Mond
    Beiträge
    29.387
    Zitat Zitat von pipisito_cutter Beitrag anzeigen
    Interessant wäre es doch, ob man nun mit nur einer 100% Stadt ingesamt auf 100% kommt, obwohl die übrigen Städte einen Wert unter 100% haben.
    Zitat Zitat von Judicator Beitrag anzeigen
    Ja, kann man.
    Klar, du mußt ja nur Gesamt auf 100 % sein, und dann die Bürger neue Städte gründen lassen, in den neuen Städten hast du wieder den Ursprungszustand.
    Du hast dann möglicherweise mehrere Städte mit 100% und andere mit weniger.


    btw
    In meinem obigen Beitrag habe ich doch gesagt, daß die Funktion möglicherweise neben Glocken und Bürgern auch das Jahr als Parameter hat.
    .

  2. #47
    Registrierter Benutzer
    Registriert seit
    29.01.03
    Beiträge
    4.909
    Code:
    int CvTeam::getRebelPercent() const
    {
    	PROFILE_FUNC();
    
    	int iRebelSentiment = 0;
    
    	for (int iPlayer = 0; iPlayer < MAX_PLAYERS; ++iPlayer)
    	{
    		CvPlayer& kPlayer = GET_PLAYER((PlayerTypes) iPlayer);
    		if (kPlayer.isAlive() && kPlayer.getTeam() == getID() && kPlayer.getParent() != NO_PLAYER && GET_PLAYER(kPlayer.getParent()).isAlive())
    		{
    			int iLoop;
    			for (CvCity* pCity = kPlayer.firstCity(&iLoop); pCity != NULL; pCity = kPlayer.nextCity(&iLoop))
    			{
    				iRebelSentiment += pCity->getRebelSentiment();
    			}
    		}
    	}
    
    	return std::max(0, std::min(100, (iRebelSentiment / std::max(1, getTotalPopulation()))));
    }
    So wie ich das sehe, wird erst die Variable iRebelSentiment aufaddiert und dann durch die Gesamtbevölkerung dividiert, wodurch sich sozusagen der Mittelwert, also der Wert für den Gesamtunabhängigkeitswillen einstellt.

    Ein Blick in die getRebelSentiment() zeigt nicht viel: Es ist ein Wert pro Stadt der gespeichert wird und durch die Methode setRebelSentiment gesetzt werden kann.

    Die Methode setRebelSentiment wird in 2 anderen Methoden aufgerufen, einmal in der CvCity::doRebelSentiment(), welche einmal pro Runde ausgeführt wird und einmal in einer "Cheat" Methode, die hier nicht weiter von Belang ist.

    Hier wird ein TurnFactor (TF) berechnet. Dieser ist abhängig von einer Konstanten, welche über die XML definiert wird und dem Geschwindigkeitswert.

    Hier steht dann folgende Formel:

    neu = (Glockenproduktion * Glockengewicht)/ TF + alt * (1 - 1 / TF )

    Wie wir sehen wird der neue Wert für RebelSentiment immer größer (wenn genug Glocken produziert werden) und pendelt sich dann irgendwann einmal ein, wenn alt = Glockenprod * Glockengewicht . Also ist es absolut möglich, dass eine Stadt die auf 100% steht weiterhin zur Erhöhung des Revolutionswillens beiträgt.

    Interessant ist auch die Methode, welche den angezeigten Prozentwert der Stadt ausgibt. In dieser wird getRebelSentiment durch die Bevölkerungszahl geteilt. Man benötigt also 100 * Bevölkerungszahl an RebelSentiment, damit die Stadt auf 100% ist. Ein größerer Wert als 100% wird einfach nur noch als 100% dargestellt, egal wie hoch RebelSentiment inzwischen schon ist.

    Also das was ich geschrieben habe gilt natürlich nur dann, wenn ich auf die schnelle nichts im Code übersehen habe.
    Geändert von Netbandit (11. November 2008 um 07:10 Uhr)

  3. #48
    Talking Bull Avatar von Writing Bull
    Registriert seit
    01.10.08
    Beiträge
    21.376
    @Netbandit: Wie immer danke für deine Mühen! Alles habe ich als Programmierlaie leider nicht verstanden. Was mich vor allem interessiert: Gibt es einen Mechanismus, der die Glockenproduktion einer Stadt, die bereits über 100 % Rebellischer Stimmung verfügt, in Bezug auf die Steigerung des nationalen Unabhängigkeitswillens geringer gewichtet als die Glockenproduktion in einer Stadt mit einem geringerem Produzentwert an Rebellischer Stimmung?

    Um die Frage an einem Beispiel zu verdeutlichen: Ich habe eine Stadt mit 100 % Rebellischer Stimmung und eine zweite Stadt mit 10 % Rebellischer Stimmung. Beide sind gleich groß und produzieren gleich viele Glocken. Tragen dann beide gleich viel zum nationalen Unabhängigkeitswillen bei?

    Ich suche nämlich immer noch nach einer Erklärung dafür, dass sowohl Regis Hastur als auch ich irrigerweise aufgrund unserer Spielerfahrungen fest davon überzeugt waren, dass eine "gesättigte" Stadt mit 100 % Rebellen den nationalen Unabhängigkeitswillen nicht mehr steigern kann ...
    Geändert von Writing Bull (11. November 2008 um 00:39 Uhr)

  4. #49
    Banned Avatar von Judicator
    Registriert seit
    22.07.03
    Ort
    nahe der Mülltonnen
    Beiträge
    11.420
    Zitat Zitat von HUSch Beitrag anzeigen
    btw
    In meinem obigen Beitrag habe ich doch gesagt, daß die Funktion möglicherweise neben Glocken und Bürgern auch das Jahr als Parameter hat.
    Ja, den Zeitfaktor vermute ich ja auch.

    Zitat Zitat von Writing Bull Beitrag anzeigen
    Ich suche nämlich immer noch nach einer Erklärung dafür, dass sowohl Regis Hastur als auch ich irrigerweise aufgrund unserer Spielerfahrungen fest davon überzeugt waren, dass eine "gesättigte" Stadt mit 100 % Rebellen den nationalen Unabhängigkeitswillen nicht mehr steigern kann ...
    Die Erklärung ist sehr einfach: Es ist eben ziemlich widersinnig, dass das Spiel die Revolutionswerte getrennt ausweist, wenn es dann doch einen Gesamtquotienten gibt.
    Das verleitet dann zu der Annahme, dass es hierbei -wie ja auch sonst- lediglich um eine stadtbezogene Funktion geht. Und das induziert gleich den nächsten Fehlschluss: Wenn Bürger aus der Stadt genommen werden, verlieren sie die Zuordnung zu dieser und werden von den Glocken nicht mehr erreicht.

  5. #50
    Registrierter Benutzer
    Registriert seit
    29.01.03
    Beiträge
    4.909
    Zitat Zitat von Judicator Beitrag anzeigen
    Ja, den Zeitfaktor vermute ich ja auch.
    Dafür kann ich in den Source gar keinen Anhaltspunkt finden...

    @Writing Bull:

    Es sieht einfach so aus:

    Gesamtunabhängigkeitswille = GesamtRebelSentiment / Gesamtbevölkerung

    GesamtRebelSentiment = Summe von RebelSentiment aller Städte

    Das RebelSentiment einer Stadt wird jede runde aktualisiert und ergibt sich aus:

    NeuRebelSentiment = (Glockenproduktion * GG) / TF - AltRebelSentiment (1 - 1/TF)


    GG = Glockengewicht (Konstante)
    TF = Rundenfaktor (Konstante)

    TF ist in der GlobalDefines.xml als REBEL_SENTIMENT_TURN_WEIGHT angegeben und hat den Wert 10. (Bei anderen Geschwindigkeitsstufen als Normal verändert sich dieser wert etwas)

    GG ist auch in der GlobalDefines.xml als REBEL_SENTIMENT_BELLS_FACTOR angegeben und hat den Wert 25.

    Die Prozentzahl, die bei jeder Stadt steht errechnet sich aus dem RebelSentiment / Bevölkerungszahl der Stadt, kann aber maximal nur den Wert 100 annehmen. Dieser Prozentwert wird nur zum Anzeigen benutzt, aber nicht bei der Gesamtunabhängigkeit verrechnet.

    Rechenbeispiel: 2 Städte A und B

    Stadt A:
    Bewohner: 3
    RebelSentiment: 300
    Glockenproduktion: 20

    Stadt B:
    Bewohner: 4
    RebelSentiment: 200
    Glockenproduktion: 8

    Es sind zusätzlich zwei Soldaten auf der karte vorhanden.

    => Unabhängigkeitswille der Stadt A = 300 / 3 = 100%
    => Unabhängigkeitswille der Stadt B = 200 / 4 = 50%
    => GesamtRebelSentiment = 300 + 200 = 500
    => GesamtUnabhängigkeitswille = 500 / (3 + 4 + 2) = 55,56%

    Dann wird die nächste Runde berechnet:

    Stadt A:

    RebelSentiment = ( 20 * 25 ) / 10 + 300 (1 - 1 / 10) = 320
    (um 20 gewachsen)

    Stadt B:
    RebelSentiment = ( 8 * 25 ) / 10 + 200 (1 - 1 / 10) = 200
    (gleich geblieben)

    Jetzt ergibt sich folgende Situation:
    => Unabhängigkeitswille der Stadt A = 320 / 3 = 106,67% (Angezeigt wird nur 100% !!!)
    => Unabhängigkeitswille der Stadt B = 200 / 4 = 50%
    => GesamtRebelSentiment = 320 + 200 = 520
    => GesamtUnabhängigkeitswille = 520 / (3 + 4 + 2) = 57,78%

    Man sieht also, dass die Stadt A, obwohl nur 100% angezeigt werden, sehr wohl noch deutlich zur Steigerung des Gesamtunabhängigkeitswillen beiträgt.

    Zitat Zitat von Writing Bull Beitrag anzeigen
    Um die Frage an einem Beispiel zu verdeutlichen: Ich habe eine Stadt mit 100 % Rebellischer Stimmung und eine zweite Stadt mit 10 % Rebellischer Stimmung. Beide sind gleich groß und produzieren gleich viele Glocken. Tragen dann beide gleich viel zum nationalen Unabhängigkeitswillen bei?
    Ich nehme an, du beziehst deine Frage auf den Anstieg der des nationalen Unabhängigkeitswillen? Dann ist die Antwort: Nein

    Die Stadt mit 100% hat ja schon einen höheren RebelSentiment Wert als die Stadt mit 10%, daher "verliert" sie pro Runde auch einen höheren Wert, welcher dann durch Glocken wieder aufgestockt werden muss. Also je höher der Wert von RebelSentiment, desto höher die Prozentzahl der Stadt, desto weniger Glocken tragen dann aber auch zur Steigerung dieses wertes bei. Das geht dann eben so weit, bis Glockenproduktion * GG = AltRebelSentiment. Also bei einer Stadt mit 10 Einwohnern und genau 100% RevWille, benötigt man ganze 40 Glocken um diesen wert stabil zu halten. Bei einer Stadt mit 10 Einwohnern und genau 10% RevWille braucht man nur 4 Glocken.
    Geändert von Netbandit (11. November 2008 um 08:05 Uhr)

  6. #51
    Talking Bull Avatar von Writing Bull
    Registriert seit
    01.10.08
    Beiträge
    21.376
    Netbandit: super! vielen, vielen Dank für deine präzisen Erklärungen! Ich werde auf ihrer Basis einen Extra-CivWiki-Artikel zum Thema "Rebellische Stimmung und Unabhängigkeitswillen" schreiben und als Quelle auf deinen Post verlinken. Bislang waren die Angaben zu diesem Punkt auf mehrere Stellen in der Wiki aufgeteilt - es ist wohl sinnvoll, diese Angaben dort in einem eigenständigen Artikel zu bündeln.

    Was mich mal wieder bei Col 2 ärgert: wie schlampig die Entwickler wichtige Spielfeatures dokumentiert haben. Es schafft völlig unnötigen Spielerfrust, wenn man sich erst wochenlang in einem Fanforum den Kopf zerbrechen muss, bis man kapiert, wie hier der Hase läuft. Solche Punkte gehören von Anfang an in das gedruckte Handbuch und in die Zivilopädie. Ebenso ärgerlich ist, dass die Tester der Spielezeitschriften und Spiele-Webmagazine in ihren Tests des Spiels kein Wort darüber verloren haben, wie intransparent die Spielmechanik teilweise ist. Ich kenne jedenfalls keinen einzigen Test, der darauf hingewiesen hätte. Ein Armutszeugnis für die Autoren - die haben sich nämlich offenbar nur mal schnell in einer Probepartie durchs Spiel geklickt ...
    Zitat Zitat von Netbandit Beitrag anzeigen
    Die Prozentzahl, die bei jeder Stadt steht errechnet sich aus dem RebelSentiment / Bevölkerungszahl der Stadt, kann aber maximal nur den Wert 100 annehmen. Dieser Prozentwert wird nur zum Anzeigen benutzt, aber nicht bei der Gesamtunabhängigkeit verrechnet.
    Diese Prozentzahl, die bei jeder Stadt steht, beeinflusst ja auch die Produktivität der Stadt. Er gewährt einen Produktionsbonus in Höhe von 50 % der Rebellischen Stimmung in der Stadt. Meine Frage an dich, Netbandit: Kann dieser Bonus über 50 % steigen? In der gedanklichen Langfassung: Du hast aufgezeigt, dass der Prozentwert an Rebellischer Stimmung pro Stadt dem Spieler mit maximal 100 % angezeigt wird, dass dieser Prozentwert aber tatsächlich gar nicht auf 100 % gedeckelt ist. Wenn es darum geht, wie er den Unabhängigkeitswillen in der ganzen Nation beeinflusst, kann der Wert auch 110 oder 120 % oder was auch immer betragen. Welcher Wert der Rebellischen Stimmung in der Stadt wird bei der Berechnung des Produktionsbonus herangezogen - der tatsächliche Wert (z.B. 120 %) oder der auf auf 100 % gedeckelte?
    Zitat Zitat von Netbandit Beitrag anzeigen
    Die Stadt mit 100% hat ja schon einen höheren RebelSentiment Wert als die Stadt mit 10%, daher "verliert" sie pro Runde auch einen höheren Wert, welcher dann durch Glocken wieder aufgestockt werden muss. Also je höher der Wert von RebelSentiment, desto höher die Prozentzahl der Stadt, desto weniger Glocken tragen dann aber auch zur Steigerung dieses wertes bei. Das geht dann eben so weit, bis Glockenproduktion * GG = AltRebelSentiment. Also bei einer Stadt mit 10 Einwohnern und genau 100% RevWille, benötigt man ganze 40 Glocken um diesen wert stabil zu halten. Bei einer Stadt mit 10 Einwohnern und genau 10% RevWille braucht man nur 4 Glocken.
    Fantastisch! Du hast diesen Mechanismus nicht nur als erster im Programmcode entdecken und damit verifizieren können, du hast ihn auch noch quantifiziert. Absolute Pionierarbeit!

  7. #52
    Geheimniskrämer Avatar von HUSch
    Registriert seit
    23.11.05
    Ort
    Schräg hinter dem Mond
    Beiträge
    29.387
    Diese schlechte Dokumentation ist doch ein Spielprinzip. Man möchte dem Spieler doch gerade nicht mitteilen, wie und warum sich bestimmte Ereignisse ergeben.

    Stell dir einfach vor, du müßtest ohne Forum/Austausch spielen, dann würde es wirklich ein Spiel ohne Manipulationsmöglichkeiten werden und für die meisten ein Buch mit 7 Siegeln.
    Wenn ich mich an Civ 1 und 2 erinnere, dann habe ich da irgendwie versucht meine Spiele zu gewinnen, die Idee, man könne die Spielmechanik verstehen, ist mir damals nie gekommen.
    .

  8. #53
    Entdecker Avatar von melcher kürzer
    Registriert seit
    25.06.08
    Beiträge
    1.106
    Zitat Zitat von Writing Bull Beitrag anzeigen
    Diese Prozentzahl, die bei jeder Stadt steht, beeinflusst ja auch die Produktivität der Stadt. Er gewährt einen Produktionsbonus in Höhe von 50 % der Rebellischen Stimmung in der Stadt. Meine Frage an dich, Netbandit: Kann dieser Bonus über 50 % steigen? In der gedanklichen Langfassung: Du hast aufgezeigt, dass der Prozentwert an Rebellischer Stimmung pro Stadt dem Spieler mit maximal 100 % angezeigt wird, dass dieser Prozentwert aber tatsächlich gar nicht auf 100 % gedeckelt ist. Wenn es darum geht, wie er den Unabhängigkeitswillen in der ganzen Nation beeinflusst, kann der Wert auch 110 oder 120 % oder was auch immer betragen. Welcher Wert der Rebellischen Stimmung in der Stadt wird bei der Berechnung des Produktionsbonus herangezogen - der tatsächliche Wert (z.B. 120 %) oder der auf auf 100 % gedeckelte?
    Auch wenn du Netbandit fragst, die Antwort kann ich dir auch geben. Der maximale Produktionsbonus liegt bei 50%, wird also von dem angezeigten Wert herangezogen und nicht von dem Tatsächlichen.

  9. #54
    Banned Avatar von Judicator
    Registriert seit
    22.07.03
    Ort
    nahe der Mülltonnen
    Beiträge
    11.420
    Zitat Zitat von HUSch Beitrag anzeigen
    Diese schlechte Dokumentation ist doch ein Spielprinzip. Man möchte dem Spieler doch gerade nicht mitteilen, wie und warum sich bestimmte Ereignisse ergeben.

    Stell dir einfach vor, du müßtest ohne Forum/Austausch spielen, dann würde es wirklich ein Spiel ohne Manipulationsmöglichkeiten werden und für die meisten ein Buch mit 7 Siegeln.
    Wenn ich mich an Civ 1 und 2 erinnere, dann habe ich da irgendwie versucht meine Spiele zu gewinnen, die Idee, man könne die Spielmechanik verstehen, ist mir damals nie gekommen.
    Das würde ich auch unterschreiben. Um diesen Spoilereffekt zu verhindern, lese ich viele Threads gar nicht, da das Spiel damit auch fordernder bleibt, ohne der KI zu viele Boni geben zu müssen.

    Aber: Bestimmte Dinge lassen sich intuitiv nicht herausfinden. Und wenn es dann nur an einer Zufälligkeit liegt, ob ich gewinne oder verliere, ist das auch nicht Sinn der Sache.

  10. #55
    Registrierter Benutzer
    Registriert seit
    29.01.03
    Beiträge
    4.909
    Zitat Zitat von melcher kürzer Beitrag anzeigen
    Auch wenn du Netbandit fragst, die Antwort kann ich dir auch geben. Der maximale Produktionsbonus liegt bei 50%, wird also von dem angezeigten Wert herangezogen und nicht von dem Tatsächlichen.
    Ja da hat melcher recht, ich habe noch mal im Code geguckt, die Methode, welche den "Verstärkungswert" für eine Ware beim Produktionsprozess errechnet benutzt die getRebelPercent() Methode der jeweiligen Stadt. Also genau die Methode wo der Wert auf 100 beschärnkt wird.

    @Writing Bull: Schön, dass du dir so viel Mühe wegen der Wiki und überhaupt machst, von mir an dieser Stelle noch einmal ein großer Dank für deinen Einsatz!

  11. #56
    Talking Bull Avatar von Writing Bull
    Registriert seit
    01.10.08
    Beiträge
    21.376

    CivWiki-Artikel zur Rebellischen Stimmung

    Wie von mir angekündigt, habe ich in der CivWiki einen gesonderten Artikel zur Rebellischen Stimmung erstellt, in dem die Informationen aus diesem Thread aufbereitet werden.

    Es würde mich wundern, wenn ich das völlig fehlerfrei geschafft hätte - ich wäre dankbar für eine kritische Durchsicht und Rückmeldungen hier in diesem Thread.

    Mathematische Formeln habe ich weitgehend nicht in den Wiki-Artikel hineingenommen, sondern nur in ihrem Mechanismus grob beschrieben. Mir war wichtig, dass eine schnelle Orientierung im Thema möglich ist und die Übersichtlichkeit gewahrt bleibt. Ich habe aber entsprechende Links zu der Analyse der Formeln gesetzt, die Netbandit in diesem Thread gepostet hat.

    Edit: Der Abschnitt zur Eroberung fremder Siedlungen ist noch etwas vage. Das liegt daran, dass ich dazu noch keine Analyse der Programmdateien gefunden habe.

  12. #57
    Registrierter Benutzer
    Registriert seit
    28.07.10
    Beiträge
    5
    Hallo,

    ich habe mich gerade in einem Spiel geschlagen geben müssen, weil die rebellische Stimmung einfach nicht 50% erreichen wollte (zuviel Bevölkerung...).

    Jetzt weiß ich wenigstens, was Sache ist, jedoch stellt sich die Frage:

    Gibt es nicht aufgrund der Berechnung der globalen rebellischen Stimmung einen annähernd fixen Wert, wieviel Bevökerung man pro Staatsmann unterhalten kann, um gegen Ende des Spiels hin bei 50% anzukommen gesamt?

    Wenn die Formel so ausgelegt ist, dass bei gleichen Umständen irgendwann gilt: neu = alt, dann muss es auch einen ideales Verhältnis Staatsmänner / Bürger geben, bzw. eine maximale Anzahl Bürger je Staatsman mit dem Ziel 50%...

  13. #58
    Registrierter Benutzer
    Registriert seit
    28.07.10
    Beiträge
    5

    Idee

    Hm, nach meinen Berechnungen erreicht jede Freiheitsglocke nach ca. 15 Runden ein Bevölkerungsmaximum von 0,40 Siedlern, bei einem Zielwert von 50% GesamtUnabhängigkeitswille. In den folgenden Runden steigt dieser Wert immer langsamer bis 0,50 Siedler pro Glocke nach ca. 50 Runden.

    Ein Staatsman mit 6 Glocken unterstützt demnach nach ca. 15 Runden ca. 2,4 Siedler, und nach ca. 50 Runden ca. 3 Siedler.

    Als Faustregel für die Anzahl Soldaten basierend auf dieser maximalen Bevölkerungszahl kann man definieren:

    Ein Verhältnis von 1 Siedler zu 1 Soldat geht immer.
    Ein Verhältnis von 1 Siedler zu 2 Soldaten geht nicht immer.

    Die Boni auf die Glockenproduktion habe ich momentan nicht berücksichtigt, da nicht klar ist, ob diese hier zählen.

  14. #59
    Registrierter Benutzer
    Registriert seit
    28.07.10
    Beiträge
    5
    Also die Boni auf die Glockenproduktion gehören mit in die Berechnung, ändert aber nichts an der 0,4 / 0,5 Siedler pro Glocke Richtlinie.

  15. #60
    Talking Bull Avatar von Writing Bull
    Registriert seit
    01.10.08
    Beiträge
    21.376
    Hi Dryzen - herzlich willkommen hier in unserem Forum!
    Da hast du dir ja zum Einstieg ein richtig schweres Thema ausgesucht.

    Den Wiki-Artikel hast du anscheinend schon entdeckt, nicht?
    Nur ganz kurz: Einige Gründerväter spendieren ja Glockenboni, ebenso manche Oberhäupter. Und - was man schnell übersieht -: der Produktionsbonus in Städten, der durch die lokale Rebellische Stimmung erzeugt wird, findet auch auf die Glockenproduktion Anwendung. Das heißt: Je höher die RS in der Stadt ist, desto mehr Gratisglocken werden erzeugt.

Seite 4 von 5 ErsteErste 12345 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •