Du bist nicht angemeldet.
Du kannst ja mal auf die KI wechseln und beu den Finanzen zurueckblaettern. Es sollte farblich markiert werden, wenn man zu einer "alten" KI zurueckwechselt.
Einsatz hier waere es, eine neustartende KI mit mehr Sendemasten auszustatten. Anstatt nun diese Masten zufaellig auf der Sendekarte zu verteilen, sollten wohl exakt die Sendemasten anderer Spieler genutzt werden. Das folgt dem alten BWL-Schema der Eisverkaeufer am Strand.
...und es wuerde bei schlechten Spielern automatisch zu einer Schwierigkeitsgraderhoehung sorgen.
Wenn ich keine Gegenstimmen hoere, wuerde ich das heute nachmittag mal umsetzen. Wer will, kann mir gerne so einen viele-Sendemasten-Midgame-Speicherstand zumailen.
Bye
Ron
Das ist doch schon mal ein guter Ansatz.
2 KI's haben 0 und eine KI hat 1 zusätzlichen Sendemast.
Das heißt ja ich habe am Tag 20 ein Monopol in der Fernsehlandschaft Dtl.
Ich muss mir den Zuschauer nicht "teilen".
Das erklärt ja auch die über-hohen Einnahmen durch Werbung.
Wenn die KI nicht viel stärker wird und Du bei der Werbung ansetzen willst, dann musst Du ja virtuell den Fernseh-Markt "teilen".
Also irgendwo muss da jetzt eine bittere (für den Spieler) 25% rein. (besser wahrscheinlich eine 33%)
Damit würdest Du den Spieler die Pistole auf die Brust setzen weil er nicht besser als 33% werden kann. Da wäre der Anfang unspielbar schwer.
Vielleicht die virtuelle Teilung beginnend mit 0% und dann tägl. 0.5-1% von "Deinen" Markt abknapsen bis zu einen Maximum von 25-33%.
Das ist alles super ecklig und kein gutes Spielgefühl, glaub ich.
Die ESQ % sind mom. viel zu hoch und der "Gewinn" den man macht damit unausgewogen.
Ich habe von Anfang an nicht geglaubt, das es ein Einnahme-Problem ist (die fühlen sich erst mal richtig an - stetiges Wachstum) ich dachte die Ausgaben wären das Problem. Nun scheint es aber so, dass die KI das Problem sei. Nicht schön.
Fragen:
-Wie kann es sein, dass 3 KI's in 20 Tagen 1 Station kaufen und Wie kann man das verbessern
-Glaubst Du (Ronny) dass Du durch die GetCPM() irgendwas änderst (die KI würde auch weniger Geld bekommen)
-Sollte man der KI "künstlich" Vorteile geben (Jeden Tag 'nen Mast oder so)
Das Problem ist eher, dass die KI nicht im gleichen Sendegebiet wie du unterwegs bist. Die Zuschauer in den exklusiven Gebieten haben nur die Wahl zwischen "Garten und Grillen" sowie "DannyF TV schauen".
Aus diesem Grund hast Du so hervorragend gute Quoten.
Du kannst ja - einfach mal mit dem Speicherstand spielend - alle anderen Sendemasten verkaufen und dann schauen, wie der Prozentwert dann aussieht.
@ Nachvollziehen
Ja, man erkennt auch gut, dass man auf das "max()" verzichten koennte.
Was meine obigen "LibreOffice-Kurven" darstellen, waere ein Ersatz fuer die "1 - logisticInfluence". Sprich diese Logistische Kurve wuerde ersetzt.
GetCPM() gibt weiterhin den zu nutzenden "TKP" zurueck.
Linear wuerde eine GetCPM() so aussehen koennen:
Parameter: ProzentErreicht, MaximalerTKP
Balancing: A, C
Rueckgabewert: ProzentErreicht*MaximalerTKP*A + C
Sprich A bestimmt den "Startwert" fuer 0er Spots und "A", wie schnell es ansteigen wuerde.
Unsere Formeln uebersetzen "ProzentErreicht" in "Prozent von maximalem TPK".
bye
Ron
Tag20/teurere Sendemasten/akt. DevPatch:
Aus deiner
= Return...
= Return...
Werde ich hier am Handy gerade ne schlau.
Habe versucht den Rückgabewert von Function GetCPM nachzuvollziehen.
Ich habe gerade einen Tag gespielt (Tag 19) und ich habe zwischen 20% und 52% ESQ gehabt. Im Durchschnitt etwa um die 35%. (Selbst wiederholungen hatten ~40%).
Habe an dem Tag ca. 1.5Mio Fixkosten (10%derKarte) und 3.5Mio reinen Gewinn gemacht.
Dadurch, dass man die Lizenzen nach einigen Tagen wieder Gut verkaufen kann bzw. neusenden mit ähnlich hohen ESQ ist es zu diesen Zeitpunkt schon unbalanced.
Aus deiner
= Return...
= Return...
...
Werde ich hier am Handy gerade ne schlau.
Edit: vlt. in ein paar Worte packen. Aber schoen, dass jemand hier "Code" lesen kann.
Ausgaben zu erhoehen mag gut sein..aber erst im Midgame. Momentan ist die Eigenproduktion ja sehr teuer...vgl mit den Ergebnissen. Besser waere da ein steilerer Anstieg mit steigender Qualitaet (Produktionsfirma lvl2+).
Sendemasten...ja wuerde ich auch teurer ansiedeln.
News...da kommt es drauf an, wieviele man am Tag so braucht.
Nachrichtenabos..ja.. vlt auch nichtlinear... 10.000 25.000 50.000 100.000 oder so.
Bye
Ron
Was will ich damit sagen...
Gute Frage, Danny. Danke Danny.
Ich sehe das Problem nicht so sehr bei der Werbung, sondern eher woanders.
Das man in der Berechnung eine kleine "Stauchung" drin hat find ich okay (Rabatt TKP), eine Deckelung find ich nicht Gut.
Es wäre natürlich einfacher die Preise/Kosten/ESQ/TKP usw. an die Realität auszurichten.
Das alles billiger ist als in der Realität (Lizenzen, Masten, Studiomiete, Schauspieler...) ist eine Design-Entscheidung und in einer Simulation durchaus machbar. Dort brauch es dann Hebel die man bewegen kann um das Spiel auch nach 14 Tagen noch fordernd zu halten.
Ich sehe diese Hebel aber eher auf der Ausgaben als auf der Einnahmen Seite.
Und somit wiederhole ich mich:
Quellen:
https://de.statista.com/statistik/daten/studie/156710/umfrage/entwicklung-des-tkp-fuer-tv-werbung/
https://de.wikipedia.org/wiki/Einschaltquote#Quotenrekorde
p.s. ich kann die BL Spiele 3 x senden, was 36 Blöcke DeluxeMaterial für 3.75Mio = 105k/Block wäre. Dafür ~30%-60% ESQ. Alles zu billig
edit:
p.p.s. Deluxe Lizenzen alle ESQ > 30%
ungefaehr so wie die rote Linie hatte ich mir das gedacht
Allerdings suchte ich nach einer Formel, bei der die Stelle mit kippendem Anstieg (hier bei ca x=0,7) verschiebbar ist - so dass wir selbst festlegen koennen, ab wann der Markt nahezu "ausgereizt" ist.
Die LibreOffice-Datei fuer obiges Diagramm ist hier zu finden:
http://www.digidea.de/files/adcontract_cpm_calculation.ods
Vielleicht mag ja wer ein wenig basteln.
Der "Y-Achsenwert" waere momentan der prozentuale Anteil eines festzulegenden "maximalen TKP". (glaube das muesste noch umgedreht werden - so dass der TKP mit steigender Reichweite abnimmt - da ja schon mehr Zuschauer angefordert werden also "x * TKP" mit einem wachsenden X versehen ist).
Gedanke hier waere, dass die Profite usw. zwar ansteigen, es aber fuer "weitere 1000 Leute" weniger Extrakohole gibt als fuer die vorherigen 1000 Leute..
So... Junior braucht meine Aufmerksamkeit. Muss mir das wohl alles nochmal durch den Kopf gehen lassen.
Edit: ich denke die y-Achse sollte den Zuwachs der TKP darstellen.
bye
Ron
Hinter der logistischen Funktion versteckt sich folgender Gedanke:
Von Cami de Son Duc - Eigenes Werk, CC-BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=36214100
Quelle: https://de.wikipedia.org/wiki/Logistische_Gleichung
ab bspweise (bei uns) 80% der maximal moeglichen Reichweite (80Mio in Deutschland) hat man 95% des maximalen Profits erreicht. Es werden dann immer mehr Zuwaechse an Reichweite benoetigt um wenige Promille mehr Profit zu erlangen. Dennoch sollte ein geringes Wachstum enthalten sein.
Mit der linearen Steigerung ist dies nicht ohne weiteres abbildbar. Dort gibt es maximal den einfachen "Quadratansatz" (der es aber wieder nicht-linear macht).
(0-1.0)^0.95
da dies um so mehr reduziert, je kleiner der wert ist, muesste man statt "10%" "90%" schreiben (also 1.0 minus aktuelle Prozentzahl).
bye
ron
Nochmal kurz was zur Berechnung der derzeitigen Werbepreise.
(Auch wenn das irgendwo sicher schon niedergeschrieben war)
Der Profit fuer die Werbung berechnet sich so:
(TausenderKontaktPreis = CPM)
(GameRules.adContractPricePerSpotMax = die besagte "1 Million Euro")
maxCPM = GameRules.adContractPricePerSpotMax / Max(1, (population/1000))
minAudience = GetTotalMinAudienceForPlayer(playerID)
'calculate a price/CPM using the "getCPM"-function
'use the already rounded minAudience to avoid a raw audience of
'"15100" which rounds later to 16000 but calculating the cpm-blocks
'leads to 15 instead of 16...
'ATTENTION: use getTotalMinAudience() to base CPM on the rounded
' value IGNORING potential targetgroup limits. This
' leads to some kind of "beautified" percentage value.
price = GetCPM(baseValue, maxCPM, minAudience / population)
'multiply by amount of "1000 viewers"-blocks (ignoring targetGroups)
price :* Max(1, minAudience/1000)
'multiply by amount of "1000 viewers"-blocks (_not_ ignoring targetGroups)
'price :* Max(1, getMinAudience(playerID)/1000)
'value cannot be higher than "maxAdContractPricePerSpot"
price = Min(GameRules.adContractPricePerSpotMax, price )
'adjust by a balancing factor
price :* balancingFactor
'specific targetgroups change price
If GetLimitedToTargetGroup() > 0 Then price :* limitedToTargetGroupMultiplier
[...]
Es wird also ein maximaler TKP ermittelt und dieser an eine Funktion "GetCPM" weitergegeben. Diese ermittelt den zu nutzenden TKP fuer den anzugebenden "baseValue" (Ein TKP fuer eine bestimmte Reichweite).
GetCPM() hingegen macht folgendes:
Function GetCPM:Double(baseCPM:Double, maxCPM:Double, influence:float)
'no money - ignore influence
if baseCPM = 0 then return 0
'lower cpm means it should not get influenced either
if baseCPM < maxCPM then return baseCPM
'at "strength" the logisticalInfluence_Euler changes growth direction
'so we have to scale back the percentage
local logisticInfluence:Float = THelper.LogisticalInfluence_Euler(influence, 3)
'at least return maxCPM
return Max(maxCPM, maxCPM + (baseCPM - maxCPM)*(1.0-logisticInfluence))
End Function
Das sollte uebrigens dann der Teil sein, den "ihr" gern linear gestaltet sehn wollt.
Beim Betrachten des Codes habe ich irgendwie das Gefuehl einen Fehler vor der Nase zu haben ...
-> maxCPM ist ein Absolutwert
-> baseCPM ist ein relativer Wert
Muss ich mal durchgucken.
(Falscher Alarm - baseValue ist schon ein TKP, also auch absolut)
bye
Ron
@ Danny... die beschriebene Schere bezieht sich auf die aktuelle Prämienentwicklung mit steigender Reichweite. Die prozentuale Steigerung sorgt mE dafür, das die Prämien zu schnell steigen, was ich mit den Vergleichszahlen zum Startsendemast veranschaulichen versuchte.
Mit geringerem Prämienanstieg würde das in "Deinem Fall" bedeuten, dass das Limit 19x1 Mio Einnahme erst zu einem späteren Zeitpunkt (noch mehr Reichweite) erreicht wäre.
Muß jetzt erstmal erheblich Mittagessen kochen.
@Ratz: ich weiß nicht 100% was du meinst.
Da ich pro Tag mehr einnehme als ich ausgeben kann wird die Schere wohl nie wieder zusammen gehen...
(Anfang Tag 47)
Der Ertrag ist "klar" Definiert, da man im akt. (gedeckelten) Werbesystem pro Tag: 19x1Mio Werbeeinnahmen (6Uhr bis 1Uhr) + 3x ~500k + 2x ~250k
-> ~22Mio WerbeEinnahmen / Tag hat.
Dagegen stehen ~3Mio Fixkosten im alten Sendemastsystem (bzw 8 Mio im teureren)
Gewinn / Tag ~19Mio (14Mio) ... welche man im Spiel nicht mehr ausgegeben bekommt.
Der momentane Anstieg sollte dafuer sorgen, dass der Profitzuwachs im Endgame geringer ausfaellt, also ab einem gewissen Punkt nahezu kein Zuwachs mehr stattfindet (sowas wie ein Pareto-Optimum).
Wo der "Senfgeber" steckt weiss ich nicht. Das Tool ist insofern fertig dass es mir eine CSV ausspuckt. Zu mehr kam ich auf Grund der anderen Dinge (Bugfixes und so) noch nicht.
Wenn wir einen linearen Ansatz waehlten, muesste der Anstieg so zu waehlen sein, dass die Werte fuer die ersten Reichweiten sehr aehnlich zu den derzeitigen Werten waeren, da Gast2 das Balancing ja daran orientiert hat.
Ein grosses Problem, meiner Meinung nach, stellen andere Senderkarten dar. Wenn die USA-Karte kaeme, waere der Profit ja enorm hoeher und in Finnland liesse sich kein gruener Zweig verdienen.
Der nichtlineare Anstieg geht prozentual vor..
Gleiches muesste also auch der lineare bewerkstelligen und er benoetigt dann ebenfalls eine Art Maximalwert der fuer diese Sendekarte erwirtschaftbar ist. Also 50% Aller Einwohner angefordert = 50% des gesetzten Maxima (plusminus eventueller Mods..die einen Werbevertrag gut oder schlechter machen).
Bye
Ron
Mit Bezug auf den letzten Beitrag, muß für mich irgendwann mal die Stunde kommen an dem ich der gordische Knoten platzt und ich hinter die Anwenderoberfläche blicke.
Da ich den lieben langen Tag eine Datenbank hege und pflege geht mir das abends aber eben nach wie vor noch ab.
Da Du von einem Tool schrobtest, welches die Prämien-Entwicklung mit steigender Reichweite dokumentiert, hielt ich weiteres Geschreibsel für überflüssig, zumal der Kopf in dieser Sache, gerade auch keinen Senf beisteuert.
Fakt: Mit relativer Einigkeit in der Userschaft ist zuviel Geld ab dem Midgame vorhanden. Kanäle zu finden die es wieder verschwinden lassen, wurden im Sendemastenstrang bereits kontrovers diskutiert.
Ich plädiere dafür, den monetären Überschuss gar nicht erst einfließen zu lassen, ergo die Prämienzahlungen der Werbeverträge "einzudampfen".
Revolutionäre oder gar komplexe Gedanken sind dabei m. E. gar nicht nötig, da die Prämien anscheinend stärker steigen als die Erhöhung der Reichweite.
Prämienentwicklung bis 4,99 Mio.:
39.000 Zuschaueranforderung = 60.000 pro Spot (Siggis...)
65.000 Zuschaueranforderung = 70.000 pro Spot (Dörrobst...)
Prämienvergleich mit Startsendemast:
120.000 Zuschaueranforderung = 60.000 pro Spot (Wackeldackel)
70.000 Zuschaueranforderung = 44.000 pro Spot (TV-Bunker)
Anhand dieser Zahlen verfolge ich den banalen Ansatz den Prämienanstieg/ die Entwicklung linear ablaufen zu lassen.
@ Danny: Geht die Ertragsschere ab einem bestimmten Reichweitenzeitpunkt wieder zu oder klafft die Schere noch weiter auf?
Gewünscht/ linear, in Zahlen:
240.000 Zuschaueranforderung = 120.000 pro Spot (Wackeldackel)
140.000 Zuschaueranforderung = 88.000 pro Spot (TV-Bunker)
etc. pp.
Ich sehe gerade auch keinen plausiblen Grund, warum die Vergütung schneller steigen sollte als die Leistung, die dafür erbracht werden muß.
Bestenfalls ist das eine einfache und praktikable Möglichkeit die (Über-)Dosis des schnöden Mammons einzudämmen.
Ich habe jetzt eine Moeglichkeit integriert, das Werbelimit in der "DEV.xml" hochzudrehen.
<!-- limit of profit/penalty for a single spot of an advertisement -->
<!--
<DEV_MAXADCONTRACTPRICEPERSPOT value="1000000" />
-->
Die "<!--" und "-->" um das "<DEV... />" entfernen und den gewuenschten Betrag einstellen.
DEV.xml-Werte werden bei Start des Programmes eingelesen (nicht fuer jeden "Neues Spiel"). Koennten wir aber auch aendern. Ist halt erstmal ein "Schnellschuss".
Entsprechender DevPatch kommt gleich.
bye
Ron