I come from a proprietary in-house engine. We had our own asserts instead of check/ensure that similarly did not run on prod releases, but we later found it problematic that we had all of these asserts which could tell us when things were breaking so we weren’t flying blind, but then were flying blind by disabling them in prod. We eventually changed it so that they got reported to telemetry when hit in prod, and it made it a lot easier to track down bugs compared to when users would hit issues but all of our help was disabled.
In our case, we were a live-service product, so maybe it made sense for us to continually collect these bugs. I could also see it being useful for Early Access games which are still undergoing extensive iteration. For the typical game though that ships and then maybe only has a few bug patches, I could understand how it would be pointless to enable this and take a perf hit.
Is that a good rule of thumb then? If you aren’t going to act on bugs, don’t bother enabling asserts in prod and take the perf hit. If you are a live service or early access game following up on bugs though, it might make a lot of sense to ship with asserts enabled & report them to telemetry? There is a perf hit, but you can just optimize the game so that it hits its targets even with asserts enabled.