Open nittka opened 5 months ago
Am besten wär wohl, wenn man die Bilder einfach in einem Verzeichnis irgendwo unter /res ablegen kann, das nicht stört (also man sollte keine vorhandenen Ressource-Files editieren müssen). Da kann man dann Unterordner anlegen mit den Film- oder Drehbuch-GUIDs als Ordnernamen (EDIT: oh, auch für Werbung, das wurde auch gewünscht). Wenn mehrere Bilder drin liegen, werden die als Slideshow angezeigt, während der Film läuft. Bei nur einem Bild kann man vielleicht auch direkt die Datei [guid].jpg anlegen ohne eigenen Ordner.
Analog auch für die Musik. Hier sollte allerdings nicht wie bei der Bilder-Slideshow per fixem Zeitintervall durchrotiert werden, sondern ein Stück sollte komplett nach dem anderen abgespielt werden. Wenn die Stücke zu lang sind, ist es das Problem des Users, der muss dann die Musik selber so zusammenscheiden wie er will. Die Musik läuft dann nur solang der Film läuft, bei Werbung (sofern keine eigenen spezifischen Werbe-Jingles existieren) oder News wird dann wieder zum normalen Soundtrack cross-gefadet (fast iMUSE-mäßig ☺️).
Hmm On-Demand-Loading sollte nicht so problematisch sein heutzutage? Jeden Tag um Mitternacht kann der Cache dann geleert werden, da gibt's eh bereits 'nen kleinen "Ruckler", und sowas wird das Kraut dann auch nicht fett machen.
Ich freue mich, dass Sie diese Verbesserung in Angriff nehmen.
Slide-Show ist massiver Implementierungsaufwand. Aktuell wird bei jedem Update (dutzende Male pro Sekunde) entschieden, welches Bild angezeigt wird. Praktisch wird also permanent neu berechnet, welches Bild gerade im Fernseher angezeigt wird.
Ich habe keine Ahnung, wie das Speicher-Management bezüglich der Sprites aussieht. Da muss Ronny was dazu sagen. Technisch geht bestimmt vieles, aber wenn die aktuelle Infrastruktur darauf ausgelegt ist, dass alle registrierten (und aktuell häufig verwendeten) Sprites permanent im Speicher gehalten werden, ist es vielleicht möglich aber "teuer" einen Umbau vorzunehmen, der tausende (vielfach unbenutzt oder selten gebrauchte) Bilder vorzuhalten oder aufzuräumen.
Ausprobiert habe ich, dass png und jpg unterstützt werden. Am besten die Dateien liegen schon in der richtigen Größe vor, denn selbst mit Angabe der Bildgröße in der xml-Datei wird nicht alles wie erwartet skaliert...
Derzeit wird jedes Sprite (bzw die Textur/das Bild dahinter) eingelesen und im RAM vorgehalten und gleichzeitig wird im VRAM die Textur hochgeladen (also zur GPU). Beim Rendern der Bilder wird die GPU-Textur dann nur noch benutzt und es muss nicht immer erneut "hochgeladen" werden.
Bei Animationen, Slides, ... wären dies natürlich viele Bilder die immer vorgehalten werden müssten. Das ist eindeutig "zu viel".
Um so einen "Slide-Mechanismus" bereitzustellen, bedarf es einer neuen "Sprite-Klasse". Eine, die das Basisbild ("Genrebild") referenziert bzw als Fallback nutzt. Gleichzeitig muss es einen Ressourcenloader (den gibt es ja schon) beauftragen, dass es gerne folgende "x Bilder" eingeladen haben will (dann sind die jpg/png... schon mal eingeladen). Dieser Ressourcenloader läuft in einem eigenen Thread und blockiert somit nicht das Spiel.
Sobald die Bilder (bzw die TPixmaps - also nur die "Bilddaten im RAM", nicht im VRAM) geladen würde, kann der Mainthread (der hat Zugriff auf den VRAM...) die Texturen zur GPU schicken und ab dann ist es nutzbar.
Damit wir nicht alles ewig "vorhalten" (im Speicher) muss allerdings an irgend einer Stelle "aufgeräumt" werden. Wir könnten das abstrahieren, in dem es eine Klasse gibt, die einfach nur ein TV-Bild-Sprite als "Field" und im Falle von "Slideshow" waere es dann eben das "TV-Slideshow-Bild-Sprite". Bei jedem Programmwechsel wird eine neue Instanz der Klasse angelegt - und somit bei erneutem Wechsel vom GarbageCollector irgendwann "eingesammelt". Im Falle der normalen TV-Bild-Sprites passiert dann nix (da die noch in der Registry referenziert werden). Die "TV-Slideshow-Bild-Sprites" hingegen räumen sich dann automatisiert auch auf/werden geloescht und die zugehoerigen Texturen usw fliegen aus dem RAM/VRAM. Heisst aber, dass immer alles aus einer Slideshow "neugeladen" wird - auch wenn es vorher schon geladen war. Ja, das kann man dann noch mit einem "lastUsed"-Buffer umgehen (speichere die letzten X Slideshows...).
A packet of images of movies and commercials in the link. We could use them. http://pd.net.pl/ADVERTISIMENTS.zip http://pd.net.pl/MOVIES.zip
I suggest giving images in the IMG directory and writing:
About the ads, as mentioned in the forum, I find these images too polished and "professional" for the art style of the game. Sure, we can't include those in the official release anyway because of the real brands, but I guess a main "inofficial" art pack downloadable somewhere in the internet might become the standard eventually.
The movie images seem fine so far.
But in both cases I'm also wondering about color. Should they be displayed in color? Also a matter of taste perhaps, but the design was black-and-white already in Mad TV for a reason I think, the color might be too distracting and not fitting the art style. (Or does the game turn them into black and white already anyway? In that case the source material also should be in black and white to save space).
Then you also have movie posters. These should be displayed when browsing the films in the film agency I think, and that's an additional feature request I guess. I think this was actually also requested a long time ago on the forums. These definitely can be in color then, for my taste.
(Not to mention that a lot of these films aren't even in the game yet, but we're getting there.)
As for ads - after all, we can use various images without the trademarks of the companies in question in the official version. The point is that there should be variety of display on the screen. Because this is the essence of the game. So that we watch television - sort of :) It is possible, for example, in a toothpaste commercial to give a picture of toothpaste, a cup, but without trademark names. If you implement this, I can pore over the relevant images.
As for the programs - you have implemented such a cool flashing of the TV screen, so the color of the picture will not strongly interfere with the perception of the game. For me, this functionality is the most important and I would prefer it in color. You have a lot of old movies and they are in black and white. The only thing that worries me is that this will probably be difficult to implement, due to the resources and speed of the game. As I said before, this is for me and probably not only for me the most important functionality. As for the posters, it's not some super important thing. We have well-described programs in the film agency and it is ok. With posters it would be great. Beautification of the game. Just would the resources be enough? I edit the program.xml file then I know how many there are. Shock. There are a bunch of them. I need another week, to complete the translation. You have a great deal of old videos that I didn't even know about. :)
Where did you pull the content from btw? It's kinda lopsided. Almost every film of 2016 (dozens), not of other years, and from other years apparently only animations, nothing else.
But for the posters, not a big problem. They can be pulled from IMDB.
As for the posters, it's not some super important thing.
I'm coming to think they're almost more important. When browsing the film agency, they give immediate visual c(l)ue what the film might be about and what the target audience might be.
Though of course it will be a shame that they would be available only for a "modded" version with original / real data.
I'm thinking we might let some AI create spoofed versions of everything. Unfortunately (additionally to the potential legal issues somewhere already discussed) OpenAI is not yet very good at creating text (didn't try others, but I heard they're not much better yet). Asking for "ULF" and for changing some key characteristics, getting this:
A TV series ad poster for an imaginary TV series titled ULF, a spoof of ALF. ULF has to look different from ALF, but still be somewhat recognizable as a spoof of ALF.
ChatGPT said:
For the TV series ad poster of the imaginary show "ULF," here's a detailed visual concept:
Background and Layout:
The poster is set in a cozy, suburban living room, reminiscent of a classic '80s or '90s sitcom. The room has warm tones, vintage furniture, and a comfy sofa that ULF is sitting on. The title "ULF" is prominently displayed at the top of the poster in bold, playful, retro-style font. The letters could have a fuzzy texture to subtly hint at ULF's character design. Character Design - ULF:
ULF is a furry, alien-like creature, much like ALF, but with distinct differences: ULF has a rounder face and larger, more expressive eyes. His fur is a vibrant, unexpected color like turquoise or purple instead of ALF's brown. He has oversized, floppy ears that are shaped differently—perhaps more pointed or asymmetrical. ULF's nose is larger and more bulbous, giving him a goofier appearance. His outfit is a quirky, mismatched combination of human clothes, like a Hawaiian shirt with polka-dot pants, emphasizing his comedic and outlandish nature. His expression is humorous, with a wide, toothy grin that gives him a mischievous yet endearing vibe. Details and Elements:
The poster includes humorous taglines or slogans like "He's out of this world... and out of his mind!" to emphasize the show's comedic tone. In the background, there are small details that hint at ULF's alien origins—like a futuristic-looking gadget on the coffee table or a small spaceship peeking through the window. Color Scheme:
The overall color scheme is bright and vibrant, with a mix of warm tones from the living room and cool tones from ULF, creating a contrast that draws attention to the character. This design would make ULF distinctly different from ALF while still retaining the essence of a fun and quirky alien character, perfect for a spoof.
Yeah, ears might be larger, but it didn't really do much of what it described it would do. Also it's seemingly unable to spell ULF properly, and it didn't put the tagline it announced.
So still some way to go. :)
Also if we roll out an image or art package by default, this will blow up the size to a few hundred MBs eventually.
Also screenplay-scripts should be supported eventually, as AI also can help here.
Also tagline and title almost perfect here, except for the messed up "R" (and for the "actors" and "small print" we don't need).
(And Ben is originally a bigger and broader guy, but it didn't listen to me :(
. But the over-all style is very good).
(But we could also check for fan art for stuff based on existing sources, there's usually plenty of.)
Im Forum wurde nach der Möglichkeit gefragt, in der Datenbank Filmbild-Dateien definieren zu können, die dann bei der Ausstrahlung angezeigt werden. (https://www.gamezworld.de/phpforum/viewtopic.php?id=14098)
Eine Definition innerhalb der Standarddatenbank scheint mir dafür ungeeignet. Da die meisten Bilder rein nutzerspezifisch sein dürften (also nicht Teil der offiziellen Lieferung), müssten lokale Anpassungen immer wieder neu gemacht werden, da man sonst entweder offizielle Erweiterungen der DB nicht mitbekommt oder immer die eigenen Filmbilder wieder verloren gehen. Das spielt etwas in das Thema #971 und #1046 rein. Partielles Überschreiben, Erweitern ist aktuell noch nicht wirklich unterstützt. Wenn das Thema nicht grundsätzlich bearbeitet wird, könnte man eine dedizierte ProgrammePicture-Datei erlauben, in der für die jeweilte GUID das zu verwendende Bild hinterlegt ist.
Eine Low-Cost-Lösung wäre möglicherweise, einfach nur bei der Auswahl des Programmsprites zu prüfen, ob eins mit der passenden GUID registriert ist und als Fallback das Genre zu verwenden. Wenn man pro Film (Serie) eine Bilddatei hat, könnte man in interface.xml einen passenden Abschnitt ergänzen (oder eine eigene entsprechende xml-Datei in resources.xml) registrieren
Für Eigenproduktionen funktioniert das natürlich nicht mehr so einfach, da man da keinen Einfluss auf die GUID hat.
Ich habe mich noch nicht mit der Speicherverwaltung beschäftigt. Werden immer alle Sprites geladen und liegen permanent im Speicher oder werden sie nach Bedarf geladen und Speicher wieder freigegeben. Bei einem enthusiastischen Spieler mit hunderten eigener Filmbilder, könnte es ggf. Probleme geben.