Du bist nicht angemeldet.

#1 Re: Downloads + Anleitungen » TVTower - Aktuelle Version v0.6.1 [Stand: 25.06.2018 22:29 Uhr] » Gestern 10:17

Leg Dir einfach eine Verknuepfung zu TVTower auf den Desktop ... dann stolperst Du haeufiger drueber ;-)


bye
Ron

#2 Re: Downloads + Anleitungen » TVTower - Aktuelle Version v0.6.1 [Stand: 25.06.2018 22:29 Uhr] » 19.07.2019 12:20

Auch mal wieder da sushi ... fein fein.

Hoffe ihr seid dann alle am Start und bringt Leben in die Forenbude - Motivatiosschuebe :-)


bye
Ron

#3 Re: Downloads + Anleitungen » TVTower - Aktuelle Version v0.6.1 [Stand: 25.06.2018 22:29 Uhr] » 18.07.2019 09:03

@ KI:
Habe dennoch einiges an der KI zu ueberarbeiten. Einige Teile der Programmplanlogik enthielten kleinere Fehler: "Programm A nach Programm A"-Ausstrahlung sollte waehrend der Optimierung entfernt werden - klappte nicht. Auch wurden Dauerwerbesendungen, wenn einmal platziert, nur dann ausgetauscht, wenn ein Vorprogramm (nicht DW) ausgetauscht und somit Folgeslots betroffen waren.

Kurzum: Das lief nicht komplett so wie angedacht.


Entsprechend habe ich die Funktion umgeschrieben, hoffentlich effizienter gestaltet (gestrafft, Ballast abgeworfen ...).
Da die Programmplanung CPU-intensiv (zumindest per "Skript") ist, war dieses Umarbeiten so oder so noetig (und _ist_ es sicher immer noch).


Ich werde der KI noch rudimentaer beibringen, theoretische Aktualitaetsabnutzungen einzubeziehen, sie schaetzt also die Quoten fuer "Film A 18 Uhr" und weiss dann, welche Aktualitaet er womoeglich fuer den 23 Uhr-Slot noch haette.
Das soll vermeiden, dass die KI 16 Uhr einen Film sendet und 20 Uhr erneut - mit dann zu wenig Quote und somit eventuellen Werbefehlschlaegen. Zwar wuerde die KI die Werbung (und oder auch das Programm) anpassen, wenn es 19 Uhr im Buero waere (und dann den Plan "optimiert" - sprich die aktuelle Aktualitaet kennt). Aber wie wir wissen, sind alle Figuren immer viel unterwegs und so schafft man es nicht immer rechtzeitig im Buero anzukommen.

Weiterhin ist "vorrausschauende Planung" wichtig, da mit ihr ja auch die Werbevertraege kommen und gehen. Wenn die KI schon weiss, dass sie fuer Abends einen Spot nicht braucht, erspart sie sich spaeter die Konventionalstrafe.



In meinen bisherigen Testlaeufen (noch ohne obige Verbesserungen) hatte die KI die ersten Tage eigentlich kaum Strafen zu zahlen. Viel mehr sendete sie suboptimale Werbung (weil "war da und musste bald abgeschlossen werden"). Vielleicht ist das also gar nicht so "optimierungswuetig" anzugehen und viel mehr muss die Werbevertragsauswahl - und das Angebot durch den Makler - verbessert werden.
(Die KI war durchaus mit Senderkauf und positiven Bilanzen vertreten - kann aber gegen einen menschlichen Spieler anders aussehen).



Generell will ich aber einen "realistischeren" Programmplan sehen, abwechslungsreiche Abende, nachts und morgens Billigkram (DW, Wiederholungen, ...). Entsprechend bekam die KI nun auch einige Stellschrauben die wir "KI-Charakterspezifisch" anpassen koennten (manche sind mehr bereit DW auszuzstrahlen, manche machen dies nur zu Spielbeginn, ... etc.).



@ Dev
KI-Aenderungen benoetigen oft auch Anpassungen am Programmcode (Bereitstellung von Informationen, Funktionen ...). Wenn ich immer Zwischen-DEVs rausgebe, muss ich Speicherstaende kompatibel halten etc.
So kann ich halbwegs "ohne Ruecksicht auf Verluste" agieren.

Ich verstehe aber, dass es wirklich langsam an der Zeit fuer eine neue Version ist.


bye
Ron

#4 Re: Downloads + Anleitungen » TVTower - Aktuelle Version v0.6.1 [Stand: 25.06.2018 22:29 Uhr] » 17.07.2019 19:29

Copyright... Guck ich mal.


mindestImage ...naja, wir fuehren einfach ein maxImage ein und voila...von-bis erledigt. Einzelangaben waeren wenig sinnstiftend.


Zwecks "Mietmaul" haetten wir aber folgendes Problem: Spieler1 hat ein Image fuer Mietmaul 1, Spieler 2 eines fuer Mietmaul 2...
Der Makler koennte nun beide anbieten.

Das Problem haben "Jahresgrenzen" nicht.



Bye
Ron

#5 Re: Downloads + Anleitungen » TVTower - Aktuelle Version v0.6.1 [Stand: 25.06.2018 22:29 Uhr] » 14.07.2019 10:13

Ja ist geplant. Ueberarbeite aber derzeit noch die KI (Fixes und hoffentlich Verbesserungen).

Vorher kommt denke ich aber erst noch eine DevVersion.


Bye
Ron

#6 Re: Downloads + Anleitungen » TVTower - Aktuelle Version v0.6.1 [Stand: 25.06.2018 22:29 Uhr] » 11.07.2019 23:41

@ Mietmaul
Das Problem ist dort: es gibt keine "Obergrenzen" fuer die jeweilige Werbung. Einzig das minimal geforderte "Senderimage" steigt zwischen den 4 verschiedenen Werbevertraegen an.

Denke da muesste sich Gast2 mal reinhaengen und eine Loesung des Problems suchen.


bye
Ron

#7 Re: Downloads + Anleitungen » TVTower - Aktuelle Version v0.6.1 [Stand: 25.06.2018 22:29 Uhr] » 11.07.2019 17:50

@ Mietmaul
Schau ich mir noch an, es gibt verschiedene - die sich aber "ersetzen" sollten. Also die sind fuer verschiedene Spieljahre gedacht (Stichwort "Internet").


@ Ballsport
Ja, beim Ballsport ist halt "einmal die Grundsimulation/Spiellogik implementiert, fuer viele geeignet". Formel 1 waere eine andere Spiellogik - denn vergiss nicht, es wird ja alles ein bisschen "simuliert" (Spieler mit Spielstaerken bestimmen Teamstaerke - Teamstaerke beeinflusst Ergebnisse). Bei Formel 1 (oder aehnlichem) gaebe es sicher auch Dinge zu beachten. Aus Formel 1 koennte man auch Nascar / DTM ... stricken. Rennsport halt.

Generell aber ja - eine Erweiterung waere (spaeter) vielleicht ganz schick: Stichwort "Sportwetten".



@ Updates
Habe die Texte der Werbebloecke ueberarbeitet und auch die Datenblaetter fuer "abgelaufene" Werbevertraege zeigen nun keine unnuetzen Texte mehr an.

kOs209H.png


bye
Ron

#8 Re: Diskussionen - Teamgeleitet » KI » 10.07.2019 18:54

Du kannst ja einfach meine Beitraege und "drauf antwortende Beitraege" rauspfluecken ;-).

Ich scheue halt manches Mal einfach den Mehraufwand "bezug nehmend auf Beitrag X in Thread Y hier meine Replik"-Threads zu starten.


bye
Ron

#9 Re: Downloads + Anleitungen » TVTower - Aktuelle Version v0.6.1 [Stand: 25.06.2018 22:29 Uhr] » 10.07.2019 17:11

Danke Olby1980 fuer Dein Feedback.

Ja Live-Programme "vorproduzieren" ist an sich auch moeglich - waere sozusagen die "Austragungs-Vorbereitung".
Eventuell koennte ueberlegt werden, dass die erste Ausstrahlung einer Sendung XYZ Euro kostet - entsprechend koennte dann die Live-Ausstrahlung so konfiguriert werden und die "Eigenproduktion" ist dann die Vorbereitung, waehrend die Ausstrahlung dann noch Extra kostet.



@ Basketball und Handball
Ja, ist alles moeglich, nur wird es dann doch sehr viel mit den Uebertragungen.
Eventuell koennte man das aber so umgehen, dass Nachrichten kommen: "DDF -
Drittes Deutsches Fernsehen - ersteigert Fussballlizenzen fuer 1987 - Ausstrahlung exklusiv".


bye
Ron

#10 Re: Diskussionen - Teamgeleitet » KI » 07.07.2019 14:59

Derzeit sind einige Funktionen die fuer eine KI in "Threads" von mir genutzt wuerden, noch nicht "thread-safe" (hier die "Reflexion" die es ermoeglicht aus Texten wie "TProgrammeLicence" auf die entsprechend genannte Klasse im Code zuzugreifen).


Entsprechend liegt das Projekt "Threaded AI" erstmal auf Eis und ich konzentriere mich auf die Optimierung der genutzten Prozessorzeiten und generell ein paar Verbesserungen in der KI.

bye
Ron

#11 Re: Downloads + Anleitungen » TVTower - Aktuelle Version v0.6.1 [Stand: 25.06.2018 22:29 Uhr] » 07.07.2019 13:28

Ich bin mir jetzt nicht ganz sicher ... aber ich glaube ich habe beim Ueberarbeiten der KI einen kleinen Fehler mit grossen Auswirkungen gefunden.


Vor vielen Jahren schrieb Manuel / STARSCrazy an der KI ... und erstellte einen Codeblock (in Teilen von mir schon erweitert). Aber grundliegend so seit spaetestens 2013:

_G["StatisticEvaluator"] = class(SLFDataObject, function(c)
	SLFDataObject.init(c)	-- must init base!
	c.MinValue = -1
	c.AverageValue = -1
	c.MaxValue = -1
	c.CurrentValue = -1

	c.MinValueTemp = 100000000000000
	c.AverageValueTemp = -1
	c.MaxValueTemp = -1

	c.TotalSum = 0
	c.Values = 0
	c.adjustTimes = 0
end)

function StatisticEvaluator:typename()
	return "StatisticEvaluator"
end


function StatisticEvaluator:Adjust()
	self.MinValueTemp = 100000000000000
	self.AverageValueTemp = -1
	self.MaxValueTemp = -1
	-- if used "before Adjust()" already, set Values to 1, so it
	-- takes the old value into account when calculating the average
	-- (1*old + x*new) / (1+x)
	if self.Values > 0 then
		self.Values = 1
	end
	-- do not reset "CurrentValue"!
	--self.CurrentValue = -1

	self.adjustTimes = self.adjustTimes + 1
end


function StatisticEvaluator:AddValue(value)
if value == nil then
	debugMsg("########## StatisticEvaluator:AddValue - NIL VALUE #############")
	return
end

	self.Values = self.Values + 1

	if value < self.MinValueTemp then
		self.MinValue = value
		self.MinValueTemp = value
	end
	if value > self.MaxValueTemp then
		self.MaxValue = value
		self.MaxValueTemp = value
	end

	self.CurrentValue = value
	self.TotalSum = self.TotalSum + value
	--self.AverageValueTemp = math.round(self.TotalSum / self.Values, 0)
	-- keep up to 3 decimals
	self.AverageValueTemp = math.round(self.TotalSum / self.Values, 3)
	self.AverageValue = self.AverageValueTemp
end

(aus "AIEngine.lua").


Sieht ja irgendwie ganz gut aus oder?
Die Funktion "Adjust()" muss immer dann aufgerufen werden, wenn bisherig hinzugefuegte Werte zusammenzufassen sind . Kurzum: Die KI ruft dies beim Tageswechsel auf:

function BusinessStats:Initialize()
	self.Audience = StatisticEvaluator()
	self.BroadcastStatistics = BroadcastStatistics()
	self.SpotProfit = StatisticEvaluator()
	self.SpotProfitPerSpot = StatisticEvaluator()
	self.SpotProfitPerSpotAcceptable = StatisticEvaluator()
	self.SpotPenalty = StatisticEvaluator()
	self.MoviePricePerBlockAcceptable = StatisticEvaluator()
	self.SeriesPricePerBlockAcceptable = StatisticEvaluator()
	self.MovieQualityAcceptable = StatisticEvaluator()
	self.SeriesQualityAcceptable = StatisticEvaluator()
[..]
end

Wir sehen also, diese Funktionen werden fuer Zuschauerwerte, Werbegewinne, ... herangezogen.
Da die Stellen im Code nicht kommentiert sind, musste ich nun Vermutungen anstellen, was genau passieren sollte.
Meine Vermutung war nun, dass beim Aufruf von "Adjust()" alle bisherigen Werte zusammenzufassen sind und als einzelner Wert mit in neue Berechnungen eingehen.
Sozusagen kein "gleitender Wert" aber zumindest ein Wert der einen Bruchteil des Vortagesergebnisses mit in seine Ueberlegungen einbezieht.
Man koennte das also entsprechend spaeter auch aufbohren, so dass flexibel konfigurierte gleitende Werte moeglich sind ("Gestern geht zu 75% ein, Vorgestern zu 25%").


Hier mal Ausgaben fuer meinen neuen Code, und den alten:

## NEUER CODE ##
run #1
  added 1.  AverageValue=1  minValue=1  maxValue=1  TotalSum=1  CurrentValue=1  Values=1
  added 3.  AverageValue=2  minValue=1  maxValue=3  TotalSum=4  CurrentValue=3  Values=2
  added 5.  AverageValue=3  minValue=1  maxValue=5  TotalSum=9  CurrentValue=5  Values=3
Adjust()    AverageValue=3  minValue=3  maxValue=3  TotalSum=3  CurrentValue=5  Values=1

run #2
  added 1.  AverageValue=2  minValue=1  maxValue=3  TotalSum=4  CurrentValue=1  Values=2
  added 3.  AverageValue=2.333  minValue=1  maxValue=3  TotalSum=7  CurrentValue=3  Values=3
  added 5.  AverageValue=3  minValue=1  maxValue=5  TotalSum=12  CurrentValue=5  Values=4
Adjust()    AverageValue=3  minValue=3  maxValue=3  TotalSum=3  CurrentValue=5  Values=1

run #3
  added 1.  AverageValue=2  minValue=1  maxValue=3  TotalSum=4  CurrentValue=1  Values=2
  added 3.  AverageValue=2.333  minValue=1  maxValue=3  TotalSum=7  CurrentValue=3  Values=3
  added 5.  AverageValue=3  minValue=1  maxValue=5  TotalSum=12  CurrentValue=5  Values=4
Adjust()    AverageValue=3  minValue=3  maxValue=3  TotalSum=3  CurrentValue=5  Values=1

run #4
  added 1.  AverageValue=2  minValue=1  maxValue=3  TotalSum=4  CurrentValue=1  Values=2
  added 3.  AverageValue=2.333  minValue=1  maxValue=3  TotalSum=7  CurrentValue=3  Values=3
  added 5.  AverageValue=3  minValue=1  maxValue=5  TotalSum=12  CurrentValue=5  Values=4
Adjust()    AverageValue=3  minValue=3  maxValue=3  TotalSum=3  CurrentValue=5  Values=1




## ALTER CODE ##
run #1
  added 1.  AverageValue=1  minValue=1  maxValue=1  TotalSum=1  CurrentValue=1  Values=1
  added 3.  AverageValue=2  minValue=1  maxValue=3  TotalSum=4  CurrentValue=3  Values=2
  added 5.  AverageValue=3  minValue=1  maxValue=5  TotalSum=9  CurrentValue=5  Values=3
Adjust()    AverageValue=3  minValue=1  maxValue=5  TotalSum=9  CurrentValue=5  Values=1

run #2
  added 1.  AverageValue=5  minValue=1  maxValue=1  TotalSum=10  CurrentValue=1  Values=2
  added 3.  AverageValue=4.333  minValue=1  maxValue=3  TotalSum=13  CurrentValue=3  Values=3
  added 5.  AverageValue=4.5  minValue=1  maxValue=5  TotalSum=18  CurrentValue=5  Values=4
Adjust()    AverageValue=4.5  minValue=1  maxValue=5  TotalSum=18  CurrentValue=5  Values=1

run #3
  added 1.  AverageValue=9.5  minValue=1  maxValue=1  TotalSum=19  CurrentValue=1  Values=2
  added 3.  AverageValue=7.333  minValue=1  maxValue=3  TotalSum=22  CurrentValue=3  Values=3
  added 5.  AverageValue=6.75  minValue=1  maxValue=5  TotalSum=27  CurrentValue=5  Values=4
Adjust()    AverageValue=6.75  minValue=1  maxValue=5  TotalSum=27  CurrentValue=5  Values=1

run #4
  added 1.  AverageValue=14  minValue=1  maxValue=1  TotalSum=28  CurrentValue=1  Values=2
  added 3.  AverageValue=10.333  minValue=1  maxValue=3  TotalSum=31  CurrentValue=3  Values=3
  added 5.  AverageValue=9  minValue=1  maxValue=5  TotalSum=36  CurrentValue=5  Values=4
Adjust()    AverageValue=9  minValue=1  maxValue=5  TotalSum=36  CurrentValue=5  Values=1

In allen Beispielen fuegte ich die Zahlen 1, 3 und 5 hinzu. Der Durchschnittswert im alten Code steigt immer weiter an - er wurde nie zurueckgesetzt. Natuerlich kommt dann mathematischer Quatsch raus (Durchschnitt von 14 bei Werten von 1 - 5 ...).




Welche Auswirkungen hatte der Bug?
Die KI vermutete andere Zuschauerzahlen.
Die KI vermutete andere Programmqualitaeten bei der Konkurrenz.
Die KI empfand andere Lizenzen als lohnenswert (bzw dank "min/max"-Limit dann einfach alle "gleich gut").
die KI empfand andere Werbevertraege ... siehe Programmlizenzen.



Also wenn ich mich jetzt nicht voll in die Nesseln gesetzt habe und den Code von STARSCrazy vollendes missverstanden haben sollte, dann ist es ein kleiner Bug (eine handvoll Codezeilen) mit grossen Auswirkungen je weiter das Spiel fortgeschritten war (jeder Spieltag erhoehte den "AverageValue"-Wert ... bis irgendwann kuenstliche Filter/Limits den Wert einschraenkten).



Jetzt erstmal probespielen, was sich dadurch so aendert ;-)



bye
Ron

#12 Re: Downloads + Anleitungen » TVTower - Aktuelle Version v0.6.1 [Stand: 25.06.2018 22:29 Uhr] » 03.07.2019 23:48

Hallo DerFronck,

schoen, dass so mancher (mittlerweile) alter Hase immer wieder hier auftaucht ;-)


Fuehl Dich wie immer Willkommen und bringe Dich mit ein.



@ dirkw
Deine ersten Tage sehen aus wie die der KI: Programme A, B und C in nahezu-Dauerschleife - bis sie abgenudelt sind und dann in den Verkauf gehen.

Ich kann mir vorstellen, dass dieser "schwere Start" der KI auch ein wenig Schuetzenhilfe gibt ?


bye
Ron

#13 Re: Downloads + Anleitungen » TVTower - Aktuelle Version v0.6.1 [Stand: 25.06.2018 22:29 Uhr] » 30.06.2019 13:47

@ Terror und das Erdgeschoss
Das sollte in den Dev-Versionen eigentlich weniger oft passieren.


@ Zielgruppenwerbung
Ja, das kann sie an sich.


@ Rest
Ja, die KI ist halt "rudimentaer" - gibt ja einiges an Spielfunktionen, was sie koennen muss - und solange das Balancing nicht "halbfinal" ist, aendert sich halt immer wieder was und die KI rutscht vielleicht genau deswegen in die Pleite obwohl sie andere Stellen besser macht als zuvor.
Man muesste wohl die Protokolle analysisieren ...


bye
Ron

#14 Re: Downloads + Anleitungen » TVTower - Aktuelle Version v0.6.1 [Stand: 25.06.2018 22:29 Uhr] » 30.06.2019 12:25

@ KI-Pleiten
Geht eine KI-Pleite, so startet (das ist optional und per Schalter deaktivierbar) die Folge-KI mit einem an die anderen Spieler angepasstem Finanzpolster

			'- fetch average broadcast area
			'- add all stations to a list and merge "similar ones"
			'- shuffle them so there is a "random list" to traverse through
			'- select stations from that list to a new one
			'  - if there is no station "near it" in the new list already
			'  - until "average broadcast area" is reached
			'  - if list end is reached before: add some random stations
			'    until avg is reached

Grob gesagt bekommt die KI einen (mit zwei Multiplikatoren veraenderbaren) dem Schnitt entsprechenden Sendemasten-Park vorgesetzt - und die sofern moeglich nahe der Sendemasten anderer Spieler (erhoeht die Konkurrenz). Derzeit ist der Multiplikator bei "1.0"


Weiterhin wird bei einem solchen "Neuer Sender"-Ereignis der Durchschnitt aus "Geld + Lizenzerloese" aller Spieler ermittelt und mit einem Faktor multipliziert. Dieser Wert (falls hoeher als das normale "Startgeld") wird als das neue "Startgeld" genutzt.



@ Schrottfilme
Ja, da muessen wir mal schauen woran das liegt, hab da so ein paar "Funktionen" im Verdacht - und war da ja gestern schon mal kurz drueber aber das gute Wetter ... :-)


@ Werbemakler
Ja die Angebote sind nicht immer optimal (dev.xml -> anderen Angebotsmodus aktivieren). Dazu gibt es ja schon einen eigenen Diskussionsstrang (Gast2's Modus versus meinem Angebotserstellalgorithmus).


@ Reichweiten
Die Reichweiten sind - ich wiederhole mich hier sicher schon zum 10. Male (ueber verschiedene Threads verteilt) - immer relativ gesehen.
Der Vertrag sagt "10% Deiner maximalen Reichweite". Hat ein Spieler 10 Millionen Reichweite, dann zeigt es "mindestens 1.000.000 Zuschauer" an. Hat man 25 Millionen Reichweite, dann eben "mindestens 2.500.000 Zuschauer".

Unterzeichnet man einen Vertrag, so wird aus den relativen "10%" der Fixwert ("1.000.000" oder eben "2.500.000"). Das ist in Anlehnung an Mad TV so gestaltet. Denn nun ermoeglicht dieses Vorgehen, einen Vertrag auch mit schlechterem Programm oder "Block 3/3" erfuellen zu koennen: Neue Sendemasten kaufen und dank erhoehter Reichweite sind zwar vielleicht nur 8% Reichweite erfuellt, aber in absoluten Zahlen die "1.000.000" uebertroffen.


Der Werbemakler orientiert sich in seinen Angeboten an den relativen Reichweiten (also die "10%") und sucht entsprechende Werbung raus - je nach Angebotsmodus (siehe oben). Mein Vorgehen war immer: 4 Werbevertraege orientiert an Nacht/Tag/Primetime des schlechtesten Senders, 8 fuer den Durchschnitt und 4 fuer den besten Sender. Bei Gast2s Vorgehen sieht der Algorithmus etwas anders aus (im entsprechenden Thread gut dargelegt).

Insgesamt sorgt die "Primetime, Tageszeit, Nachtzeit" Kategorisierung fuer eine eigentlich praktikable Unterteilung - wenn aber nun zur Nachmittagszeit schon Blockbuster verheizt werden, so erreicht man dort schon gute relative Reichweiten und sorgt so fuer unpassende Angebote - gleiches fuer andere Ausrutscher.
Da hilft dann auch kein gleitender Durchschnitt - und da wir nur 4 Sender haben, koennen wir auch keine "Ausreisser" entfernen.



@ Zweiter Makler
Ich wuerde das ungern als reinen Werbemakler sehen. Viel eher wuerde ich gern etwas wie das "Wettbuero" etablieren: Fussballtoto (Ausnutzen der im Spiel bereits laufenden Fussball/Sportsimulationen), Sportuebertragungen (statt beim Filmmakler) und vielleicht auch sportbezogene Werbung (Addimash, Plima, Flia und natuerlich Hirschbock).

Warum das schoen waere? Nun, ich haette auch gern fuer fiktive Saenger/Bands (die bei Eigenproduktionen und Nachrichten eine Rolle spielen) dann ein aehnliches Zimmerlein: bei denen gibt es dann Konzertuebertragungen zu kaufen und man koennte sich die Charts angucken... und noch mehr.



@ KI-Probleme
Du muesstest mal beobachten (STRG + TAB -- und dann mittels TV-Kanalbuttons auch die Sender auswaehlbar), wie die Geldstrafen/einnahmen der KI aussehen (mittig unten gibt es ein paar Zahlenwerte dazu). Ich vermute fuer die meisten KI-Pleiten sind Konventionalstrafen zustaendig.

Entweder ist die KI zu optimistisch bezueglich Einschaltquoten oder sie kommt zu selten dazu, die Werbung zu korrigieren (langsame Fahrstuehle oder so - wie gesagt, bei Mad TV brauchten die Figuren ja meines Erachtens nach nicht wirklich in die Raeume laufen, da gab es dererlei Engpaesse nicht).
Trifft vor allem dann ein, wenn der menschliche Spieler sich wieder mal ewig bei den Maklern (Werbung, Filme, ...) herumtreibt und somit der KI keine Chance gibt.

Wenn ihr das ausprobieren wollt, so stellt einfach mal den Spieler auch auf KI (gern in einem Speicherstand, bei dem Ihr schon gutes Image, Programmpolster,. .. habt) und schaut der KI und ihren Kontrahenten mal zu:
an: (enter) /dev playerai 1 1 (enter)
aus: (enter) /dev playerai 1 0 (enter)


bye
Ron

#15 Re: Diskussionen - Teamgeleitet » Spieldesign: "Im Trend" » 29.06.2019 12:21

Hmm, der Chef koennte in "Zufallsabstaenden" (wenn gerade kein Sammy ansteht) ja mitteilen, dass er so guetig war und eine kleine Umfrage finanzierte ...


bye
Ron

#16 Re: Downloads + Anleitungen » TVTower - Aktuelle Version v0.6.1 [Stand: 25.06.2018 22:29 Uhr] » 29.06.2019 11:18

@ Kieferer
Ich muss FireCracker zu Gute halten, dass er Dank meiner "Anstachelung" doch mal umfangreicher geantwortet hat.
Aus diesem Beitraeg laesst sich dadurch ein wenig Information ziehen, was er am Spiel nicht toll findet.


@ FireCracker
Ich kann derzeit einfach nicht so viel Zeit in das Spiel investieren, da hier Kinder herumwuseln die einen grossen Batzen der "Tageszeit" auffuttern.
Weiterhin ist fuer mich die Motivation dadurch vorhanden (oder nicht), dass hier im Forum (oder Facebook oder EMail oder...) diskutiert, Ideen ausgetauscht oder Fehler gemeldet werden. Das geschieht die letzten Monate eher weniger (sicher auch ein Henne-Ei-Problem).
Fuer die paar Tausend "anonymer Spieler" ein Spiel zu programmieren / gestalten kann in gewissem Rahmen Spass bringen - viel lieber mache ich das aber fuer die Jungs (und Maedels) die sich bemuehen auch mal ein paar Worte zum Spiel zu verlieren - denn das bringt ja das Spiel erst voran.


Nun zu Deinen Punkten:

@ KI und Sendestationen
Die KI bewertet Sendemasten, Satelliten, Kabelnetze nach ihrem Potential: Was bekomme ich fuer X Zuschauer. Diese Wertung sorgt dafuer, dass sie das fuer sie beste Objekt erwirbt oder mietet.

Natuerlich unterliegt die Berechnung bestimmten Annahmen: Vor allem hier die Gewichtung von Miete (Satellitenuplink und Kabelnetzanbindung) gegen den Einmalkaufpreis der Sendemasten.

Auch kann jede KI fuer sich ihr Budget anders verteilen - sprich nicht jede KI knappst von ihrem Geld die gleiche Menge ab um irgendwann Sendestationen ranzuholen.

Wenn die KI dann noch im Hintertreffen war, dann ist es fuer sie um so schwerer an Geld ranzukommen - und aufzuholen.
Ist aber jetzt auch nicht schlimmm, da ein Spiel ueber die Laufzeit von 20 Jahren (oder 15) vielleicht gar nicht angedacht sein sollte. Immerhin waere Betty dann schon lange im "Kumpelmodus" und von Hochzeit nicht mehr zu reden ;-)


Weiter ist fraglich, wieso Du die KI in TVTower bemaengelst - es aber ja als "Remake" von Mad TV siehst. Dessen KI waere also auf gleichem Niveau zu kritisieren.
Die Computergegner in Mad TV haben sich aber ja nun auch nicht mit Ruhm bekleckert. Auch ist es ein leichtes, der KI bessere Quoten zuzuschustern - nur gibt's das bei TVTower nicht. Ob KI oder Mensch, jeder hat die gleichen Moeglichkeiten und auch Anforderungen. Bei Mad TV ist meines Erachtens nach kein Raumbesuch erforderlich auch ist fraglich ob die KI aus der gleichen Filmauswahl raussuchen muss oder wie ihr sonst noch unter die Arme gegriffen wird.



@ Fazit und Kritik
Es geht um die Worte. Ich verlange hier keine Sandwichmethode (Lob, Kritik, Lob) aber hier ein paar Zeilen "hinzuschreiben" und sie einzuleiten mit "Sehr schlechtes Remake!" zeugt nicht davon, dass es Dein Anliegen ist, den Zustand des Spiels zu verbessern/aendern.
Dir geht es da einfach nur darum mich als Entwickler als "zu bloed ein ordentliches Spiel zu machen" hinzustellen. Und das ist, was mir sauer aufstoesst.
Ich verlange keineswegs kritiktechnisch mit Samthandschuhen angefasst zu werden. Halbwegs "sachlich" vorgetragene Kritikpunkte sind mir lieber als nur Lobhudelei. Wie gesagt sind es ja Fehlermeldungen, Diskussionen und auch Kritiken an Spielelementen das, was am Ende zu einer Weiterentwicklung fuehrt - vielleicht auch in die Richtung der Kritiker.



@ Ein Jahr seit letzter Version
Hier gibt es genuegend Entwicklerversionen fuer "ganz interessierte". Und mit der neuen Version macht dann die KI auch obig beschriebenes Verhalten (Satellitenuplinkanmietung etc).
Vielleicht probierst Du mal eine der aktuellen Fassungen - vielleicht ist die KI dort ein wenig besser.


@ KI
Die KI kann einfach noch nicht alle Spielfunktionen nutzen - da ja eh noch einige Spielfunktionen fehlen und vor allem weil noch einiges an Balancing zu erledigen ist.

Wir haben auch einige Threads zum Thema "Spielweise" - die Spielweise anderer koennte helfen der KI einige dieser Spielertricks beizubringen (die sie optional nutzen koennen).

Auch hier ist aber zu erwaehnen, dass ich die KI schreibe - und wenn ich an der KI drehe, kann ich an diesem Abend nicht am Spiel selbst programmieren.
Wenn ich nicht am Spiel arbeite, kommen aber auch andere hier aktive Nutzer und woellten doch gern einen Spieleditor - Editoren mit viel interaktiver Funktionalitaet sind allerdings auch nicht an einem Wochenende herunterprogrammiert. Vor allem nicht, wenn man wie wir bei TVTower sehr dynamische Spielobjekte erstellen kann (Also das ein Film Nachrichten ausloest, dass eine Nachricht Schauspieler bekannter macht, ...).



@ Original verdient so ein Tribute nicht
Dann verdient es das eben nicht. Viel Spass mit Mud TV und wie die anderen TV-Simulationsspiele alle heissen.
Ich kenne _kein_ anderes an Mad TV "angelehntes/sich orientierendes" Spiel was so offen auf Spielerwuensche eingeht, was so Spieler an der Entwicklung beteiligen laesst und noch einiges mehr.


@ Trailer
Die Trailer sind auch eine Art von Notnagel - denn ein Chef kann sich doch ueber Sendeausfall aufregen. Er verliert dann ein wenig die Geduld - und zumindest derzeit die Motivation Kredite zu verteilen. Spaeter koennte dies auch zum Rauswurf fuehren.
Entsprechend ist die KI so angelegt, dass sie zumindest irgendwas sendet. Und wenn die KI keine passende Werbung hat (und auch keine beim Makler findet), dann sendet sie eben Trailer.

Nichtsdestotrotz ist die Programmgestaltung seit einigen Tagen von mir in Ueberarbeitung (da sie sehr CPU-intensiv ist - und vielleicht auch verbesserungs/-aenderungswuerdig).


@ Verlierst Du nur noch Zuschauer
Hast Du Satelliten? Bist Du bei ALLEN Satelliten eingebucht?
Nutzer wechseln Satelliten (besserer Empfang, bessere "Technik" ...). Entsprechend schwinden deine Zuschauerzahlen (oder koennen auch steigen).


Das die KI nicht mithaelt ist ein bekanntes Problem - Endgame und "Balancing" sind hier noch Baustellen.

Deswegen sind Erfahrungen von "Langspiel"-Spielern wichtig - ab welchem Zeitpunkt es zu leicht wird, ob man kuenstliche Schwierigkeiten einbauen sollte ("Rattengift im Archiv zerstoert 4 Deiner Filme").

Kannst Dich dazu ja gerne aeussern.


Denn trotz Deiner Unkerei scheinst Du ja nicht nur 10 Minuten gespielt - sondern mehrere Stunden im Spiel verbracht zu haben.



PS: Sarkasmus und Zynismus habe ich in meinem Vorpost nicht gekennzeichnet - lies den ersten Absatz - unter dieser Praemisse - durchaus erneut ;-)


bye
Ron

#17 Re: Diskussionen - Teamgeleitet » Spieldesign: "Im Trend" » 28.06.2019 12:10

Die letzten Dev-Versionen beinhalten schon die Funktionalitaet um aktuelle Senderimages (Zielgruppen und Lobbygruppierungen) zu archivieren.

Das Archivieren von Trends (Programmgenre / Flags) koennte auf die gleiche Art und Weise umgesetzt werden.


Auch die Grundzuege fuer die Darstellung im neuen Statistikbereich sind schon geschaffen - da fehlt aber noch einiges, vor allem dank der flexiblen Zeitabstaende ("Zoom"). Muss ja alles selbst programmiert werden ;(


Kurzum fehlt nur noch der Schritt, dass die Ausstrahlung einer Sendung den Effekt ausloesen kann, die aktuellen Imagewerte zu archivieren.
Es gaebe derzeit der Einfachheit halber keine Ungenauigkeiten sondern die exakten Werte zu diesem Zeitpunkt.
Die Ungenauigkeit waere also ein moegliches TODO fuer "spaeter mal".



Im Thread wurden ja diverse Moeglichkeiten angesprochen:
- "Im Trend" -> Offenbart Trendwerte von Genres und Flags ("FSK18", "Trash")
- "TED am Abend/Morgen" -> Offenbart Senderimage bei Zielgruppen und Lobbygruppierungen


Zusaetzlich koennte aller X Tage ja der Chef eine Umfrage starten?
Oder im Statistikbereich einen Button einbauen: "Umfrage fuer XX.000 Euro starten" (Preis abhaengig von der Sendergroesse?)?

Oder das Thema "Tageszeitung" waere nochmal aufgegriffen und dort kommt aller X Tage eine Umfrage zum Vorschein - neben "Top Quoten von gestern"-Berichten und anderem Krimskrams.


bye
Ron

#18 Re: Diskussionen - Teamgeleitet » Spieldesign: Sendezeiten, Bloecke und die Programmattraktivitaet » 28.06.2019 11:54

In diesem Thread (es war eigentlich vorher mal als Antwort im "aktuelle Versions"-Thread angedacht) koennt ihr gerne diskutieren, was ihr davon haltet ... und/oder Beispiele geben, wann ihr ein Programm einschalten/wegschalten wuerdet - oder garnicht erst einschalten:

- Programmende nach X Uhr ("Fruehstuecksfernsehen von 9-15 Uhr", Film von 22-3 Uhr)
- Programmstart vor X Uhr ("Film von 19-21 Uhr")

Denn wenn im Vorhinein klar ist, dass ein Film nicht zuende geguckt werden kann, schalten wohl weniger ein (Ausnahme, alle anderen Sender bringen auch so lange Filme ;-)).


Entsprechend sind solche "Fehler" in der Programmplanung eher mit einem Malus zur empfundenen Programmaattraktivitaet versehen. Fuer einen "Bonus" faellt mir jetzt kein Grund ein.


bye
Ron

#19 Diskussionen - Teamgeleitet » Spieldesign: Sendezeiten, Bloecke und die Programmattraktivitaet » 28.06.2019 11:49

Ronny
Antworten: 1

Was ich auch noch als kleine Idee im Kopf herumschwirren habe ist:

Die Blocklaenge eines Programmes sollte die empfundene Attraktivitaet beeinflussen: in Abhaengigkeit der Sendezeit.

- Filmende nach Mitternacht? Abzuege
- Filmbeginn vor Primetime aber Filmende in Primetime? Abzuege
- vormittags/nachmittags werden 1-Block-Sendungen bevorzugt (man hat nicht immer 2 Stunden "am Stueck" Zeit ...)
- Abends werden 2-3-Block-Sendungen bevorzugt


Das ganze muesste eigentlich sogar nach Zielgruppen unterteilt werden: Rentner und Manager bevorzugen kurze Sendungen, Arbeitslose haben auch nix gegen laengere Bloecke etc.


Ausnahmen waeren "Live-Programme" oder Programme die irgendwie "Kurzweilcharakter" habe (Eventuell koennte man denen einen "Flag" mitgeben oder einen "Mod" der den Zeitslot-Einfluss ausschaltet/abmildert - oder gar verstaerkt).
Warum? Nehmen wir die Fruehstuecksfernsehsendungen oder Mittagsmagazine. Die Inhalte dieser Sendungen wiederholen sich teils und generell sind die Inhalte nur wenige Minuten lang und man kann jederzeit dazuschalten oder -abschalten.


Das heisst, jedes Programm koennte einen Wert bekommen, der beschreibt wie "zusammenhaengend" die Sendebloecke sind. Je zusammenhaengender, desto wichtiger ist es, das Programm zu einer passenden Sendezeit zu bringen ("Filme abends oder am Wochenende").
Wir koennten somit individuell fuer jedes Programm (falls vom "Grundtyp" abweichend) definieren zu welchem Sehverhalten sie passt.
Dann koennten wir fuer die Uhrzeiten / Programmslots definieren, was fuer ein Sehverhalten da angenommen wird (vormittags: loses Program, abends Zusammenhaengendes, ...)


Waere natuerlich noch fraglich, ob man irgendwie in den Programmdatenblaettern die Information unterbringen muesste - oder ob man das aus dem "Gefuehl" heraus mitbekommt. Filme = zusammenhaengend, Trash-TV = lose, "Fruehstuecks-TV" = lose, ...

STARSCrazy hatte damals (2013) im Thread Spieldesign: Feedback und Hinweise zur Zuschauerberechnung die Fernsehfamilie in's Spiel gebracht. Vielleicht sollte sie indirekte Hinweise geben: "Genau zur richtigen Zeit", "Ganz schoen frueh fuer den Film", "Ich glaub ich schalt gleich weg").



Das interessante daran ist: Ein zusammenhaengendes Programm sollte es schwer haben "neue" Zuschauer ranzubekommen ("Film fing schon an"), egal ob da zur Folgestunde 5 Millionen neuer potentieller Zuschauer ihre TV-Kiste anschalten oder nicht.
Entsprechend wuerde durch den Einsatz eben obig beschriebener Programmeigenschaft der Effekt offensichtlich, dass man einen Film halt nicht 19 Uhr sondern 20 Uhr beginnt.


Fuer die KI wuerde das natuerlich ein harter Brocken (je nach Gewichtung / Einfluss dieses Aspektes) und sie muss das in ihre eigene Attaktivitaetsberechnung mit reinnehmen.


bye
Ron

#20 Re: Downloads + Anleitungen » TVTower - Aktuelle Version v0.6.1 [Stand: 25.06.2018 22:29 Uhr] » 28.06.2019 11:26

Die KI kann einfach noch keine Eigenproduktionen ;-)
Filmauktionen waeren denke ich machbar (rudimentaer) aber solange sie mit dem Grundprogramm noch nicht ordentlich Gewinne einfaehrt, sind die Baustellen noch anderweitig zu suchen.


@ Wiederholungen
Ich ueberarbeite ja derzeit eh die KI ein wenig (da sie an manchen Stellen viel CPU-Zeit verbraucht). Ich habe da bei der "was koennte ich zu dieser Zeit senden?"-Stelle schon ein bisschen herumgeschraubt - da ist aber noch einiges an Potential rauszuholen.

Weiterhin gab es einen Fehler bezueglich zu kaufender Filme. Die KI schaut was sie fuer Programme hat und schreibt sich sozusagen eine Einkaufsliste "Brauche einen Film mit der Qualitaet X-Y fuer Sendezeit xx:00". Brauchte sie die gleiche Qualitaet nochmal (andere Sendezeit), gab es einen neuen Eintrag in der Einkaufsliste.
Der Fehler war nun, dass sie beim Haendler dann einen passenden Film fuer "Eintrag 1" fand und kaufte. Danach wollte sie einen Film fuer "Eintrag 2" raussuchen ... und nahm ihre alte Liste zur Hilfe, auf der nun noch der vorherige Film eingetragen war. Kauf dieses Filmes schlug natuerlich fehl. Auf der Einkaufsliste werden aber nur gekaufte Filme korrekt die "Eintraege" entfernen ...
Der Fix korrigiert dies dahingehend, dass nun bei einem Filmhaendlerbesuch auch "Eintrag 2" (usw.) korrekt abgearbeitet werden koennen.

Dies koennte ein klein wenig den Wiederholungs"irrsinn" abmildern. Mehr Einfluss hat aber natuerlich obig beschriebene "was koennte passen"-Funktion.

Eventuell sollte ich an dieser Stelle ("kein passendes Programm gefunden") die besagte Einkaufsliste erweitern ...


Weiterhin hat hier noch eine andere Funktion Einfluss: die Programmplanoptimierung. Die Optimierung schaut sich an, was an diesem Slot am Besten (nach _jetzigem Wissenstand) reinpassen koennte. Hier werden dann fuer Prime-Time schon Werbesendungen abgeschwaecht usw.


Generell koennten wir der KI beibringen, dass "vormittags/nachmittags" andere Programmgenre vorzuziehen sind - dies vielleicht auch abhaengig von dem KI-Spielcharakter ("Filmsender", "Normalo TV", ...). Sprich neben der dem Programm innewohnenden "Attraktivitaet" (Genre, Uhrzeit, Qualitaet des Programmes, ... Trends...) koennte die KI auch ein wenig Klischeedenken anwenden: vormittags Trash, mittags Dokus, Abends Filme .. oder aehnliches.
Sprich jede KI bekommt ein paar Gewichtungen mitgegeben die die Attraktivitaet der Programme ein wenig manipulieren.


bye
Ron

#21 Re: Downloads + Anleitungen » TVTower - Aktuelle Version v0.6.1 [Stand: 25.06.2018 22:29 Uhr] » 27.06.2019 23:07

Danke fuer deine konstruktive Kritik.


@ Hauptsender verliert Zuschauer
Du musst natuerlich Programm senden.
Mit Fortschreiten des Kalenders (Startjahr wichtig) verliert man als "Antennen"-Sender Zuschauer (die Wechseln zunehmend auf Satellit / Kabel).

Warum aus diesem Grund kein Konkurrenzkampf moeglich sein soll, erschliesst sich mir trotz deiner mannigfaltig aufgebrachten Notizen noch nicht.


@ Non-Stop pleite
Die KI (und das Spiel) sind quelloffen, wenn sie Dir noch nicht genug spielt, einfach im Texteditor Deiner Wahl die Lua-Skripte der KI oeffnen, Zeug anpassen, speichern und Spiel einladen. Die KI kann dann mit deinen Geniestreichen dem Spieler das Leben schwer machen. Unsere KI "schummelt" nicht - sie muss wie der Spieler in die Raeume, muss Quoten abschaetzen etc. - entsprechend kann es schnell bei der KI zu weniger Einnahmen kommen (viel zu wenig Zuschauer einkalkuliert), die KI kann es mal nicht ins Buero schaffen (kann Werbung nicht mehr mit besserer austauschen). Manchmal bekommt sie einfach nicht die passende Werbung (betrifft oft den schlechtesten Spieler :-)). ... mit Schummeln ("von ueberall Filme kaufen", "Exakte Quotenschaetzung", ...) waere die KI sicher ein ganzes Stueck schwerer.

Es gibt im Spiel immer ein paar KI die "pleite gehen", manche andere laufen aber ein paar Spieltage mehr als nur 12 Spieltage.
Vielleicht solltest Du aber auch einfach nicht cheaten und es somit der KI erschweren.


@ Remake
Wir sind eher ein "Tribute" als ein Remake. Eventuell bist Du ja so gross geworden, aber ich finde es ein wenig unfein von Dir, hier bei mir aufzuschlagen und in der einleitenden Phrase ein so desastroeses "Fazit" zu ziehen.
Kritik zu aeussern ist wichtig und auch richtig - nur ist hier der Ton meines Erachtens nach ein wenig daneben.


bye
Ron

#22 Re: Downloads + Anleitungen » TVTower - Aktuelle Version v0.6.1 [Stand: 25.06.2018 22:29 Uhr] » 26.06.2019 07:50

Ah ja, Captchas - kannst Dich gerne registrieren und umgehst damit diese Eingaben (und Du kannst Deine Beitraege korrigieren, falls doch mal der Rechtschreibteufel zugeschlagen haben sollte).


@ Windows ME/Me
Offiziell wohl "Me" (verkuerzt zum Sinne von "Meine"). Allerdings stand und steht es immer noch fuer "Windows Millenium Edition". Das Akronym koennte also auch "M.E." sein (oder "ME").

Dein Fehlerbericht



@ Legacy.freeaudio
Ja, den "rtAudio"-Bug habe ich behoben, beim naechsten Release sollte also eine (wenn auch vlt anders genannte) "TVTower.Win32.legacy.rtAudio.exe" funktionieren.



bye
Ron

#23 Re: Downloads + Anleitungen » TVTower - Aktuelle Version v0.6.1 [Stand: 25.06.2018 22:29 Uhr] » 24.06.2019 20:44

Du benutzt die Entwicklung von TVTower also als Lern- bzw. Weiterbildungs-Projekt.

Das "also" versteh ich zwar nicht, dennoch stimmt das generell. Jedes meiner Softwareprojekte nutze ich zum Lernen/Weiterbilden in bestimmten Bereichen. Mache ich an einem Programmierwettbewerb mit, dann will ich mich immer in einem bestimmten Bereich ausprobieren oder verbessern (Umgang mit "Blender", Tools, Gameplay ...).


@ 32 MB GPU
Ja, mit 8 MB koennte es eng werden - es muessen ja nicht nur die 800x600x16bit reinpassen sondern viel mehr die genutzten Texturen. Passen sie nicht, kommt es zu dauerndem "Neuhochladen" der Texturen -> FPS besucht den Keller.

Meintest Du aber nicht, dass da eine Kernel-Meldung unter Windows ME kam? tritt die in der Devversion nicht mehr auf? Oder nur bei "legacy" nicht aber bei "ng" immer noch?

Wenn Du nur mit DX7 spielst, dann vermute ich mal die "legacy" - in NG ist der DX7-Pfad eigentlich deaktiviert (bzw dort von den Bibliotheken her nicht "supported")


@ DX 7
Freilich _kann_ das von uns genutzte Spektrum an Techniken mit DX7 abgebildet werden - manches nutzt aber vielleicht Umwege und verliert ein paar FPS - anderes hingegen koennte auch einfacher funktionieren und das aufwiegen ... keine Ahnung.



Janko Weber schrieb:

p.s. wo bin ich heute

Ich spiele zwar mit meinen Kindern gerne "Ich sehe was, was Du nicht siehst", dennoch erschliesst sich mir nicht, wie ich aus Deinem Beitrag einen Ort herauslesen koennen soll.


bye
Ron

#25 Re: Downloads + Anleitungen » TVTower - Aktuelle Version v0.6.1 [Stand: 25.06.2018 22:29 Uhr] » 21.06.2019 22:11

F12 macht einen Screenshot (landet im TVTower-Verzeichnis).

Fehler kann ich nachvollziehen: einfach den 1 von 2 auf einen spaeteren Slot ziehen und es bleibt bei 1/2 - statt zu wechseln.

Die Ursache ist aber ganz einfach: Der angezeigte Text wird als "Textur" zwischengespeichert (damit ich nicht jeden Buchstabe jedes mal "rendere" - so rendere ich den gesamten Text "mit einmal"). Das war frueher noch nicht so ... und der Fehler ist der, dass das Programm nicht korrekt die Textaenderung mitbekommt (und den Cache verwirft).
Und dort ist nicht das "Mitbekommen" der Fehler - sondern einfach eine schusselige und falsche Verknuepfung von Bedingungen meinerseits.

Ich verwerfe den Cache wenn sich die Textlaenge aendert _und_ der Textinhalt (Laengenvergleich ist schneller als ein Textvergleich). Wenn da aus "1/2" ein "2/2" wird, aendert sich zwar der Textinhalt aber die Textlaenge blieb gleich.



Mit anderen Worten: Du hast einen Bug gefunden und Dir wieder einmal eine Erwaehnung im Aenderungslog verdient ;-)


bye
Ron