C++ is usually the most balanced programming language for games.
Memory management has to be done manually though.
It's not that Java and others are bad, they just aren't really cross-compatible and they spring up memory leaks like there's no tomorrow.
Sharing this Game Design Book:
Intro to Game Development
It's pretty big, and it's graduate level but I'm sure everyone here knows what they're doing.
It's too big to preview so you have to download it.