PyTom wrote:
I think the most important questions are, "What is the underlying problem that the user is having?" and "How should they solve the problem?".
The
underlying problem is that the user doesn't understand enough in the way of progamming and computer concepts to make the program do what they want. But Ren'Py is supposedly doing this part for them, otherwise the solution would be to provide a training course on programming Python so that they could write their own VN engine.
PyTom wrote:
Generally, when the user comes to us with this problem, the right solution isn't to put a black image behind what they're showing on the screen. That's because the actual problem is that the background image is too small for the screen. The right solution in the vast majority of cases is to scale up the image so that it fills the screen, _not_ to put a black background behind the image.
You're beginning to sound dangerously socialist... :3
If the user thought that the fact that there are black borders around their background was the problem, then we would have a lot of questions saying "why is it that there's a black background around my picture?" or "how can I make my picture fill the whole screen?". We do get questions like that, but they don't talk about seeing previous lines of dialogue the vast majority of the time. If the user only asks about the left-over images of previous screens, we can presume that they don't necessarily think that the size of their images is a problem, or maybe they actually
want them to show up with black borders.
A good, usable piece of software won't presume to know better than the user what the user wants to do, but also won't bloody-mindedly do unexpected stupid stuff just because the user didn't say otherwise. Automatically stretching the background (for example) would presume to know better than the user, and thus would be a bad solution usability-wise; leaving the contents of the previous screen just because the newbie user didn't specify a background is unexpected stupid stuff, so it's presently in a bad state usability-wise. I really have genuine trouble understanding why you think it's not so bad as it is. I'm not saying that putting a black BG in first will magically solve all problems related to backgrounds - I'm just saying that the way Ren'Py works now is pretty stupid, from a newbie-user's point of view, and it's a simple thing to make it work as people would expect, which will save such users some trouble.
I know I have had more than one conversation in which I was trying to help someone who just wanted a black background, and didn't understand why - since Ren'Py shows a black screen right at the beginning before you draw anything - they couldn't just leave it there and use that as their black background. For example.
PyTom wrote:
Now there are a couple of good answers to this. Probably the best would be to somehow figure out that this is going on the screen, and warn the user. But that's not an easy task, so I haven't done that yet.
Well, this is essentially the kind of thing I was proposing with the make-scene-draw-without-alpha, error-on-no-scene idea. It doesn't help people who've made their background too small for the screen and actually wanted it to be bigger, but if that's their problem then it's a lot easier to explain to them why they need to scale the image (either in Ren'Py or their graphics package) than it is trying to explain to them why they also see ghosts of frames past.
PyTom wrote:
The current solution, where the user goes to the forum and is given help, is not ideal, but it works surprisingly well in practice.
I know of at least one case where someone released a game with this kind of problem in, so it's apparently not really that good a solution at all. And again, you're presuming that everybody is like you, and will actually ask when they encounter problems; I can assure you that a large number of people - some of them very competent artists or writers - will try on their own, and if they can't figure out (for example) why they're getting their dialogue stacking up unreadably will simply shrug, say "programming's too hard" and give up. And you'll never see those people on the forum because they're too embarrassed to ask for help on something they presume is so simple, or they presume that if they can't do this, then there'll be lots of other, harder things later that they can't cope with so there's no point trying, or something similar. Not to mention that coming across such a problem very early on and having to wait for someone on the forum to bother to answer it will risk them just losing interest in the whole VN idea while they're waiting for an answer, before they've made enough progress to have some project momentum going.