A great game engine in C#! It is realtively fast; easy-ish to learn and a lot
of great games were made in it. Unreal is another sudestion which has the upper
hand in graphics but's harder to learn. If you want to start from scratch or
want the best performance you can get you should look more into the direction
of OpenGL and DirectX in C++.