Le développement de jeux est-il le meilleur moyen d'apprendre la programmation? [fermé]


21

J'ai récemment entendu un instructeur mentionner que le développement de jeux était le meilleur moyen d'apprendre la programmation. Outre le fait que tout devait être créé dans du code, il a dit que vous obtenez vraiment une expérience complète et implémentez la POO dans vos programmes. En d'autres termes, tout ce que vous créez dans un jeu est un objet littéral à la fois technique et conceptuel. Est-il sûr de faire cette hypothèse? Ou y a-t-il toujours des exceptions lors de l'apprentissage de la programmation?

notez qu'il était orienté vers le développement .net / xna / c #.


3
"le fait que tout devait être créé en code". Qu'en est-il des modèles 3D, des textures, des sons et d'autres ressources? Vous pouvez créer un moteur de jeu sans eux, mais un jeu complet avec très peu de ressources, même si ce n'est pas impossible, sera tout à fait le défi.
POSIX_ME_HARDER

@Cheshire: Eh bien, vous pouvez programmer ceux-ci avec des choses comme le traitement. Je ne dis pas que c'est très pratique cependant.
Anto

2
@Cheshire: Oui, certaines personnes relèvent ce défi très directement, en créant tout de manière procédurale. Pas trop commun dans les jeux commerciaux (pour autant que je sache), mais populaire juste pour prouver que cela peut être fait et j'ai vu des démos assez impressionnantes comme ça.
FrustratedWithFormsDesigner

6
Je suppose que cette question signifie «développement de jeux» plutôt que «jouer à des jeux» lorsque je pose des questions sur les jeux? Impossible d'arrêter de faire le saut intellectuel de Call of Duty vers C ++ ...
HorusKol

1
Si vous voulez que le jeu soit jouable, vous trouverez peut-être que vous devez compromettre la conception OO pure en faveur de la vitesse.
Peter Taylor

Réponses:


25

Le développement de jeux est à mon avis l'un des développements les plus difficiles. Examinons tous les concepts qu'une personne qui crée un jeu de tir à la première personne doit connaître:

  • Graphique
    • Calculs 3D
    • Optimisations de vitesse
    • Interface avec le matériel graphique
  • Le jeu
    • Structures de données
    • Formats de fichier pour l'enregistrement
    • Conception générale, sinon vous allez créer un gâchis auquel il est impossible d'ajouter des fonctionnalités
    • Connaissance du réseau si le jeu est multijoueur
  • Algorithmes d'IA
    • Trouver son chemin
    • Combattre au combat
  • Édition
    • Connaissance du système d'exploitation, comme le fonctionnement des installateurs
    • Développement Web possible pour faire passer le mot

Vous voyez, un jeu peut couvrir un grand nombre de domaines simultanément. Cela en fait un excellent outil d'apprentissage si vous êtes prêt à passer du temps et à le faire bien.

Quant à la POO, c'est un modèle qui fonctionne bien. Vous pouvez utiliser un jeu comme outil d'apprentissage pour pratiquer de bonnes techniques de conception.

Pour répondre à votre question, cependant, ce n'est pas le seul moyen d'apprendre la programmation. Une fois que vous devenez développeur intermédiaire, la création d'un jeu vous permettra de toucher à de nombreux concepts et niveaux de programmation. En plus, c'est amusant!


12
Vous avez oublié une chose, une histoire pour ce jeu, et parfois, l'histoire est tout ce qui compte.
Mahmoud Hossam

Cela suppose que c'est un jeu 3D.
Adam Harte,

1
@Adam: Oui, mais 2d a aussi ses calculs. J'exclus maintenant volontairement les RPG basés sur les tests;)
Michael K

1
@Mohmoud L'histoire n'est JAMAIS "tout ce qui compte". C'est une erreur aussi grave que d'avoir une histoire mauvaise / manquante. Il y a de nombreux aspects qui contribuent à faire un bon jeu. Je ne veux pas jouer à un jeu ennuyeux, peu importe à quel point l'histoire est géniale. De plus, la plupart des jeux de puzzle réussis n'ont pas d'histoire.
Adam Harte

La théorie des jeux est également pratique.
VirtuosiMedia

46

Ne pas être tautologique, mais la programmation est la meilleure façon d'apprendre la programmation. Si vous êtes intéressé par les jeux informatiques, la programmation de jeux peut être un excellent moyen d'apprendre la programmation.

Je n'aime pas les jeux, mais j'adore les mathématiques, tellement de mes projets d'apprentissage étaient de nature très mathématique.

En fin de compte, vous devez trouver des moyens de résoudre les problèmes de code et les jeux fonctionnent pour de nombreuses personnes.


c'est ce que je pensais à l'origine. Mais considérez votre absolument nouveau dans la programmation. Le jeu semble être un excellent outil pour apprendre de nombreux concepts différents. Michael en énumère certains. Pour être honnête, j'aurais aimé avoir d'abord appris la POO du point de vue du jeu. Mais cela pourrait être dû au fait qu'il a été mal expliqué, ou que le développement d'applications métier rend la compréhension du concept un peu plus difficile. Il est certainement intéressant d'observer les deux arguments.
Edward

@penguin de quelle manière jouer à Call of Duty ou Halflife vous apprendrait la programmation?
jwenting le

13

C'est une façon d'apprendre la programmation, entre autres. Lorsque vous écrivez du code, vous apprenez des choses. Maintenant, est-ce la meilleure façon? Pas si sûr.

Au moins, les deux raisons données par votre professeur ne sont pas valables .

  • "tout devait être créé en code" : lorsque vous écrivez une application métier, vous écrivez en fait le code. Il ne sera pas écrit par magie. Oui, il existe des aides qui vous permettent d'utiliser du code généré automatiquement. Non, il n'est pas obligatoire de les utiliser. Soit dit en passant, les parties générées automatiquement sont généralement les plus ennuyeuses de la programmation (ce n'est pas en ajoutant des contrôles au contrôle Windows Forms que vous apprendrez quelque chose d'excitant et d'utile).

  • "vous obtenez vraiment une expérience complète et implémentez la POO dans vos programmes" : quelqu'un doit m'expliquer pourquoi cela n'est valable que pour les jeux, mais invalide pour autre chose. Si vous comprenez la POO et souhaitez l'utiliser, vous pouvez également l'utiliser dans des applications commerciales. Si vous ne l'avez pas ou ne voulez pas l'utiliser (et préférez utiliser la programmation fonctionnelle par exemple), le développement de jeux ne vous forcera pas à changer.

Mais:

Développer des jeux peut être amusant . La plupart des jeunes aiment les jeux, alors ils aimeraient développer un jeu plutôt que d'écrire une application commerciale, ce qui sera extrêmement ennuyeux pour la plupart d'entre eux. En voyant cela, les enseignants peuvent commencer à croire que le jeu est en fait la meilleure façon d'apprendre la programmation, puis ils essaieront de trouver une explication logique à cela.

Cela dit, ces enseignants finissent par rendre le développement de jeux ennuyeux pour les jeunes comme le développement d'applications commerciales. S'ils croient que le jeu doit être fait pour apprendre la POO, etc., ils demanderont à leurs élèves de faire des types de projets qui ne sont pas agréables du tout. Ce fut l'une des plus grosses erreurs de mes professeurs quand j'étais au collège. Ils nous ont donné très souvent des projets de jeux à écrire en Ada en mode console. Pas de graphisme. Pas drôle. Aucune expérience utilisateur. De toute ma vie et de ma carrière, je n'ai jamais vu de projets aussi ennuyeux que ça.


4
Jeux fonctionnent bien avec la POO , car il est très facile de voir comment tous BadGuy, Weapon, PowerUpet d' autres éléments dans un jeu peut facilement être un objet. Vous pouvez programmer les interactions entre les objets et les voir à l'écran. Je pense que la partie visuelle est ce qui la rend si attrayante. Les applications commerciales qui ont des hiérarchies de type de ServerTaskScheduler, AbstractDataProcessor, UserQueryAgent, etc ... ne sont pas aussi excitant , même si elles peuvent enseigner les mêmes concepts OOP que dans les jeux.
FrustratedWithFormsDesigner

4
@FrustratedWithFormsDesigner: peut-être que je ne comprends pas parce que j'ai passé trop de temps à développer des applications métier, mais je ne comprends pas pourquoi il serait plus difficile de voir comment Customerou Productou Transactionpeuvent être des objets. Mais je comprends qu'il est beaucoup plus agréable de s'occuper des BadGuys plutôt que des ennuyeux Transaction.
Arseni Mourzenko

Cela a plus à voir avec le niveau de la pensée abstraite. Certains programmeurs sont souvent accrochés aux noms parce qu'ils ne savent pas à quoi se rapporter. Par exemple, j'ai rencontré des développeurs qui n'ont aucune idée de ce que cela Transactionimplique.
Spoike

7

La programmation de jeux est la meilleure façon d'apprendre la programmation de jeux. Si vous voulez apprendre le développement Web, faites-le, si vous voulez apprendre la programmation des systèmes, faites-le et ainsi de suite.

La programmation de jeux est difficile, et elle vous apprendra probablement beaucoup de choses (Michael en a noté beaucoup dans sa réponse, et beaucoup d'entre eux sont très difficiles et utilisables en dehors des jeux également). La création d'un RPG ou d'un magnat (ou d'un jeu similaire) vous en apprendra beaucoup sur la conception OOP car ils se prêtent très bien à ce paradigme. Vous pourrez également en apprendre beaucoup sur les considérations de performances, certaines mathématiques hardcore pour les jeux, etc., selon la complexité de vos graphiques et de votre physique.

C'est une bonne façon, et la meilleure façon d'apprendre certaines choses, mais ce n'est pas une façon supérieure d'apprendre la programmation. Peu importe le nombre de jeux que vous avez programmés, il est probable que vous n'aurez aucune idée de la façon de créer un système d'exploitation. Je pense que la plupart des développeurs pourraient encore gagner quelque chose en développant un jeu, même s'ils ne le font pas comme discipline principale de programmation, tant qu'ils ont le temps.


7

Question: Quelle est la meilleure méthode pour apprendre la programmation

Réponse: La méthode que vous utilisez réellement

C'est-à-dire que lorsque vous apprenez ou faites quelque chose, peu importe la méthode que vous choisissez tant que c'est une méthode que vous suivez réellement.

Si le jeu est quelque chose qui vous semble vraiment amusant, allez-y. Si vous trouvez que la résolution de problèmes mathématiques est plus satisfaisante, commencez par cela. Il existe de nombreux types de programmation et chacun requiert des compétences différentes, donc un bon pari est de commencer par celle que vous trouvez la plus intéressante, c'est probablement celle avec laquelle vous travaillerez.

... Mais oui, le jeu est un bon moyen d'apprendre une assez large gamme de programmation car il intègre les mathématiques, la concurrence, les algorithmes, oop, les graphiques, etc.


4

Si vous aimez les jeux, écrire des jeux serait un bon moyen d'entrer dans le développement, mais je ne dirais pas que c'était le meilleur moyen. Je pense que la meilleure façon est un cours de diplôme CS suivi d'un travail avec une maison de logiciels qui investira dans la formation et le mentorat du personnel junior.

En dehors de cette réponse certes plutôt pompeuse, oui, le développement de jeux vous apprendrait beaucoup de bonnes compétences, je pense, et si vous aimez les jeux informatiques, cela vous gardera intéressé par le processus de développement. Cela doit être plus intéressant que beaucoup d'autres applications simples que vous voyez dans les livres.


2

Je dirais que la meilleure façon d'apprendre à coder est de le rendre amusant pour vous. Ce ne doit pas être un vrai jeu, mais une sorte de jeu pour vous. Pour moi, c'est un jeu pour résoudre certains problèmes mathématiques en développant des algorithmes de manière à pouvoir résoudre un problème complexe de la manière la plus rapide possible. En me défiant, je deviens un meilleur codeur à chaque tentative de résoudre un problème. Plus le problème est difficile, mieux c'est.

En ce qui concerne l'apprentissage du code (meilleures pratiques), je dirais que vous devrez relever de plus grands défis. Les défis exigent beaucoup plus qu'une entrée / sortie unique


2

Je n'ai jamais entendu dire que jouer à Halflife ou Call of Duty vous apprend des compétences en programmation.

Les programmer pourrait, mais programmer quelque chose comme ça n'est pas quelque chose qu'un débutant devrait même essayer un peu. Et surtout les débutants ont souvent l'impression qu'ils peuvent créer le prochain blockbuster avec leurs connaissances de programmation inexistantes. Dites-leur d'essayer de faire un clone PacMan ou Tetris en premier et ils crient que ce n'est pas ce qu'ils veulent faire et que vous devriez «me donner zuh koduz».


1

Non, pas vraiment. Il n'y a pas un meilleur type de projet pour apprendre la programmation sur. Le meilleur type de projet est celui qui correspond à vos intérêts.

Par exemple, j'ai essayé d'apprendre la programmation de différentes manières, notamment en programmant des jeux. Cela n'a jamais semblé coller.

Puis quand j'ai eu besoin d'apprendre comment programmer ce que je faisais dans ma recherche? En ce moment, je suis assez à l'aise pour dire que je connais 2 langues et que je travaille sur une troisième. Pourquoi? Parce que c'était pertinent pour mes intérêts. J'avais une raison de m'en tenir à cela, une raison d'apprendre et plus de problèmes à essayer que juste "Exercice 8" dans le livre.

Incidemment, cela ne signifie pas que la programmation de modèles épidémiques est la meilleure façon d'apprendre la programmation. Mais c'était la meilleure façon pour moi. Trouvez le vôtre. Il peut s'agir de jeux, mais il se peut fort bien que non.


+1 pour "le meilleur type de projet est celui qui correspond à vos intérêts". Amen.
Bryan Oakley

0

D'après ma propre expérience, en écrivant un jeu (en supposant que vous le faites sur votre propre / petite équipe de développeurs), vous êtes obligé non seulement de penser à la partie algorithmique / analytique de la programmation, mais aussi à l'expérience utilisateur et à la conception.

En plus de cela, si c'est un jeu raisonnablement complexe, vous y travaillerez pendant quelques mois, et vous vous rendrez compte de l'importance de documenter tout ce que vous faites - ce qui fera de vous un meilleur membre d'une équipe.


... mais si vous écrivez une sorte de programme qui interagit avec un utilisateur, n'êtes-vous pas obligé de penser à l'expérience utilisateur et à la conception? Voulez-vous dire qu'avec une application cliente traditionnelle, vous n'avez pas vraiment à penser à ces choses, mais le jeu vous y oblige ? Et les grandes applications de bureau ne peuvent-elles pas s'étendre sur plusieurs mois et vous obliger à faire de la documentation? Comment cela s'applique-t-il au jeu, mais pas aux autres types de programmation?
Bryan Oakley


0

Je serais d'accord sauf ...

Il est tout aussi probable que la première expérience de programmation que beaucoup aient jamais eue était la construction et la programmation d'un robot Lego (Mindstorms).

Alors que le terme général "jeu" peut définir une catégorie si vaste qu'elle englobe presque toute la programmation, lorsqu'il est utilisé dans le contexte de l'affiche originale, il semble toujours signifier "écrire des jeux de style Doom".

Comme cela a été dit précédemment - la meilleure façon d'apprendre la programmation est d'avoir quelque chose que vous voulez vraiment qui nécessite un programme. C'est - apprendre la programmation en écrivant le programme que vous voulez.

L'un de mes premiers programmes Windows était un programme de contrôleur MIDI, parce que je voulais vraiment un programme de contrôleur MIDI, et Windows semblait la solution idéale (curseurs, boutons, prise en charge SDK pour MIDI, etc.). J'ai appris une tonne sur la programmation Windows (c'était de retour dans les jours Win 3.1) de ce programme.

Je n'ai jamais été amateur de programmation de jeux pour les raisons mentionnées ici également - je ne dessine pas très bien, donc tout jeu que je crée aura des graphismes moins bons que ceux d'un artiste. Je veux apprendre à programmer, pas à gérer une "équipe de jeu" (exercice louable mais totalement différent).

En fin de compte, je suis tout à fait en désaccord avec la déclaration de l'enseignant. La meilleure façon d'apprendre la programmation est d'écrire le programme que vous voulez vraiment.

-R

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.