there now two kind of games, the casual and the hardcore games, and its important decide which of these is you target.
Casual games works fine in Flash, Java, Arcade, Web, etc.
Hardcore games works better in C, C++, DirectX, High-end performance machines.
And the programmer's skills are differents to, because the first don't need a great story, production, modeling, engines, physics, etc, just a happy-funny gameplay.
I develop hardcore game and things like Java, Flash, aren't in my targets and i don't recommended.
Chose a side and then you vision will be wide open.