Given that I intend this to be downloadable at some point, I noticed that the file sizes using PS3 resources are, to put it mildly, kind of insane. You’re talking sprites that are actually slightly oversized for a 1080p resolution and often hundreds of them. For example, here’s Beatrice’s raw sprite set filesize:
Now admittedly Beatrice is one of the larger portrait sets in Umineko for fairly obvious reasons, but one character being almost a quarter of a gigabyte is ridiculous. I don’t think the PC version’s portrait set in BMP is quite that large (and in PNG, well, not even close). There were basically two options with that. One was to strip out all instances of the character that don’t get used in the script, but that makes it hard to make changes and harder to work with during the process of scripting. Fortunately, there was an alternative, and as a result I’ve been able to make the file sizes considerably smaller:
Keep in mind that’s 20 distinct characters including Beatrice’s entire sprite set. With no image quality compromise. How?
Sorcery The same way a lot of games do it:
Renpy has a function known as im.Composite which can create a single image out of multiple images. By reducing full images to one baseline body per pose and then cutting out everything but the facial expressions the filesize drops dramatically, in part because faces are often exactly the same between poses (no less than 5 each of Beatrice and Erika’s poses use the same exact face set) and in part because the files themselves are simply much smaller when there’s less image data there. I also fixed Erika’s height problems as her sprite was the only one taller than the others (which are all 1300px tall) because of her scythe sprites extending beyond that (you probably didn’t notice, but she was too short in close-ups because her anchor was 100px off). Compositing can fix that too.
The only concern I’ve noticed is that im.Composite, as a function, appears to be a bit CPU-intensive, so I’m curious whether this will have a significant performance impact. The main thing that it does is slow down Skip Mode because it’s performing compositing calculations very quickly, but Skip Mode isn’t exactly fast on slower machines in Renpy when loading 1080p images. Once this gets to some kind of alpha/demo stage I’d be interested in feedback on how poorly it performs, but I don’t think it’s worth trading off several gigs in download footprint just to slightly speed up Skip Mode.
Now that I’ve gotten a system down for portraits, the main filesize hog is the backgrounds. They’re huge, often 2500×1400 or larger, and there’s not much I can do about that. They could be shrunk to 1920×1080, but I don’t consider it worth it because of the advantages of using them in close-ups or scaling them to 1080 in-engine (which you may have seen used in the second Redaction TIP to allow for perspective shifting in a scene). I’ll just have to be careful. The BGM is also an issue but it’s easy to strip out unused music files. Oh, and I can get back to content production, which I am still totally doing. Here’s Erika exercising her little gray cells in the latest chapter-in-progress: