Я не профессионал в игроделе, более того, я тоже только собираюсь влиться в игродел, правда, имею опыт в "обычном программировании" (Objective-C - программирование под OS X/iOS), но вставлю свои "5 копеек" по теме:
1)
С#
Да, корни в Microsoft, да, Mono это что-то вроде костыля... но на данный момент мы имеем отличный язык с кросс-платформенными решениями любого уровня сложности.
2)
Книги. Из концептуального и свежего:
—
Designing Games - от с чего начать до работы в команде.
Из практики, возьмем, к примеру, Unity3D (даю его, так как сам начинаю в нем работать):
Beginning 3D Game Development with Unity 4. Больше на примере других языков смотреть
здесь. Ахтунг - везде английский! И без него никуда.