The default view projection in the scriptable render pipeline is a stretch projection where the area covered by the width and height specified in game.project gets stretched or compressed to fit the dimensions of the actual screen. This will result in stretching if the aspect ratio isn’t the same.
This can easily be fixed by switching from stretch to a fixed projection that retains the original aspect ratio:
Fixed fit:
msg.post("@render:", "use_fixed_fit_projection", { near = -1, far = 1 })
Fixed fit:
msg.post("@render:", "use_fixed_projection", { near = -1, far = 1, zoom = 2 })
I think it may be a good idea to default to fixed_fit_projection for all projects - and then show your end users how they can opt into a stretch projection. I would imagine there are so many use cases where folks would see that necessary compared to having a stretch projection. It does confuse so many starters (myself included) - and without much experience on the engine it may get very easy to dismiss it straight away.