TVTower – A tribiute to Mad TV

Im Spiel TVTower leitet man einen Fernsehsender, kauft Filme, verkauft Werbeplätze, schreibt News und produziert bald sogar eigene Serien und Filme.

Seit 2002 „bastelt“ Ronny Otto an TVTower. „Vor mehr als einer Dekade habe ich angefangen  – gruselig oder?“ meint Ronny in unserem Interview auf die Frage, warum es TVTower überhaupt gibt. „Warum? Einfach weil ich mit meinen Brüdern gerne Mad TV gezockt hatte – und es dummerweise keinen Mehrspielermodus gab. Im juvenilen Leichtsinn (die guten Zwanziger :p) dachte ich mir ja, dass da ja nicht so viel dazugehören müsste.“

In der nun mehr als 10 jährigen Entwicklung gab es viele Änderungen und Hochs und Tiefs. Begonnen hat Ronny ohne viel Ahnung, wie graphische Spielprogrammierung funktioniert: „Unsere Webseite GamezWorld.de war zwar schon am Laufen, soll heißen,  Spieletesterfahrung war da schon irgendwie vorhanden, aber wie so die Sachen mit Animationen, frame-unabhängiger-Programmierung (Delta und Tweening) oder gar dynamischer Bildbearbeitung (Spielerfarben) abzulaufen hatten, davon hatte ich null Plan.“

Anfangs noch alleine, kam bereits im ersten Jahr Michael, genannt HeinDubty, mit zum Projekt und zeitgleich wurde auch die Programmiersprache gewechselt, vom objektorientierten Pascal zum klassischen C. Die Rolle von Ronny hat sich dadurch leicht verändert, wie er feststellt: „Ich war damit mehr der Grafiker und HeinDubty der Programmierer geworden.“

In dieser frühen Phase des Projektes gab es noch keine KI und dennoch wurde der Code immer komplexer, was mit Schuld daran war, dass das Projekt immer Häufiger ins Stocken geriet. Die Rettung bat BlitzMax, das Michael Ronny 2004 vorstellte: „Dies ist eine Programmiersprache, die bestimmte Funktionalitäten schon von sich aus bereitstellt – also Bilder zeichnen, Sound abspielen, … – und das sogar noch ohne Codeänderung für Linux, Mac als auch Windows.“. TVTower wurde von Grund auf neu programmiert.

Ab 2004 ging es dann schleppend voran, denn „HeinDubtys Studium war wohl dann wichtiger.“ sagt Ronny und fügt mit bestimmenden Worten an: „Korrekt so!“. Michael wurde so vom Programmierer mehr und mehr zum Helfer bis er das Projekt irgendwann ganz verlies. Er überließ Ronny seine BlitzMax-Lizenz, der sich dann Anfangs selbst versuchte „in die Sache reinzufitzen“.

Projekte von Vorgängern übernehmen ist schwer, wie Ronny weiß: „ Anfangs übernimmt man in solchen Fällen vieles. Es wird versucht bestehenden Code weiter zu nutzen, doch irgendwann kommt man an den Punkt, wo man vieles einfach neu schreiben will – oder man merkt, dass die Konzeption des Codes nicht mit dem übereinstimmt, was am Ende rauskommen soll. Also überwirft man vieles und muss sich plötzlich wieder um Dinge kümmern, die vorher in weitester Ferne lagen.“

Durch das ständige Umbauen und vor sich hin tüfteln verlor die Community auch das Interesse am Projekt und es wurde still im Forum: „ … der Teufelskreis begann.“

In den folgenden Jahren versuchte Ronny immer wieder kleine Projekte umzusetzen, um damit bestimmte technische Grundlagen bzw. die “Engine” auf festen Beinen zum Stehen zu bekommen. Eines dieser Produkte war 2008 “YourDoku”. An TVTower arbeitete Ronny immer wieder zwischendrin mal ein wenig: „Ich habe geschaut ob die Codeänderung Auswirkungen auf das Spiel hätte – ich habe es sozusagen mit den Engineaktualisierungen synchron gehalten.“

Schließlich begann auch Ronny sein Studium in angewandter Informatik. „Das war“, meint er, „natürlich ein großen Schub für die Motivation. Ein lokales Subversionrepo wurde aufgesetzt und ich entwickelte wieder aktiver am Spiel. Seit dem ist die Frequenz aber wieder enorm angestiegen (vor allem seit 2012).“

Seit dieser Zeit hat sich wieder enorm viel getan. Äußerlich in Gameplay, Grafik und Sound, aber vor allem intern: „Ich wollte ja schon immer, dass die Spieler einfach Dinge am Spiel abändern können, also müssen Dinge flexibel gestaltet werden. Wenn man im Quellcode Abweichungen berücksichtigen muss, macht es oftmals Dinge umständlicher und komplexer. Das ist nicht schön, aber wenn ich – und die Spieler – sowas möchten, dann muss man da durch.“

An der Grafiktechnik musste ebenfalls gearbeitet werden: „Damit es trotz der alten Grafikengine (die von BlitzMax ist “fixed pipeline”-basierend) nicht zu starken Performanceeinbrüchen kommt, musste ich Texturatlase (mehrere Bilder auf einer Textur) einführen. Auch musste die dynamische Bildbearbeitung verbessert werden (Cpu-basierendes RenderToTexture usw.).“

Neben diesen Grundlagen gab es weitere Aufgaben zu bewerkstelligen, wie den Netzwerkcode und die GUI. Dass das nicht einfach ist, klärt Ronny deutlich auf: „Man möge nun denken, so eine GUI ist ja easy-going, ‘n Button ist ein Bild und  wenn die Maus darüber ist, schaut man nach einem Mausklick, aber weit gefehlt: Es gibt Eingabefelder, Scrollbalken, Buttons, Checkboxen, … und alles will ja irgendwie miteinander arbeiten.“.

In C eine komplett andere Sache als in BlitzMax: „Das alles selbst zu schreiben würde in der Welt von “C” sicher so einige Lacher hervorrufen: SDL als Unterlage und darauf ‘ne GUI-Lib. Aber wir waren ja bei BlitzMax und tja, da gab es sowas nicht und ehrlich gesagt: jeder Programmierer will doch alles selbst mal versuchen.“

„Kurz zusammengefasst“, schließt Ronny ab, „ich hatte eine Menge im Hintergrund geschraubt, Dinge die man halt nicht sieht.“. Im Endeffekt wich er, wie er schätzt, zu 99% vom ursprünglichen Code ab.

Neben der Programmierung sind natürlich auch Grafiken sehr wichtig und auch hier konnte Ronny sich Knowhow aneignen. Blender, ein kostenloser Open-Source-3D-Modeller, brachte ihn auf die Idee, TVTower mit komplett eigeneständigen Grafiken auszustatten. „… aber erstmal das “alte” fertigmachen, kann ja maximal noch ein Jahr dauern *denkste*.“ meint er selbstironisch.

2007 kam STARSCrazy, im echten Leben Manuel genannt, dazu und wollte die KI-Entwicklung übernehmen, am besten mit LUA. Das kam sehr gelegen, da bei BlitzMax eine Anbindung zu LUA bereits existiert: „Allerdings war noch offen, wie man nun Spielcode und LUA verknüpft. Es dauerte eine Weile bis wir Dinge so umgearbeitet hatten, dass sowohl Spieler als KI auf bestimmte Funktionen gleichberechtigt zugreifen konnten – ich hatte sowas einfach vorher nicht vorgesehen … „

Der Code konnte nicht zwischen zwischen “Logik” und “Interface” unterscheiden, also Mausklicks/Tasteneingaben versus “KI will XYZ machen”, aber auch das wurde gelöst: „Mittlerweile sind wir soweit, dass wir Spielinterna automatisiert an die KI weitergeben können (“exposing”).“

Manuel hat neben der KI auch eine Menge Fehler im Quellcode aufgespürt und ausgebessert. Inzwischen steuert er auch eigenen Code bei, z.B. den Soundmanager, der Musik und Effekte abspielt und auch die Quotenberechnung und die Logik für das Senderimage und die Popularitäten/Trends für Filmgenre stammen von ihm.

„Er ist also vom “KI”ler zum “Mitprogrammierer” aufgestiegen. Dass wie jetzt im Sommer nicht jeder Zeit hat am Spiel mitzuwirken, ist verständlich. Ich muss nur dafür sorgen, dass Manuel mit kälter werdenden Tagen wieder mehr Zeit für unser Spiel aufbringt.“
Die Entscheidung, das Spiel als OpenSource zur Verfügung zu stellen, fiel vor nicht allzu langer Zeit: „Seit Fruehjahr 2014 habe ich den Code auf GitHub veröffentlicht. Vorher war der Code schon über meinen Subversion-Server erreichbar (auf Nachfrage). Unsere Grafiken hatte ich ebenfalls schon auf Nachfrage freigegeben.“

Als Grund gibt Ronny ganz einfach an: “Ich genieße es, dass andere OpenSource-Projekte entwickeln und mir Dinge kostenlos zur Verfügung stellen. Und sollte ich einen Bug finden und gar lösen können, kann ich mich auf diese Weise bei denen revanchieren. Und genau das erhoffe und erwarte ich auch bei unserem Projekt.“

Die Hilfe hält sich bis jetzt leider noch in Grenzen, was Ronny auf BlitzMax zurückführt, denn auch dadurch fehlt es dem Spiel an Nutzerbasis. Besserung ist eventuell in Sicht: „Vielleicht ändert sich dieser Punkt, wenn BlitzMax-User Brucey und ich den neuen BlitzMax-Compiler fertig. Der neue Compiler würde es ermöglichen, dass jeder kostenlos unser Spiel kompilieren kann (eventuell kommt bis dahin auch der offizielle Arm-Support, also RasPI/Android/…).“

Die Codeoffenlegung bietet noch weitere Vorteile: “Projekte wie GitHub sorgen für Deine Backups, bieten weitere Funktionen (issue tracking). Kein schlechter Nebenaspekt.“ fügt Ronny an.

Im Laufe der Zeit hat sich das Team doch deutlich verändert. Anfangs war Ronny noch alleine, dann kam Michael/HeinDubty und Rico/Ritschl half beim Newsschreiben und Koordinieren. HeinDubty verließ das Projekt und dann kam Manuel/STARSCrazy an Bord. Die Datenbank wurde in den Hochjahren (2003-2005) von vielen Helferlein gefüttert. „Besuche einfach mal den Creditsraum in Bettys Etage“ merkt Ronny an.

Die nächsten Großen Neuerungen stehen auch schon im Raum: Ein neues Wettersystem.

„Wie jetzt Wettersystem?“ fragt Ronny sich selbst und antwortet auch gleich: „Nun, unsere Datenbank ist noch klein und enthält nur rund 170 Nachrichten. Hinzu kommen noch dynamisch erstellte Nachrichten, wenn ein neuer Kinofilm veröffentlicht wird (der dann alsbald beim Filmhändler zu haben ist). Das reicht allerdings noch bei weitem nicht, um eine abwechslungsreiche Nachrichtensendung zu haben. Also brauchen wir weitere Quellen für diese dynamischen News. Ein Wetterbericht ist praktisch …aber wie macht man die abwechslungsreich? Genau… ein Wettersystem. Doof dann nur, wenn immer Schönwetter angezeigt wird, die Vorhersage aber Sturm verspricht. Das neue System basiert auf Luftdruck und Temperatur … es gibt also Sonne, Wolken, Regen/Schnee/Gewitter, … was man halt so erwartet. Und – es  wird nun auch grafisch umgesetzt (es regnet also, es schneit, …). “Tolle Wurst” wird mancher nun denken, aber halt, nicht so schnell! Gutes Wetter ist und war schon immer Gift für Fernsehsender.“

In Zukunft also wird das Wetter auch Einfluss auf die Quotenberechnung haben und zeitgleich kommt ein erweitertes Newssystem zum Einsatz: „News können Dinge “herbeirufen”. Das ist das Stichwort für den Terroristen – den gibt es dann auch demnächst zu bewundern. Der wiederum erfordert es, dass die “Raumvermietung” Einzug in das Spiel hält (das wiederum für die Eigenproduktion notwendig ist).“

Die Eigenproduktion, an der Manuel gerade arbeitet, soll noch komplexer werden wie bei Mad TV. Ronny steuert dazu die Grafiken und die GUI bei. Bevor es allerdings dazu kommt, wird erst einmal die Datenbank auf ein neues Format umgestellt.

Auch Ronny selbst hat Wünsche bzw. sucht ständig nach neuer Motivation, die ihm hauptsächlich die Nutzer im Forum geben und davon wünscht er sich  mehr: „Leute die im Forum schreiben, sich austauschen, halt Leben in die Bude bringen!“

Und hier ist auch viel Hilfe zu finden: „Natürlich ist es schön, wenn diese Fehler suchen, Ideen mit ausdiskutieren, Feedback geben.“. Auf die Frage nach Spenden meint Ronny aber: „Spenden – ich denke wir haben derzeit so wenig Aufmerksamkeit, dass Spenden ein Tropfen auf einen nichtexistenten heißen Stein wären. Es käme nicht so viel zusammen, dass es sich lohnen würde.“

„Brucey ist ein User aus dem BlitzMax Forum“ nennt Ronny als Beispiel „der für die dortige Community mehrere Dutzend Module entwickelt hat … er ist neben dem “Chef” der angesehenste User dort. Sein Spendenkonto ist im Laufe der Jahre maximal 2stellig angefüllt. Da kommen auch von kommerziellen Anwendern (die ihre Spiele verkaufen!) keine netten Spenden um sein
Engagement zu finanzieren.“

„TVTower wird außerdem aus Spaß und Überzeugung entwickelt“, stellt Ronny klar, „Auch wir machen das so! Klar wäre es schön, wenn mir ein Fan einen neuen BMW kauft, aber das passiert halt nicht.“

Auch Kickstarter wurde oft eingebracht, aber es verhält sich gleich wie mit den Spenden: „Ich denke außer einem “nicht genügend Backer” wird da nichts rauskommen. Die potentielle
Spielerbasis ist halt einfach noch zu gering. Vielleicht bringt Dein YouTube-Video ja ein paar Leute dazu sich im Forum zu melden, hoffen wir es.“

TVTower kann kostenlos über die Homepage geladen werden: http://www.tvgigant.de/

———————————

Ronny ist 33 und studiert nach angewandter Informatik zurzeit BWL: „Meine Abschlussarbeit liegt noch immer vor mir (immer schön wegschieben).“
http://www.gamezworld.de

Manuel ist beruflicher Programmierer, Hobbymusiker und Teilzeit-Nerd.
https://twitter.com/STARSCrazy

Das Interview führte Tom: http://youtube.com/tomdotio

Das Video zu diesem Interview ist hier zu finden:
https://www.youtube.com/watch?v=LaXdh_o3HA4