Je trouve que tu ne te poses pas les questions dans le bon ordre.
Tu dois déjà visualiser ce à quoi tu veux que ça ressemble :
2D case par case (advance wars)
2D vue de coté (mario bros)
2D isométrique (AoE II, FFTA)
Tour par tour ou temps réel ?
Ensuite, tu programmes déjà un moteur graphiquement basique. Et petit à petit, tu rajoutes du contenu, les batiments si tu veux faire un RTS, les personnages pour un RPG, les différentes map et liaisons entre map, le système de sauvegarde. Parallèlement, tu ajoutes l'interface et tu fais des modifications en fonction des contraintes que tu n'avais pas prévu ou dûe à l'évolution de tes idées.
Actuellement, je suis en train de refaire un Final fantasy tactics en C++ et je n'ai même pas encore réfléchis à un nom, ni même les cinématiques ou même la bande son ou les dialogues alors que les combats commencent à prendre forme.
Tout ça pour dire que tu devrais déjà apprendre un langage sur, par exemple, le site du zéro ou bien même à la fac.
Personnellement, j'ai appris le C++ avec le site du zéro et le java à la fac.