Comme language, je te conseille le C, puis le C++. Pour un débutant en programmation, le C est déjà un language difficile ( tableau de char[] pour les caractères, gestion de la mémoire "à la main", pointeurs...) mais c'est également un language extrèmement flexible. Tu peux créer un kernel comme une calculatrice avec.
Contrairement à pas mal de gens, je conseille de ne pas commencer par le C++. C'est d'ailleurs ce que je reproche le plus au sdz. Autant leur cours de C est génial, autant le nouveau cours de C++ n'est pas assez approfondi. Au final, on se retrouve avec des débutants complètement perdus, qui ne savent même plus faire un tableau ni utiliser .c_str(), et je ne parle même pas des classes abstraites...
Quand à ton projet, il me semble très (trop ?) ambitieux. Pourquoi ne pas faire un Mario ou un snake en premier lieu ?