Completed: Eight Sweets, The Heart of Tales, [redacted] Life, Must Love Jaws, A Tune at the End of the World, Three Guys That Paint, The Journey of Ignorance, Portal 2.5.
Ren'py allows creators to use backgrounds that the player can scroll around, if the image is larger than the screen dimensions (see: Ren'Py's Tutorial game for an example).
This can be used to let the player look around all four walls of a room. The challenge however, is that you'd need to draw the room as a panorama.
These are photographic panoramas. Note how the perspective bends everything. But if you were to "crop" the whole image, the perspective will look normal.
Completed: Eight Sweets, The Heart of Tales, [redacted] Life, Must Love Jaws, A Tune at the End of the World, Three Guys That Paint, The Journey of Ignorance, Portal 2.5.
@pupptbomb: Regarding the horizon line, that's a useful observation. Thanks! Knowing that makes things seem a lot clearer, because while the floor-meeting-the-walls are really curved and warped, the horizon line is always linear.
Okay, I've made a new discovery. I made a draw-over of the panorama from the original post (see attachment), and outlined the floor and ceiling's perspective/grid in red and black, and the walls' corners in blue. With that, we have a much clearer picture of where the vanishing points are (where the red lines cross on the horizon line).
The way I see it, there's now a noticeable pattern of how to draw a panoramic room from scratch: If you first create some sort of grid divided into four segments (one for each room), placing a vanishing point in each, and bending the floor/ceiling lines to cross over into the next vanishing point.
The problem now is, how do you create such a grid/template properly? How do you measure it so that it looks not too warped (for a typical visual novel screen--say, 1280 by 720), yet not too stretched out--which would also stretch the furniture?
If I were you I would block out the room in Blender(a free 3D software package that also does a lot more), render a panorama and then draw over it in an image editor. I found a short tutorial (less than 2 mins) on how to render a panorama in Blender:
I made an animated GIF in how I would approach the scene to minimize warping:
Basically, rather than curving toward a vanishing point, it would go straight to it. Or in the case of the middle windows, I would straighten out the lines to run parallel to the horizon line.
I may warp the end of the rug in the last image depending on how the background would display. But if possible, I avoid objects that may be prone to warping.