Can you elaborate on your lighting example for your game that could tank the framerate on Switch to 15 fps. I ask because this is a good example of creating an effect that is demanding, and not just underutilizing the hardware. If you could follow up on the process of how you would go about optimizing that effect to get the framerate up that would be excellent
I start with a couple of Unity default post effects like bloom and chromatic aberation. These stacked drop a Nexus 7 down to 30 fps, but the nVidia Shield Tablet can handle them fine. For my shadows, I'm drawing the scene into a low resolution (1/16th) rendertexture and running a shader that draws the scene scaled from normal to zoomed in around the light source over 60 steps. I then draw this over the background nebula into a quad, and render the scene proper with the quad drawn as that background. If I run this 1080p with bloom, framerate drops notably from 60 fps (dunno if it's VSync'd down to 30 or not). If I render the whole scene half res, it's fine.
I can stack on top of that a warp effect that drops framerate even more.
I don't know where the bottleneck is, whether bandwidth or the shaders or Unity overhead on multiple passes. Blur can kill framerate though, which is a pain as it's valuable in many effects, and I need it to smooth out my shadow jaggies!
Today I learnt how to get alpha blending working on rendertextures though (my custom normal-mapped sprites weren't being drawn on rendertextures), so I can rejig how I do things a bit. And if I duplicate the previous shadow pass by alternating buffers, I can get the same quality as 64 draws in ~8 by halving the offset each time. I'll have to see if this makes a significant difference in performance. Then I'll accumulate a few frames of shadow and maybe jitter them for quality. So I'm looking for alternative routes to up quality and down overhead.
But I'm optimising at a very crude, high level, as many indies, just trying to find better ways to do something. It's akin to finding a better sorting algorithm. Better optimisation will understand the hardware, fine tune shaders, pack data formats, etc. progressing from a good algorithm to an ideal way to execute that algorithm on the hardware. Some games out there are doing great post effects on mobile, so it's doable if you know how and can spend the time on it. If I'm honest, I shouldn't be! I should be getting a public alpha out and then worrying about making it prettier, by all accounts.
Do you have any proof wiiu ports were cheap and nasty?
Do you have any proof that they weren't? Given neither of us has proof, we can only go with logical speculation, which is that a platform that isn't selling well that hasn't got great game sales isn't going to attract significant investment on its ports. Unless you can present a decent argument to that (Yes, a game could only sell at best 1/8th PS360's numbers, and realistically far worse because Nintendo, but devs would invest just as much in the game anyway...), it's pretty obvious the reason most ports ran far worse was port quality.