Qu'est-ce qu'une bonne plateforme de départ pour un programmeur de jeu adolescent? [fermé]

32

Mon fils (15 ans) a décidé de poursuivre une carrière de programmeur de jeux. J'ai dit qu'il devrait commencer maintenant avec un jeu simple. Il n'a pas encore d'expérience en programmation, mais je suis un programmeur (applications professionnelles, pas de jeux), donc je peux lui apprendre la programmation, mais quelle serait une bonne plateforme pour commencer? Au départ, je cherche quelque chose qui puisse fournir des résultats rapides, pour maintenir son enthousiasme.

Que suggérerais-tu?

gkrogers
la source
13
Fermé? Vous plaisantez! J'ai posé cette question l'année dernière avant, il a eu au moins 19 votes positifs, ses réponses positives ont reçu au moins 86 votes positifs, 5 personnes l'ont marquée comme favorite. Et les réponses impliquent des faits, des références ou une expertise spécifique. Enfin, cela m’a été incroyablement utile et, à mon avis, à d’autres personnes également. Comment puis-je faire appel de cette décision?
Gkrogers
1
Vous pouvez faire un post à ce sujet sur meta si vous le souhaitez vraiment. meta.gamedev.stackexchange.com
Tetrad

Réponses:

30

XNA est une bonne solution pour un programmeur assez confiant. Ce serait un bon objectif à atteindre dans le futur.

Le kit de développement Unreal est un moyen d'obtenir des résultats beaucoup plus rapidement et facilement, et peut constituer un bon point de départ. Des commentaires ont indiqué que l'UDK est en fait une très mauvaise alternative, je ne peux donc pas le recommander.

L'unité est une alternative, elle fonctionnera sur les téléphones, ce que UDK ne peut pas faire (pour autant que je sache). Donc, s’il adore programmer des jeux pour téléphones, l’unité serait peut-être meilleure?

Martin
la source
4
Je suis d'accord avec ça. L'unité est une alternative à l'UDK, même si je pense que c'est un peu plus difficile à comprendre. Voyez si vous pouvez le faire jouer avec UnrealScript (le langage de script du Unreal Development Kit). XNA est certainement le premier vrai langage de programmation de jeu à partir de zéro qu'il devrait utiliser, cependant; c'est le plus facile (relativement parlant; pas pour les débutants absolus) et j'adore ça pour le prototypage parce que vous pouvez très rapidement commencer à dessiner des choses à l'écran.
Ricket
2
+1 pour la suggestion XNA. S'il s'efforce de bien apprendre et qu'il a de bonnes idées, il peut facilement gagner de l'argent en vendant des jeux pour le Zune / WP7 / XBOX 360.
2
Unity fonctionne sur l'iPhone et dans le navigateur. Il s'agit donc d'un bon moyen de distribuer le jeu aux personnes à tester et de s'habituer à être flambé de bonne heure
Chris S
4
Évitez UDK. Cela peut être très puissant, mais c'est aussi une douleur énorme. C'est plein de "pièges" et de restrictions non documentées.
Peter Ølsted
4
J'ai aussi 15 ans, j'ai appris pascal à 10 ans, puis C, puis C ++. Essayé de programmer des jeux en C ++ et Allegro à 12 ans et plus, peu de succès, je pourrais faire beaucoup de choses, mais je ne pouvais pas penser à la façon de construire un jeu entier. Cela m'a empêché de dormir. Avec XNA, les choses étaient beaucoup plus simples et la gestion facile des erreurs des exceptions C # montrées au moment du débogage aide beaucoup à vous aider à savoir où vous faites quelque chose de mal. Bien sûr, d'autres langages ont aussi, mais je pense que Visual C # a le meilleur outil de débogage.
Gustavo Maciel
20

J'ai aussi 15 ans, alors je suppose que ça pourrait aider? : P

J'ai récemment commencé à apprendre Python (je pratique le C ++ depuis environ un an) et je le trouve beaucoup plus facile à apprendre que le C ++. Il y a beaucoup moins de pièges et vous avez besoin de peu de code pour afficher quelque chose à l'écran - ce que je trouve vous donne envie de continuer.

Et il y a des wrappers comme Pygame et Pyglet sur SDL / OpenGL pour les graphiques.

Avant de commencer à faire des jeux simples, je conseillerais d’apprendre une langue pendant au moins deux mois. (Bien sûr, les jeux avec texte comme deviner le nombre et le pendu sont de bons exercices pendant ce temps)

Le canard communiste
la source
9
Python et Pygame ont été une bouffée d’air frais après avoir écrit des jeux en C pendant de nombreuses années. Je pensais pouvoir faire la même chose environ 10% du temps en Python en raison de l'aspect supérieur de tout.
dash-tom-bang
Je sais que je ressens la même chose (et je fais du C ++ depuis un an).
Le canard communiste
+1 Je dois dire que, malgré le fait que je sois un peu familier avec Python, c'est ma première recommandation pour les programmeurs débutants. Maintenant, nous avons juste besoin d'un robot python! Aussi de bonnes suggestions pour par exemple le bourreau. =)
maigre
Mec, tu devrais apprendre un langage .net (j'aime bien le C #, le F # pas tellement, vb.net est ok. Boo n'est pas supporté dans les studios visuels :(). Les langages sont moins sujets aux erreurs que le C ++ et tu obtiens des exceptions quand tu fais quelque chose faux (une très bonne chose. C ++ devrait faire plus de cela.) Et vous pouvez apprendre à utiliser la pile d'appels, regarder les variables, les points d'arrêt (je suppose que les points d'arrêt fonctionnent dans un IDE python?) et vous serez en mesure de déboguer rapidement Ce qui est bien quand vous écrivez un code débutant instable
13

Un peu d'une réponse peu orthodoxe ici:

Starcraft II Galaxy Editor.

Vous pouvez faire presque n'importe quel jeu dans Starcraft 2.

Il enseigne également à la plupart des constructions de programmation telles que les boucles et les déclarations if d'une manière centrée sur l'interface graphique.

Une fois qu'il est confiant avec les bases, vous pouvez lui avoir des trucs de script.

S'il y parvient et qu'il trouve cela intéressant, il adorera programmer correctement ses jeux.

Cloueur
la source
3
J'étais sur le point de suggérer Warcraft III. Se lancer dans un langage de script simple est vraiment une bonne façon de faire. Warcraft III et Starcraft II disposent tous deux d’une interface graphique que vous pouvez utiliser pour vous mettre à l’aise et d’une fonction permettant de visualiser le code en tant que script brut, afin de visualiser le fonctionnement interne.
William Mariager
2
Bonne voie . Commencer par N'IMPORTE QUEL éditeur de niveaux est la meilleure solution. Il peut ignorer tous les échafaudages et toutes les difficultés et aller directement à la partie intéressante du tissage d'un scénario et de la conception d'un niveau.
Bobobobo
De loin l’une des meilleures réponses que j’ai jamais vue pour ce type de question, j’ai commencé à créer des jeux quand j’étais très petit avec MS powerpoint grâce à des hyperliens et à un jeu appelé "le club de robot"; qui dans son gameplay vous apprend beaucoup des bases de la programmation giantbomb.com/the-robot-club/3030-29776
Jim Jones
10

Je diviserais approximativement les outils de développement de jeux en trois grandes catégories:

  1. Facile à apprendre et à utiliser, mais limité. Game Maker, Game Salad, RPG Maker, Adventure Game Studio entrent tous dans cette catégorie.
  2. Puissant, mais avec une courbe d'apprentissage abrupte. C ++ et d'autres langages de programmation "hardcore" y correspondent.
  3. Les langages intermédiaires, généralement les langages de script tels que Lua, Python et ActionScript, qui divisent la différence en vous obligeant à écrire du code tout en prenant soin des détails plus obscurs tels que la gestion de la mémoire.

Pour les personnes sans expérience en programmation, je leur conseille généralement de commencer dans la première catégorie, juste pour commencer à faire quelque chose. Lorsqu'ils se sentent à l'aise avec un outil de création donné, mais que les limitations l'emportent sur les avantages, il est temps d'apprendre quelque chose dans la catégorie supérieure.

Ian Schreiber
la source
9

Je sais que cela me sort un peu, mais en grandissant, j'ai vraiment apprécié P-Robots . Il existe un objectif très simple (battre les autres robots), une API simple et un court laps de temps entre les modifications de code et l'affichage des résultats. Cela enchaîne avec l'IA, les modèles de conception et même la structure de code à plus grande échelle (certains de ces robots peuvent devenir très gros - et qu'en est-il du partage de code entre robots?). Si vous pouvez trouver quelque chose de similaire, mais plus récent, ce serait un bon moyen d’obtenir la partie "Commencer à programmer". Suggestions:

Une fois que cela est fait, envisagez de vous lancer dans un jeu de tir à défilement 2D très simple, un jeu de plateforme ou un jeu de style arcade similaire. Vous pouvez utiliser SDL, XNA ou tout ce qui vous est le plus familier. Même obtenir un clone de pong en marche n’est pas tout à fait trivial. Cela vous donne un petit écho de ce que c'est que de construire quelque chose de "moulu".

Après cela, explorez: un mod dans un jeu 3D existant (un nouvel objet, un bot ou quelque chose) pour donner un aperçu des moteurs plus gros.

D'après ce que j'ai vu, les clés semblent être:

  • itération rapide: la possibilité de voir les résultats rapidement
  • prototypes: de nombreuses petites expériences pour acquérir une expérience et une confiance en profondeur (d'accord, comment ferions-nous un jeu de billes? Et les envahisseurs de l'espace? etc.)
  • exploration: apprendre à aimer regarder comment sont construits les jeux des autres, les peaufiner, etc.
leander
la source
2
+1 pour les mindstorms, mais j'utiliserais ROBOCODE ( robocode.sourceforge.net ) au lieu de P-Robots.
Callum Rogers
@Callum: brillant, mettra à jour la réponse =)
leander
Je voudrais utiliser LegoMindstorms avec NXC
Joe the Person
6

Mon conseil est de créer des jeux sur le Web. Pourquoi? Tout d’abord, JavaScript est une belle langue qui lui apprendra tous les concepts de base de la programmation et vous pourrez en faire un jeu formidable, compétent et multiplate-forme. Cela le qualifiera également pour bien d'autres choses que la création de jeux ... Si, pour une raison quelconque, vous ne souhaitez pas que votre fils se lance dans le développement Web, alors je vous suggère d'utiliser Python, avec un module appelé PyGame. J'ai aussi de l'expérience avec ça, et c'est génial. Ce que je ne suggère pas, c’est de commencer avec C / C ++, c’est ce que j’ai fait. C’est affreux et pourrait le rendre complètement démotivé pour la programmation.

Sur une autre note, vous êtes probablement un père génial, félicitations!

jcora
la source
1
Bonnes suggestions Cela dit, j'ai commencé par C (pas qu'il y avait de vraies alternatives à l'époque) et ce n'était vraiment pas si douloureux; Bien sûr, ce n'est pas une raison pour l'utiliser maintenant qu'il existe des langages de niveau supérieur.
o0 '.
1
Merci! De plus, je n'ai pas commencé par les jeux et mon but était qu'après avoir appris un langage de niveau supérieur, il comprenne mieux le concept général de la programmation et que sa motivation ne s'épuise pas. Et bien sur - j'y exerçais un peu;)
jcora
1
À cet âge, pouvoir partager mes créations facilement avec des amis était un facteur de motivation. Les jeux Web sont plus facilement partagés. Vous postez votre URL sur Facebook et demandez à vos amis de l'essayer. Actionscript / Flash ou Javascript / HTML5 sont probablement vos meilleurs atouts pour pouvoir partager facilement, suivi de près par Java ou Unity.
amitp
5

Mindstorms Roboter est vraiment cool. Nous avons eu des NXT à l'école et la semaine dernière, nous avons commencé à programmer des choses comme suivre une ligne, etc. Vous pouvez obtenir facilement des résultats.

Aussi, j'ai trouvé www.3dgamestudio.de il y a un moment. Je ne m'y suis pas beaucoup intéressée, mais c'était vraiment intéressant. Vous pouvez programmer avec Lite-C qui est:

Lite-C est un langage de programmation pour applications multimédia et jeux informatiques utilisant un sous-ensemble de syntaxe du langage de programmation C avec certains éléments du langage de programmation C ++.

Au http://tutorial.3dgamestudio.net/, vous y entrez. Et il existe également un éditeur de niveaux, de modèles et de terrains.

ps: J'ai 16 ans et j'ai commencé avec un ami à programmer un site Web et à personnaliser un serveur de jeu programmé. Cela pourrait donc aussi être intéressant pour lui.

Melzon
la source
Une documentation très simple, semble très facile à traiter.
Prix
4

Je ne peux pas le suggérer assez, mais construire ses propres niveaux pour son jeu préféré .

Pour une personne de cet âge ou de ce niveau de compétence, elle devrait commencer par créer des niveaux dans son moteur de jeu préféré .

Beaucoup de grands jeux sont livrés avec un éditeur de niveau qui permet plusieurs degrés de liberté.

RPG : La série d'outils à électrons NWN 2 d'Obsidian , Elder scrolls

RTS : Le rédacteur de niveau de Warcraft III est un éditeur RTS fantastique et a même créé son propre jeu ( ligue des légendes et héros de newerth ).

FPS : Marteau pour la demi-vie 2. Counterstrike était à l'origine un mod de demi-vie.

Commencez ici . Construire des niveaux pour votre jeu préféré est probablement le meilleur endroit pour commencer.

bobobobo
la source
3

Bien que toutes les informations ici soient utiles, je voulais mentionner que le STEM Challenge (un concours national de jeu organisé par la Maison Blanche et l'ESA) contient des suggestions sur les plateformes http://www.stemchallenge.org/about/Default.aspx

Gamestar Mechanic, Gamemaker, Kodu, Scratch, PBS KIDS Prêt à apprendre

J'ai l'impression qu'il existe des ressources communautaires sur ces plateformes, en particulier en ce qui concerne STEM.

Voir aussi cet excellent tutoriel sur python et pygame (qui est aussi un livre en ligne) http://inventwithpython.com/chapters/ voici le PDF de la suite du livre consacré à pygame http://inventwithpython.com/blog/making -jeux-avec-python-pygame /

Voici un autre article du NYT http://www.nytimes.com/2011/11/10/technology/personaltech/computer-programming-for-children-minus-cryptic-syntax.html?_r=2&sq=mitchel+resnick&st=cse&adxnnl= 1 & scp = 1 & adxnnlx = 1322489239-tMp1Wjl9FUcI8rLaJ6cbOw

Mise à jour: voici une discussion slashdot http://ask.slashdot.org/story/11/12/27/152228/ask-slashdot-tools-for-teaching-high-school-kids-how-to-make-games

idiotprogrammer
la source
2

Game Maker est un excellent choix pour les personnes sans expérience en programmation. Il a une version gratuite et une version payante relativement bon marché. Il vous permet de créer rapidement des jeux avec une interface glisser-déposer, mais inclut la prise en charge de scripts plus avancés.

Gregory Avery-Weir
la source
5
Je ne vais pas revenir sur cette idée, mais GameMaker et Visual Basic sont des outils qui enseignent la syntaxe incorrecte (VB) et GameMaker n’est pas vraiment génial. D'une part, vous n'avez pas accès à des IDE agréables comme VS. Créer des jeux de glisser-déposer ne vous apprend rien.
Joe the Person le
1
Je ne sais pas pourquoi vous parlez de VB; Game Maker est à peu près basé sur C. Quoi qu'il en soit, Game Maker est un bon moyen de progresser, de ne rien savoir à comprendre le type de réflexion nécessaire au développeur de jeu. Répondre aux événements, maintenir une boucle de jeu, utiliser les relations entre les ressources graphiques et le code, amener un projet de l'idée à la publication; Ce sont toutes des choses que vous pouvez apprendre sur le développement par glisser-déposer. Je conviens que le langage GML est un langage limité, mais que le système dans son ensemble constitue un bon point de départ.
Gregory Avery-Weir le
1
Je parle de VisualBasic à cause de DarkBASIC, qui est encore un autre outil de programmation horrible.
Joe the Person
Game Maker est sans aucun doute un bon moyen d’enseignement axé sur les résultats. Pas besoin d'apprendre la physique ou le rendu. Il suffit d'utiliser les fonctionnalités intégrées. Et le passage au C ++ est facile, car vous pouvez commencer par créer des dll et les utiliser dans Game Maker, puis plus tard, abandonner complètement Game Maker.
William Mariager
Ne suggérez jamais GameMaker à une personne âgée de onze ans… S'il a quinze ans, il pourrait tout aussi bien se faire une idée de la programmation.
Jcora
2

Comme Martin l'a mentionné, l'UDK est probablement le moyen le plus rapide de faire fonctionner quelque chose, car il comporte de nombreux éléments prédéfinis tels que l'intelligence artificielle, les modèles et une multitude de livres. Il a un très bon éditeur de carte et le langage utilisé est Java-esque (et ECMA-script like).

Une alternative pourrait être d'essayer de faire des jeux en Flash ou Silverlight - commencez avec de simples jeux en 2D. Quel que soit le genre de jeux qu’il aime, il dicte la boîte à outils.

Chris S
la source
1
Non! Pas UDK! C'est: bogué, lent, sujet aux erreurs, complexe, etc. Optez plutôt pour Unity.
Joe the Person
@ firedude67 UDK buggy, sujet aux erreurs? blague?
Quazi Irfan
bien dans mon expérience, il a pris énormément de retard, tout ce que je construisais donnait BSOD, et je ne trouvais aucune documentation utile. Même les exemples de projets n'ont pas été exécutés.
Joe the Person
1
Je n'ai jamais trouvé de bug UDK, mais je ne le recommande PAS vivement à un programmeur de jeux. Un artiste, oui, mais un programmeur, non. La 'documentation' est une blague, et pour trouver les classes que vous devez sous-classer, vous devez en fait ouvrir la classe parente, car ils ont décidé de ne pas vous donner de référence d'API. En outre, il faut beaucoup de travail pour créer différents types de jeux, car il s'agit d'un moteur FPS au cœur.
DMan
1

Venant d'un enfant de 14 ans, ce conseil pourrait être utile. Je trouve que la meilleure façon de choisir une plate-forme est celle qui convient le mieux. J'ai fait ce post plusieurs fois auparavant.

De Reddit -

Choisissez une langue qui convient à vos besoins. La plupart des joueurs ne se soucient pas de la langue dans laquelle le jeu est programmé. Ils se soucient de savoir s'ils peuvent ou non y jouer. Ils se soucient si cela fonctionne rapidement sur leur ordinateur. Ils se soucient si le jeu n'est pas 10gb de taille. Ils ne se soucient pas de savoir si c'est un exe ou un bocal.

Regardez des jeux tels que Minecraft. Bien sûr, il est écrit en Java, un langage qui occupe une part extrêmement réduite du marché de l’industrie du développement de jeux. Les consommateurs se soucient-ils bien? Non, ils se soucient de la fonctionnalité.

Cependant, comme votre fils n'a aucune expérience en programmation, je suggère d'apprendre un langage rapide à coder tel que Python ou d'utiliser une plate-forme existante, telle que XNA. Personnellement, j'aime Slick2D avec Java, mais je suppose que c'est ma préférence ...

liamzebedee
la source
0

On m'a initiée à la programmation dès mon plus jeune âge (moins de 15 ans) et mon père a décidé d'utiliser VB (1.0). Nous avons créé une version torsadée de pong en utilisant un objet timer et un dessin GDI. J'aimais ça parce que nous avions commencé avec une toile vierge et que nous étions capables d'apprendre les bases des structures de programmation tout en essayant de rendre quelque chose d'amusant.

Aujourd'hui, je pense que je choisirais XNA et choisirais un simple jeu en 2D. C # et XNA sont assez simples et vous laissent beaucoup de place pour grandir et ils sont gratuits.

John McDonald
la source
-4

S'il veut juste créer des jeux, il devrait utiliser XNA, Unreal, Unity, etc. S'il veut devenir programmeur de jeux, il devrait d'abord apprendre le C / C ++ et OpenGL / SDL ou D3D.

XNA, Unreal, Unity, etc. sont parfaits pour créer des jeux mais vraiment mauvais pour en faire beaucoup trop pour vous. Je suis sûr que les gens ne seront pas d’accord avec moi à ce sujet, mais ils vous transformeront en un programmeur paresseux. Lorsque le moment sera venu d’apprendre des choses comme des points tels que C ++, ce sera plus difficile car vous avez d’abord choisi les options les plus faciles.

Peronally je ne suggère jamais autre chose C / C ++ comme la première langue à apprendre si vous voulez être un programmeur de jeux. La raison principale en est que même si vous allez apprendre le C # / XNA, si vous voulez vraiment devenir développeur de jeux, vous devrez connaître le C ou le C ++ à un moment donné, car personne ne vous embauchera autrement. Donc, s'ils sont sérieux au sujet de la profession, vous ne faites que retarder l'apprentissage de ce que l'on attend de vous.

Périphérique inconnu
la source
10
Au moment où un jeune de 15 ans est prêt à occuper un emploi professionnel (dans huit ans), je ne vois aucune raison de penser que tout le monde utilisera le C ++. Il y a huit ans, le C ++ commençait à peine à être utilisé dans les jeux et à obtenir son premier standard vraiment pratique. La plupart des gens le vendaient avec C. Huit ans auparavant, C ++ était dans un état déplorable pour le développement de jeux et l'ordre du jour. était C et asm. Dans huit ans, la plupart des programmes de jeux ressembleront probablement beaucoup plus à XNA qu’au C ++ 03. (suite)
8
L'élément clé est de devenir un bon programmeur , indépendant de toute langue. Pour les nouveaux programmeurs, C # va les motiver plus rapidement. Ils reviendront en arrière et apprendront les détails plus détaillés s’ils veulent être bons, mais vous devez les maîtriser assez longtemps pour arriver à ce stade.
5
Les détails importants dans la programmation de jeux sont SIMD, pas SSE; lignes de cache, pas la disposition standard C ++; hachage, pas std :: unordered_map; polymorphisme, pas de fonctions virtuelles. Ces dernières choses sont des minutea , et sont accidentelles, pas fondamentales. Lorsque vous connaissez le premier, le dernier a tendance à suivre trivialement.
2
Commencer par C ++ est une mauvaise idée, en général. C'est une langue difficile, et surtout une première.
Le canard communiste
4
J'ai commencé le C ++ à 15 ans et, bien que je sois satisfait de ma situation actuelle, commencer par quelque chose de plus facile aurait probablement été beaucoup moins pénible et me permettrait de me concentrer sur le développement réel du jeu plutôt que sur les pointeurs et les segfaults ...
Riley Adams