Posted August 31, 2010
I'm surprised nobody has mentioned Unity. It's free (ish), it supports C#, and although it's clearly designed for 3D games, you can definitely make axis-constrained 3D games with it relatively easily. 2D sprite-based stuff, even.