User-selectable forward rendering?

Would it be possible to release a standalone game that allowed the user to select between the standard renderer and the new forward renderer? What would be the best way to implement this?

This would be extremely nontrivial. It’s not just a mode you can toggle between. All of the shaders would have to be recalculated, which means you’d have to modify the editor to somehow build and retain both versions of the shader cache so you could distribute both. Beyond the technical hurdles in just getting that to work, you’d cause nightmares for your content creators. The performance impact of various pieces of content are very different depending on whether you’re using a forward or deferred renderer, and often what’s good for one is terrible for the other. Your content people would have to optimize for both, which basically means going with the lowest common denominator, and what fixes performance in one will often kill performance in the other. The forward renderer is still a work in progress, so it’s missing quite a few features, which means content would need to be built to avoid those features, or alternate content would have to be built and used dependent on the renderer that’s being used. Think of the bugs and testing time. Unless you have an extremely good reason that I can’t think of, it’s highly, highly unlikely that this is worth doing.

lol, you’re right of course. I’ve been toying with the idea because, in general, I’ve been really selective about my visual effects and switching between the renderers in the editor left me thinking that I could reasonably account for both, but even if I could provide both versions of the shaders things would probably spiral out of control quickly.

It’s worth noting that the engine can readily switch between mobile and full/desktop renderers as shown and documented in Disc Jam.

Yet it doesn’t seem to have the same ability to go between SM5 deferred and SM5 forward the way Disc Jam got it to go between SM5 deferred and ES3.1 forward. SM5 forward is not implemented as an RHI, but rather as a different project mode within the SM5 RHI. (Fun thing to try: SM4 forward. None of the lights will work!)

Ultimately, there may be cases where you’d want to have both: Robo Recall lacks SSR, SSAO, distance field features, and such after all. The SM5 forward renderer may be preferred over ES3.1 since the lighting and shading look doesn’t differ as much, and because ES3.1 is missing something as basic as a dynamic spotlight which can be a dealbreaker for some games.