Par où commencer le développement de jeux 2D ?

Kivy921 - 19 sept. 2023 à 13:19
mamiemando Messages postés 33093 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2024 - 21 sept. 2023 à 03:46

Bonjour,

Après des heures de recherches voire même des jours, je ne parviens à comprendre ou trouver ce qui me correspond, il faut savoir que je lance un défi de trois mois pour créer un jeu vidéo de mes rêves qui n'est rien que Geometry Dash & Terraria, mais il y a une condition qui est de ne pas créer sous un moteur de jeu tels que Unity, Unreal Engine et Godot pour des raisons d'originalités et préférence.

J'aimerais créer des jeux vidéos en deux dimensions (et des jeux simple en 3D), il y a pleins d'outils qui permet de faire ce là, mais je me bloque au choix, je n'arrive à me décider lequel vais-je commencer, vu comme ça vous pourrez facilement m'en trouver un que vous connaissez déjà, mais il est fort probable que j'ai déjà recherché cette outil là, Pour ce qui Pygame (Python), Monogame (C#), LibGDX (Java), LÖVE (Lua)... tous ces bibliothèques sont bons mais contiennent des désavantages comme être limité à certaines fonctionnalités et aussi les jeux faits à partir des bibliothèques sont seulement des prototypes de jeux ou bien des jeux réellement simplistes, récemment j'ai vu une personne en train de créer des jeux sans libraires faits pour des jeux, ça m'a intrigué car il utilisait seulement une vielle librairie graphique en Java et pourtant il réussissait à créer des bons jeux avec, donc techniquement avec Tkinder de Python je pourrais reproduire des jeux 2D ? 
Pendant mes recherches j'avais aperçu que avec C/C++ on pourrai créer avec SDL/SFML j'aimerai bien l'apprendre mais c'est le langage qui me dérange  en font elle car, comme quoi pour maîtriser le C++ il faudrait au moins 10 ans ! c'est énorme pour un langage tandis que les autres eux c'est 2 ou 3 ans pour maîtriser par exemple Python, alors c'est ça qui me démotive à apprendre SDL/SFML, j'en ai bien des choses à raconter mais il ne faut pas non plus faire un pavé.

Merci à vous.

A voir également:

2 réponses

mamiemando Messages postés 33093 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2024 7 751
21 sept. 2023 à 03:46

Bonjour,

Je pense que python est très bien pour débuter, car c'est un langage simple à prendre en main (bien plus que le C ou le C++).

Parmi les modules intéressants, tu peux regarder effectivement du côté de :

  • pygame (jeu 2D)
  • ursina (jeu en 3D)
  • Dans une moindre mesure tkinter (utilisé pour faire des fenêtres, au même titre que PyQt ou PyGTK). Mais si tu veux faire par exemple un démineur (dont l'interface est une grille de boutons dans une fenêtre) ça fait parfaitement l'affaire. Dans le cadre de tkinter, tu peux également utiliser turtle qui permet de dessiner assez facilement des formes géométriques dans un canvas.
  • PySDL

Après mon meilleur conseil serait, commence par quelque chose de simple, puis quand tu l'auras maîtrisé, passe au registre supérieur. Par exemple, tous les modules que j'évoque reposent sur une boucle d'événement (pour réagir à un clic, à un appui sur une touche, etc.) ce qui est une manière de programmer un peu déroutante au début.

Afin d'y aller en douceur, je te propose les étapes suivantes :

  1. Un programme tour par tour (genre un mastermind ou un pendu en mode texte) est bien pour apprendre les bases du langages.
  2. Ensuite, tu peux envisager d'améliorer ce programme avec une interface graphique (pourquoi pas en tkinter), ce qui te permettra d'apprendre à gérer une boucle d'événements.
  3. Quand ce sera maîtrisé, tu pourras commencer à envisager un jeu en 2D avec pygame (pourquoi pas un snake ?).
  4. Quand ça aussi, ce sera maîtrisé, tu pourras commencer à regarder du côté d'ursina. 
  5. Et quand tu auras compris ces notions (inutiles de connaître un module à 100%, l'important c'est juste comprendre le principe), tu auras sans doute le recul nécessaire pour coder un jeu avec les modules de ton choix.

Bonne chance

1
mariam-j Messages postés 1058 Date d'inscription mercredi 9 mars 2022 Statut Membre Dernière intervention 5 mai 2024
19 sept. 2023 à 14:51

Bonjour,
ça dépend grandement du genre de jeu.
Faire un "Pong" c'est simple dans n'importe quel langage.
La complexité du code ne dépend que de la complexité du jeu.
La 3D sans moteur de jeu, tu peux oublier, sauf à être un crack en maths.

-1
mamiemando Messages postés 33093 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2024 7 751
21 sept. 2023 à 03:34

Faire un "Pong" c'est simple dans n'importe quel langage.

  • Non c'est faux
    • Quel que soit le langage il va falloir prévoir une interface graphique (déjà c'est pas si simple) ou à défaut être capable de rafraîchir l'affichage si tu envisages une interface en mode texte. Ensuite il va falloir réagir en temps réel aux touches (donc avoir une boucle d'événements) donc pas simple. Et ensuite ll y a toute la gestion du jeu lui même.
  • Pour des jeux simples, il vaut mieux envisager un jeu tour par tour en mode texte (par exemple un pendu, un mastermind, etc.)

La complexité du code ne dépend que de la complexité du jeu.

  • Non c'est faux. Cela dépend du langage. Par exemple, il est plus compliqué de développer un jeu en langage C qu'en python.

La 3D sans moteur de jeu, tu peux oublier, sauf à être un crack en maths.

  • Non, c'est faux également. Pas besoin d'être un crack en maths, de nos jours, plus grand monde ne redéveloppe un moteur 3D. Par exemple en python, on pourrait utiliser ursina.
0