Das Rad muss nicht immer neu erfunden werden, wenn man frei-nutzbare Code-Schnipsel (sogenannte Snipets, z.B. aus Tutorials) nutzt um seinen Code zusammen zu schreiben (Code-Recycling). C und C++ sind die meist-genutzten Programmiersprachen, da findet man vieles, was man haben will, und viel Unterstützung.
Ich nutzte an der Runtime, die ich unter Ubuntu schreibe, C++ als Programmiersprache, für die Grafik ist SDL verantwortlich und für die Skriptbarkeit wird LUA rein gelinkt. Es funktioniert wunderbar damit.
Bei Java und .Net braucht man immer noch eine VM die den Bytecode just-in-time interpretiert. Mono ist zwar schon weit, aber ist nicht 100%-.Net kompatibel.
PS: Einziges Manko bei SDL: Es fehlt die Darstellung von Schrift. Es gibt zwar das Paket SDL_TTF, das aber irgendwie rumzickt. In 9 von 10 Fällen stürzte mein Programm mit einer "Segmentation Fault" ab. Deswegen nutze ich jetzt einen Bitmap-Font.