C#で書きたいならSTRIDEとかどうだろうか?
シリコンスタジオっていう日本の会社が作ったオープンソースのゲームエンジン
(元の名前がXENKO)