・名前の隠ぺいがありますがどういった場面でよく使われますでしょうか?
オーバロードは多態性が実現できて便利ですが、仮想メソッド/プロパティでなければ行えません
(あるいは次回学習する抽象メソッド/プロパティでも可能ですが、抽象クラスになります)。
よって、自前のクラスであれば、仮想メソッド/プロパティに設定してオーバロードします。
しかし、C#システムなどの他者が提供するクラスや、プロジェクト共有クラスでは、変更できない場合があります。
この場合は、名前の隠ぺいを行います。
なお、多態性を活用しないことを明示するために、オーバロードではなく、名前の隠ぺいを行う場合もあります。
・ゲームの最適化問題において、ゲーム製作エンジンのみに原因があるとは限らないとのことですが、他に予想される要因は何でしょうか。
この場合の「ゲームの最適化」は、ハイスペックなハードウェアでも、非力なハードウェアでも、
ゲームが同様に動作し、プレイ感を損なわないようにすることです。
UEなどのゲーム製作エンジンには、様々なデバイス向けの自動化された最適化機能を提供する、サポート機能があります。
しかし、この機能は完全ではなく、開発者による設計・開発に問題があると、不完全な結果になります。
システムに依存しすぎる設計や、ハイスペックなハードウェアを前提とする開発などが原因です。
ゲーム自体が格段に複雑さを増しており、ゲーム製作エンジンだけで最適化を図るのが非常に難しいのが、現状です。