cohost ask: porting games to the switch

@Xuelder asked:

What is the biggest technical hurdle you see when porting games to the Switch?

A lot of people say the weak-ass CPU but for me it’s always the weak-ass GPU and limited memory. The Switch is effectively a 7 year old mid-range android phone, and it’s very difficult to get to 30fps (forget 60, for most things) without making your game look like total ass. This is a big issue for #influxredux whenever I try to put that on there – a lot of that game is about looking and sounding nice, and there aren’t a lot of options that will survive the Switch’s gpu and memory situation.

Until I moved it to Lumen recently, Redux was using baked lighting using Lightmass, which is great visually and for performance – static lighting has functionally no cost on most machines. But on Switch, you can hit a memory wall pretty fast, crashing because you’re out of memory because your pretty lightmaps were too large and too numerous. Crunch the lightmaps down enough to consistently avoid that and you lose most of the visual benefit. Dynamic lighting then becomes more attractive, but of course it’s got a big perf hit and, on Switch, will never look that good.

On [redacted project] which I ported to the Switch, static lighting wasn’t an option, and shadows were important to the visual for some objects. I ended up doing a trick where I disabled cascaded shadowmaps and most other dynamic shadows, but enabled the Far Shadow, which is basically an opt-in extra whole-scene shadow meant for selectively enabling dynamic shadows on objects far from the camera (out of the usual range for shadows). I tweaked the distance on the “Far Shadow” so that it was super near and was basically the only shadow we ever saw, and then selectively enabled shadows only on objects that needed them, like buildings and nearby characters. Any time you can flip an expensive feature from opt-out to opt-in like that can end up being a big win.

I also did the port of Adios to the Switch, which I wrote a post about here.


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *