Bonsoir,
Parmi les langages que tu cites, sans hésiter je te conseille de commencer par python, car c’est à la fois un langage relativement simple à apprendre, puissant et polyvalent.
Tu peux aussi bien faire de la programmation système, du jeu vidéo, du web, des applications de bureau, et même un peu d’électronique en choisissant bien le matériel.
Java est aussi un bon langage pour apprendre la programmation, raison pour laquelle on commence souvent par lui à l’école. Le problème c’est qu’il n’est que moyennement adapté pour faire des jeux vidéo hors mobile, et plutôt mal adapté pour apprendre les arcanes du système d’exploitation.
Tu n’as pas mentionné les jeux sur mobile dans ta liste d’intérêts, donc Java n’est à mon sens pas le meilleur choix.
Si tu n’es pas très intéressé par le web, tu peux supprimer JavaScript de ta liste à mon avis.
Aujourd’hui c’est un incontournable dans le monde professionnel, mais pour l’instant tu t’en fiches de ça: ton but est de créer quelque chose qui t’amuse.
Si tu changes d’avis plus tard, rien n’est jamais perdu; JavaScript est aussi assez simple à apprendre, les bons tutoriels sont beaucoup plus dispersés par contre.
Il existe aussi des bibliothèques pour faire du jeu 2D et 3D en JavaScript, mais c’est clairement moins rôdé à mon sens, et surtout beaucoup moins stable.
JavaScript et son univers évoluent très vite, je pense que c’est un gros inconvénient pour un débutant; tu risques de perdre rapidement pied sans trop comprendre ce qui se passe.
Parmi les domaines que tu cites, contrairement à la majorité des autres, je te conseille plutôt de te lancer dans les jeux vidéo avant la programmation système, si tu ne veux/peux pas faire les deux en parralèle.
Tout simplement parce que le plus important, c’est de s’amuser pendant son apprentissage, parce que tu peux être créatif à l’infini, et accessoirement, parce qu’en faisant des jeux, mine de rien, on touche à plein de domaines variés: afficher des choses, réagir à ce que fait l’utilisateur, faire un peu de sound design et de musique, gérer un plateau puis plus tard un univers avec ses règles; viennent ensuite l’intelligence artificielle et le réseau si tu continues jusque là.
Apprendre comment fonctionne un système d’exploitation et ses périphériques, et comment gérer tout ça, c’est assurément très intéressant aussi.
Mais c’est clairement moins ludique, et moins facile d’auto-évaluer sa progression, car moins facile de se fixer des objectifs
Par contre, oublie la 3D dans un premier temps, c’est quand même assez comppliqué. Commence petit et avance doucement.
Voici une petite liste de jeux auxquels tu peux t’essayer, par ordre de difficulté:
- Plus ou moins => pour bien commencer avec sans doute le jeu le plus simple du monde
- Bataille navale, morpion ou pourquoi pas puissance 4 contre l’ordinateur => où tu apprendras à gérer une grille 2D et une IA assez simple
- Bomberman ou space invader => où on ajoute du mouvement, du temps réel et de la gestion de collision, des bases centrales pour tout jeu vidéo
- Candy crush, tetris, casse-brique, ou jeu de plate-forme => où on augmente dans la difficulté des règles, où on commence à gérer des interactions un peu plus complexes, et où on commence à gérer sérieusement des niveaux et peut-être des sauvegardes
Je pense que la programmation système, en tout cas la base, ça viendra tout seul quand le temps sera venu pour toi de partager tes premières créations (pour que quelqu’un qui ne s’y connait pas en programmation puisse jouer à ton jeu), ou quand tu t’attaqueras aux jeux en réseau.
Oui, car le réseau, je le mettrais aussi de côté au début, car en fait ce n’est pas si simple que ça en a l’air, entre les joueurs qui peuvent se déconnecter n’importe quand et les problèmes de synchronisation…
En résumé, concentre-toi d’abord sur des jeux assez simples, en solo, et en 2D.
ET une fois que tu maitriseras assez bien, tu pouras prendre une grande respiration, te lancer à la conquête de la 3D, te rendre compte que python n’est pas forcément très adapté pour ça, et alors, au choix, tu te tourneras vers C# ou C++.
Retiens que C++ est probablement le langage le plus puissant et le plus polyvalent de tous, mais que c’est aussi certainement celui qui est le plus compliqué, celui où il est le plus facile de se tirer des balles dans les pieds, et qui te prendra le moins par la main pour t’expliquer où sont tes erreurs.