Closed scr0llbaer9000 closed 1 year ago
Ich habe mich tatsächlich noch nicht mit den Attraktivitätsmodifikatoren beschäftigt (nicht einmal mit den Bestandswerten in der mods.xml). Ich werde mir bei Gelegenheit aber mal den Bestandscode anschauen und die Beschreibung ergänzen.
Edit: Zu beachten ist, dass die Zielgruppenattraktivität derzeit noch nicht für Drehbuchvorlagen angepasst werden kann.
Erste Kurzantwort zu den Zielgruppen: die Werte für targetGroupAttractivity dürfen wie beschrieben nur zwischen 0 und 2 liegen und gehen als Faktor (für einen Teil der Summanden, nicht das Gesamtergebnis!) in die Berechnung ein 0=kein Interesse, 2=hohes Interesse. Aber auch bei 0 kann eine "beachtliche" Zuschauerzahl zusammenkommen, da wie bemerkt andere Werte addiert werden (Genreattraktivität...). Im Quotenbildschirm (q im Entwicklermodus) sieht man zwar nicht die gesamte Rechnung aber zumindest einen Teil der involvierten Parameter.
Zu den Subgenres. Soweit ich das sehen kann, werden die Subgenres überhaupt nicht in die Bewertung einbezogen. Siehe TProgrammeData#GetGenreDefinition
Auch eine Textsuche nach GetGenres und GetSubGenres liefert keinen Hinweis darauf, dass für die Einschaltquotenberechnung mehr als das Hauptgenre verwendet wird. @GWRon : Kannst Du das bestätigen?
ok, dann wird es also nach bzw. zusätzlich zu dem Eintrag in programmedatamods.xml
ausgewertet. Und dann stellt sich natürlich wie gesagt die Frage, wie genau das passiert.
werden die Subgenres überhaupt nicht in die Bewertung einbezogen
Das wär schon gut denk ich, da es dann einen Film "einzigartiger" macht (sofern mehrere Genres für den Film angegeben wurden).
Fuer die Zielgruppenattraktivitaet kann es schon sein, dass die Modifikatoren nicht auf die Subgenre angewendet werden.
Bei den Drehbuechern kommen die Untergenre beim "GenreCriteriaFit" mit in das Spiel. Fertige Programme hingegen...
Ich denke die Subgenre muessen in zwei Funktionen beruecksichtigt werden: game.broadcast.audienceattraction.bmx:
Method GetGenreAttractivity:TAudience()
Method GetTargetGroupAttractivity:TAudience()
Der Code wurde wohl vor Einfuehrung der SubGenre geschrieben und beachtet sie noch nicht.
Wir koennen das "einfach" halten: fixe Gewichtung (jedes Subgenre hat einen festen Einflusswert)
Oder "komplex" machen: eigene Gewichtungen in Abhaengigkeit zum Maingenre. Denn "Action-Scifi" passt besser als "Monumental-Trickfilm". Bei letzterem sollte die Attraktivitaet der "Trickfilme" auf Kinder weniger Einfluss haben. Gleiches gilt fuer "Zeitslots". Sonst passt am Ende ein "Erotik-Trickfilm" nicht mehr in die 23 Uhr Zeitslots sondern hat - uebertrieben ausgedrueckt - die beste Sendezeit im Vormittagsprogramm
Auch bitte erklären wie sich targetgroupattractivity
in der programmedatamods.xml
verhält. @nittka schrieb, dass bei der Angabe dieses Parameters in Programmen negative Werte falsch sind und zu 0 umgedeutet werden (und was bedeutet 0 überhaupt? Offensichtlich nicht mögliche Quote mal 0). Verhält sich das in programmedatamods.xml
genauso und sind die negativen Werte dort falsch? Oder funktioniert die Berechnung hier anders?
fixe Gewichtung (jedes Subgenre hat einen festen Einflusswert)
Würde sagen Hauptgenre hat natürlich den größten Einfluss, und das zweite Genre vielleicht 50% davon oder 33% oder 25% oder sowas. Das dritte Genre vielleicht dann auch etwas weniger dann als das zweite, um die Programme noch "einzigartiger" gestalten zu können, ohne viel mit den anderen Parametern herumhantieren zu müssen.
Oder "komplex" machen: eigene Gewichtungen in Abhaengigkeit zum Maingenre. Denn "Action-Scifi" passt besser als "Monumental-Trickfilm".
Ich denke, das ist nicht nötig, und das Spiel sollte keine speziellen Annahmen im Voraus treffen, welche Kombinationen passen könnten und welche nicht. Sonst werden "interessante" und "experimentelle" Programme u.U. unnötig "bestraft".
Ich meinte, dass die targetGroupAttractivity-Werte in der Datenbank (Programme, News) einen Wertebereich von 0 bis 2 haben. Über die Wertebereiche in programmedatamods.xml (Konfigurationsdatei) wollte ich keine Aussage treffen. Dort sind im Kommentar oben schon ein paar Erklärungen drin. Die dortigen Werte haben wohl einen additiven Charakter (0=average, -2=unpopular, 2=popular).
Der "Faktor" 0 in der Datenbank ist kein Faktor auf das Gesamtergebnis sondern ein Faktor für einen Teil der Berechnung. Die genaue Auswirkung muss ich auch erst raussuchen, da ich mich mit der Einschaltquotenberechnung noch nicht beschäftigt habe.
Eine genaue Berechnungsvorschrift wird es jedenfalls nicht geben. Einstiegspunkt ist
TBroadcastMaterialDefaultImpl#GetAudienceAttraction
wo statische Anteile, dynamische und Flow-Anteile zu einem Attraction-Wert zusammengerechnet werden.
Einige Bezeichnungen in der Datei programmedatamods.xml
scheinen übrigens veraltet.
z.B.
audienceAttraction id="Manager"
- muss das nicht auch upgedatet werden zu "Managers"?genre id="6" name="documentation"
- an anderen Stellen im Spiel und auch in derselben Datei wurde das schon korrigiert zu "documentary".Oder hier z.B. <badFollower>action,scifi,thriller</badFollower>
werden die Genres per String referenziert, und nicht per Nummer. Der richtige definierte Name wäre aber sci-fi
mit Bindestrich?
Ich denke neben einem fixen des Inhalts sollten wir beim Loader entsprechende Log-Eintraege einbauen
@scr0llbaer9000 : could you check whether the small changes I made in #24 are enough? I think a complete documentation of the calculation is out of scope.
closed by 1f70272
Bitte Erläuterung nachliefern ob die Angabe für einen
programme
-Eintrag die allgemeingültige fürs Genre inprogrammedatamods.xml
ersetzt, oder ob sie zusätzlich als weiterer Berechnungsschritt ausgewertet wird.Falls letzter Fall, vielleicht Beispiele liefern, wie man vorgehen muss, wenn man einen Wert wie etwa einen Senioren-"Bonus" "neutralisieren" will (einfach derselbe Wert nur negativ? Oder ist's komplizierter?).
Auch erklären, wie die zweite und dritte Genre-Angabe gewichtet wird.