A few weeks ago, on the recommendation of a good friend, I started to play around with Unity®, a 2D/3D game engine created by Unity Technologies. I have known about it for a long time, but just never got around to checking it out. If you haven't heard of it yet and you are interested in game development at all you should definitely go take a look. They have some great tutorials about all kinds of topics at the learn section of their site. The tools that are provided are really quite amazing. The main client, which I refer to as "unity studio" is very easy to navigate and use once you get a little familiar with it. It comes packaged with the MonoDevelop IDE, however you can easily set it to use your preferred IDE such as Visual Studio.
In my experience, one of the best ways to understand how to use a new tool like a game engine without getting overwhelmed is to take small projects and just play with them. It took just a few days to go through the majority of the tutorials on that site linked above. However rather than just reading/watching them, and copying exactly what was being shown I would try to figure out how to implement additional functionality beyond what was shown. I have always retained knowledge much better by tinkering around with things rather than just mimicking.
Programming Languages of Unity
One of the many cool things about Unity though is that you can use all 3 languages in the same project(be mindful of script compilation order though!). When all is said and done all scripts are compiled into CIL(Common Intermediate Language) so performance really depends on how good the compiler is for each language. At the time of this writing I believe C#'s compiler to be the most mature of the three.
You can expect many more blog posts as well as some projects involving the use of Unity.