I am a big fan of Unity3D, which is a cross-platform framework for 2D or 3D game development. It's primary language is C#, which isn't necessarily my favorite language, but the framework has a number of advantages, including:
Cross platform support. Write your game once, compile it for many platforms, including iOS, Android, Xbox, web player, and Windows.
Third party component market. Hundreds of pre-written components are available, some of them free, others for a small fee. So, if your game needs a humanoid model with realistic motion-capture physics, you don't need your own motion-capture studio. You can find practically anything you might need on the market.
A large and active community of developers. If you have questions, there's someone out there who can help you out.
Great documentation and tutorials in how to build your first application.
One big disadvantage though, they don't support Chromebooks, although there is a very difficult workaround that requires downgrading to a previous version of Unity3D that used to support NaCl. Until that changes, you probably won't see many Unity3D games on Chromebook.
See question on Quora
via Answers by Jeff Nelson on Quora,