Un langage de développement de jeux gratuit? [fermé]


19

J'essaie donc d'enseigner un peu à mon cousin beaucoup plus jeune la programmation. Ma pensée initiale était quelque chose comme Scratch ou Alice , mais il y avait quelques inconvénients à cela.

  • Tout le monde semble être vraiment dans la programmation de jeux et le développement de jeux vidéo (parce que tout le monde aime jouer à des jeux vidéo, et en ce qui concerne les jeux vidéo, jouer le vôtre peut être le plus gratifiant) - mais ni Alice ni Scratch ne semblent répondre au jeu développement

  • Alice et Scratch semblent trop puériles, alors que je suis sûr que mon cousin aimerait y barboter, je pense qu'il s'en était vite ennuyé

  • Je veux un langage qui puisse être utilisé pour développer des trucs vraiment cool qui impressionneront ses amis. Je me souviens avoir écrit BASIC dans la journée et avoir invité tous mes amis et montrer ma création, et j'ai l'impression qu'Alice et Scratch ne font pas appel de la même manière

  • Je veux une langue qui oblige mon cousin à écrire du code. Maintenant, ce n'est pas seulement parce que je pense que taper du code est une bonne préparation pour d'autres langages de programmation, mais c'est parce que cela lui donne l'occasion de s'exercer à taper et peut-être de s'habituer à certains des caractères légèrement plus ésotériques du clavier.

Maintenant, c'est pourquoi je ne veux pas choisir Alice ou Scratch.

Je ne veux pas non plus choisir un langage comme C ou Java, ni même Python ou Ruby d'ailleurs. Mon cousin m'a déjà dit qu'il aime jouer aux jeux vidéo et qu'il veut créer le sien, et qu'il aime utiliser les ordinateurs. À mon avis, même un langage simple comme Python ou Ruby prend tout simplement trop de temps pour créer des trucs sympas. Idéalement, il s'asseyait, passait environ un jour ou deux (ou peut-être même jusqu'à une semaine, mais j'espère moins que cela) et avait un jeu fonctionnel en 2 dimensions. Je ne dis pas que vous ne pouvez pas le faire en Python ou Ruby, mais je dis simplement que ce serait difficile pour un premier programmeur. De plus, je ne veux pas l'enliser avec toutes les choses de l'informatique, car cela peut venir plus tard. Je veux juste l'aider à créer l'étincelle, puis le laisser continuer avec le reste du feu.

J'ai regardé des langages comme Lua, et même si cela semble courant dans la programmation de jeux, je ne sais pas si c'est le meilleur choix - mais si vous pensez le contraire, faites-le moi savoir.

J'ai aussi regardé une langue comme Blitz et ça a l'air vraiment prometteur (en plus, je l'ai essayé il y a quelques années, et c'était vraiment très sympa). L'inconvénient est que je dois payer, ce à quoi je suis définitivement opposé.

J'ai regardé SmallBasic , qui semble prometteur et je vais continuer à regarder. Mais je n'ai pas fait grand-chose (en fait, j'exécute le programme d'installation pendant que je tape ceci, donc je ferai part de mes réflexions à ce sujet rapidement).

MISE À JOUR: J'ai donné à SmallBasic un essai rapide et cela semble intriguant, mais il semble également assez différent par rapport à d'autres langues - ce n'est pas une mauvaise chose, mais c'est juste une inhabituelle. Parmi les choses que j'ai regardées, Blitz est toujours mon préféré, mais je refuse d'y aller à cause du coût.

Mais au fond, que pensez-vous de ce que j'ai dit jusqu'à présent et des langues que j'ai examinées et connaissez-vous d'autres bonnes alternatives?


MISE À JOUR: Voici ce que j'ai choisi de faire ...

J'ai réalisé que même si j'aimerais aider mon cousin, je ne peux pas être avec lui tout le temps et je ne peux pas l'aider chaque fois qu'il a besoin d'aide. Donc, je voulais choisir quelque chose qui a une bonne documentation, une bonne communauté et un bon livre qu'il peut suivre.

Quoi qu'il en soit, j'ai choisi Python et Pygame. Python est un langage que je connais assez bien, et je sais qu'il existe une assez bonne (et assez grande) communauté autour de Python. De plus, je sais que la documentation Python est assez complète et facile à parcourir. Pygame a également une excellente documentation et un ensemble de tutoriels. Je lui demande également d'utiliser / suivre Invent Your Own Computer Games with Python , ce qui semble être un très bon livre, je lui ai acheté une copie papier comme cadeau de Noël, et je sais que son moniteur n'est pas énorme, et ce serait être gênant de permuter constamment entre le texte et l'éditeur.

Je pense que ça devrait bien se passer!

EDIT: Je ne veux pas impliquer que mon choix est définitif ou qu'il est correct. Je pense simplement que c'est la meilleure solution pour cette situation. Je pense que chaque personne qui cherche à enseigner à un plus jeune devrait parcourir la sélection et trouver la meilleure solution pour la personne individuelle, en tenant compte de choses comme l'âge, le niveau de compétence et l'intérêt.


15
+1 I want a language that can be used to develop really cool stuff that will impress his friends.C'est toujours ma principale motivation pour la programmation, après 25 ans ...
yannis

2
+1 Pour savoir où s'arrêter lorsque l'on enseigne à quelqu'un de plus jeune. Pas d'informatique ennuyeuse, juste les résultats sympas. "créer l'étincelle, puis le laisser continuer avec le reste du feu."
Andy Hunt

1
@Bob Je travaille en tant que développeur Web depuis plus d'une décennie, mais je suis récemment impliqué dans quelque chose que les gens utilisent directement. Je fais des trucs profonds depuis trop longtemps. Bien que ma réponse officielle soit que ma motivation est mon amour profond pour la résolution de problèmes, bla bla , et cela les a aidés d'une manière modeste. Le sentiment est génial! J'espère que votre cousin trouve la programmation aussi excitante que nous ...
yannis

1
@MahmoudHossam Je vous ferai certainement savoir
Bob

Réponses:


12

On dirait que personne n'a rejeté Python + Pygame . Selon l'âge / la maturité de votre cousin, cela ouvre certainement la possibilité de beaucoup de trucs sympas. C'est certainement assez basique pour commencer, mais avec son énorme bibliothèque standard, vous ne pouvez pas vraiment vous ennuyer avec Python.


19

Je pense que l'équivalent moderne de BASIC est Javascript. Donnez-lui une simple page HTML avec un script intégré qui crée un canevas et dessine une forme dessus, dirigez-le vers des tutoriels et voyez ce qui se passe. Rotation rapide (enregistrez vos modifications et actualisez la page) et support de débogage décent.


un avantage supplémentaire est qu'il peut partager instantanément avec ses amis aussi
bunglestink

Les jeux HTML5 sont un sujet brûlant pour l'industrie du jeu mobile, en raison de sa (future?) Portabilité / indépendance de la plateforme. Un autre est WebGL qui, je crois, est moins courant. De nouvelles boîtes à outils pour eux apparaissent quotidiennement.
mctylr

C'est une idée intéressante, et je pense que le développement web est définitivement une bonne compétence. Je vais devoir y penser, mais cela semble intéressant.
Bob

5
Je ne suis pas tout à fait d'accord. Javascript est un peu plus difficile à apprendre que Basic est / était (pas que je connaisse Basic, l'esprit), et si vous voulez le combiner avec une page Web, vous devez également vous renseigner sur le HTML et les technologies Web. Les débuts plus simples (je pense) seraient en Javascript côté serveur, par exemple en se combinant avec NodeJS comme environnement d'exécution léger, ou un autre interpréteur JS en ligne de commande.
Cthulhu

+1 pour JavaScript - oui, la partie HTML (5) est un apprentissage supplémentaire à faire, mais encore une fois, HTML est assez simple - je me souviens avoir appris à créer un bouton HTML et à me montrer quand j'apprenais GWBasic :)
yati sagade

12

Pas un langage de programmation explicite pour les jeux, mais des effets graphiques très sympas peuvent être effectués en utilisant assez peu de code avec le traitement . De plus, c'est gratuit et relativement facile à apprendre. IMHO un langage idéal pour apprendre les bases de la programmation, d'autant plus que les tutoriels enseignent de nombreux concepts de base tels que les variables, les tableaux, les opérations mathématiques, etc.


Je pense qu'un point clé est la disponibilité des tutoriels. Je me suis enseigné la programmation avec une copie des 101 jeux informatiques de base de Dave Ahl , et la clé (pour moi) était de voir le code et l'échantillon de sortie ensemble. J'ai trouvé qu'il était beaucoup plus facile de travailler en arrière à partir de la sortie pour comprendre comment quelque chose a été fait que de se faire dire "faites ceci et regardez ce qui se passe".
TMN

11

Je n'ai pas joué avec depuis un an ou deux, mais utiliser C # avec XNA pourrait être un bon point de départ. D'après ce dont je me souviens, il est assez facile de commencer . Bien que ce lien soit probablement plus pour vous que pour lui.


1
J'ai en fait une expérience de première main à la fois avec C # et XNA (j'ai travaillé avec C # dans un emploi précédent). Je pense que c'est une excellente recommandation, mais je ne sais pas si c'est un peu trop avancé pour lui. Il est peut-être capable de le faire, mais la plupart des enfants veulent des résultats réels pour un effort minimal et un «apprentissage de frais généraux».
Bob

Puisqu'il s'agit d'une bibliothèque .NET, je suppose qu'elle est également disponible pour une utilisation dans VB, ce qui réduirait la `` surcharge d'apprentissage '' de C # par certains.
Andy Hunt

3
@AndyBursh quand j'ai été forcé d'apprendre le VB, cela m'a donné des maux de tête jusqu'à ce que je m'arrête. Je ne l'ai jamais touché depuis.
codesparkle

@codesparkle Je suis complètement d'accord, VB en tant que langue est ennuyeux comme l'enfer. Cependant, il est assez facile de lire et d'écrire des trucs simples, c'est donc souvent un joli langage d'introduction. Malheureusement, le langage a des particularités horribles, comme le code horrible que vous devez écrire pour lancer de A à B!
Andy Hunt

XNA est en effet un peu avancé pour commencer. Je l'ai fait, jusqu'à ce que je trouve Unity, qui utilise le même langage mais a une approche beaucoup plus visuelle, avec des résultats beaucoup plus rapides. @AndyBursh: Ce n'est pas disponible pour VB.NET, seulement C # .NET
Simon Verbeke

11

Essayez Greenfoot ,

Image http://www.greenfoot.org/images/screenshot.png?1310995619

Il est basé sur Java et il y a tous ces totoriaux pour l'utiliser sur Youtube .

greenfoot offre une bonne approche descendante destinée à un débutant.

voir cette réponse stackoverflow , la chose que j'ai notée il y avait "Les enfants, en fait, sont les apprenants les plus rapides et ils le font par correspondance de motifs, extrapolation, interpolation, etc."

donc après avoir utilisé java dans greenfoot pendant un certain temps, les concepts suivants seront plus faciles à comprendre simplement parce que cela semble familier.


Greenfoot ressemble à un projet assez soigné. Je ne suis pas un grand fan de Java en tant que première langue, mais Greenfoot le rend assez simple pour les jeunes programmeurs. Je joue toujours avec, mais je pense que ça pourrait être celui-là.
Bob

@bob Tout ce qui vous permet d'écrire du code et de résoudre rapidement des problèmes intéressants devrait être un bon choix.
Siamore

Cela ressemble à un projet vraiment cool
KallDrexx

La « réponse stackoverflow » à laquelle vous faites référence a été supprimée et le lien ne fonctionne plus. Pourriez-vous mettre à jour la réponse?
moucher

4

Cela ressemble à un cas typique pour le modding . De nombreux jeux sont très flexibles et extensibles, du bon vieux Quake I (avec son langage QuakeC) à TES IV Oblivion, ou des dizaines de titres qui peuvent être étendus avec Lua.

Second Life est une autre option - c'est un monde très flexible où l'on peut créer des jeux, des simulations, des démos, quoi que ce soit d'autre avec un langage de script agréable et propre .


Je serais d'accord pour l'essentiel, mais je pense qu'il veut créer ses propres jeux. Je pense que c'est plus un scénario au cas par cas, mais mon cousin et ses amis ne sont pas dans les jeux qui se prêtent très bien au modding ... De plus, je pense que la moitié du plaisir consiste à construire quelque chose (principalement) à partir de zéro. Dire "hey (papa ou ami) regarde ce jeu que j'ai fait tout seul" est différent puis dire "hey look, j'ai fait un mod pour ce jeu auquel je joue à peine"
Bob

Ce que j'essaie de dire, c'est que les enfants veulent être fiers de leur travail, construire des choses à partir de zéro et construire facilement des choses qui produisent des résultats plutôt sympas. Je pense que le modding du jeu pourrait être mieux orienté pour les adolescents.
Bob

@Bob, avec Second Life, vous pouvez créer vos propres jeux, en utilisant autant de fonctionnalités que vous le souhaitez. Ce n'est qu'une plateforme. Et c'est gratuit. Et certains des mods de jeu sont des jeux entièrement nouveaux, avec presque rien en commun avec leur plate-forme sous-jacente.
SK-logic

@Bob, comme pour construire quelque chose entièrement à partir de zéro, un choix de langue devrait être la dernière chose à considérer. Une plateforme et des bibliothèques seraient plus importantes. Je suggère XNA dans ce cas (avec un choix de l'un des langages .NET en plus).
SK-logic

D'accord, l'idée de Second Life semble plutôt cool. Je vais certainement y jeter un œil. Merci pour la suggestion! En tant qu'ancien développeur .NET, je l'ai définitivement considéré, mais je ne veux pas choisir quelque chose de trop complexe pour un public plus jeune. Mais je vais certainement y réfléchir.
Bob

4

Je suis actuellement un grand utilisateur de Game Maker . - Bien que la version complète ne soit pas gratuite (40 $), la version gratuite suffit pour goûter aux bases de la conception de jeux. Il a suffisamment de «contenu» pour que quelqu'un de nouveau reste occupé pendant quelques années. Si je devais le placer quelque part, je le placerais quelque part entre le modding et les langages tels que python.

Il a plusieurs méthodes d'écriture. Vous pouvez utiliser des «icônes de glisser-déposer» et un «langage de script» (GML) beaucoup plus avancé. Je ne comprends jamais pourquoi les gens souhaitent autant "écrire du code" - je vois le glisser-déposer comme un moyen de visualiser le code.

Un autre avantage de Gamemaker - et la raison pour laquelle après avoir appris d'autres langues, et 10 ans d'expérience je m'en tiens à Gamemaker - est qu'il aide à organiser un jeu: il dispose de plusieurs ressources, d'un système d'événements, etc. etc.
Ce n'est pas l'outil idéal pour créer le prochain monde de Warcraft, mais pour impressionner les autres, il est plus important de créer QUELQUE CHOSE.

Je ne peux pas vraiment recommander d'autres choix - car je suis personnellement satisfait du fabricant de jeux et je m'intéresse de plus en plus à l'apprentissage des langages à usage général.


+1 J'ai découvert Game Maker au lycée et je me suis beaucoup amusé avec. Bien qu'il n'y ait pas beaucoup de codage requis, vous pouvez vous y rendre facilement car il vous expose à des variables et vous pouvez définir des formules pour modifier ces variables lorsque certains événements se produisent. Les événements de collision intégrés permettent à eux seuls de créer de nombreux jeux créatifs. Les jeux de modèles intégrés permettent un modding utile. J'ai fait des side-scrollers primitifs, des top-downs, un jeu de type casse-blocs ...
joshuahedlund

3

La chose que des milliers de personnes sont développent des jeux en est Flash. Le package de développement Flash "officiel" d'Adobe coûte de l'argent, mais il existe des alternatives gratuites; FlashDevelop m'a pris moins d'une heure pour trouver, télécharger, démarrer et obtenir un flash "Hello World". La bibliothèque Flixel fournit de bonnes fonctions de support pour les jeux, y compris la physique, les particules, la création de niveau facile pour les plateformes, a beaucoup d'échantillons et est facile à configurer.


2

FWIW, j'ai acheté mon cousin " Land of LISP " dans ce même but. Le livre est illustré de dessins animés et concerne la création de jeux dans LISP. Mon cousin voulait seulement créer des jeux basés sur du texte, mais je pense que le livre lui donnera une bonne introduction à la programmation.


J'ai lu Land of Lisp et c'est un livre sympa, mais je ne sais pas si Lisp est toujours le meilleur point de départ pour les jeunes. La syntaxe est composée principalement de parenthèses qui semblent simples, mais je pense que cela devient assez confus rapidement, surtout quand vous êtes un enfant.
Bob

Pour les jeux basés sur du texte, vous devez présenter à votre cousin Inform ou TADS
user16764

@ user16764 Merci pour la suggestion, je pense que ce sera un excellent moyen pour lui de modéliser ses idées!
Bob

2

La langue avec laquelle j'ai commencé était Dark Basic Pro . Je m'en suis éloigné un peu rapidement parce que le développement de jeux n'est pas ma tasse de thé, mais c'était un langage puissant. Je ne l'ai pas gâché depuis quelques années maintenant, donc je ne sais pas à quel point il est bon (je l'ai utilisé pour la dernière fois lorsque DirectX 9 était nouveau et à la pointe). Mais cela vous permet de commencer rapidement à coder et à créer des graphiques 3D fantastiques avec juste un peu de code (et aussi, c'est du code pur.)


Dark Basic semble assez soigné, et il semble similaire à son objectif de Blitz, mais vous devez toujours le payer.
Bob

2

L'une des parties les plus difficiles du développement de jeux, bien que moins répandue dans le développement de jeux 2D, est la création de graphiques. Donc, en supposant que votre cousin n'a pas besoin de créer des tests d'art ou qu'il se trouve être très bon en art 2D, je pense que l'objectif est réalisable.

Je vous suggère d'utiliser python avec pygame pour commencer. Je sais que vous aviez des réserves sur python, mais écoutez-moi. Python est un langage très simple. Je dirais que le manque de frappe stricte en fait un bien meilleur choix que quelque chose comme C # pour commencer.

Les langages basés sur des prototypes sont cool et certaines personnes les trouvent très faciles à comprendre, mais je ne pense pas que les gens comprennent vraiment les concepts de fonctionnement des objets dans des langages basés sur des prototypes aussi facilement qu'ils peuvent maîtriser le paradigme classe / objet.

Pygame a également de nombreux exemples que votre cousin et vous pourriez consulter pour apprendre les bases, et est à bien des égards un cadre très simple, ne vous cachant pas tant que vous obligeant à apprendre beaucoup de cadre pour faire plus compliqué des choses.

Peut-être qu'après un jeu écrit en pygame, vous pouvez passer à des jeux d'écriture qui s'intègrent également à un moteur physique 2D comme box2d, qui a d'excellentes liaisons python.

Quant à l'enseignement de votre cousin python, je m'éloignerais de lui faire apprendre la langue en premier, peut-être un cours intensif sur les idées de classe / objet. Ensuite, une syntaxe de base du langage, avant de le jeter au fond, et de lui faire rechercher la syntaxe et / ou les bibliothèques quand il / elle a besoin de quelque chose.

Enfin, une autre bonne chose à propos de python, c'est que vous pouvez facilement passer aux moteurs de jeu 3D tout en conservant vos compétences avec des moteurs comme panda3d, ou même l'unité (Boo est très similaire à python).


2

Lua et LÖVE . Lua est l'une des langues les plus simples disponibles. Le framework LÖVE est optimisé pour les jeux 2D. Il a également un backend OpenGL, avec les performances et autres avantages que cela apporte.


1

Vous voudrez peut-être essayer le kit de développement Unreal ( fonctionnalités ). Il peut être un peu difficile de se familiariser avec l'interface. Mais la grande chose à ce sujet est qu'il dispose également d'un moteur de script visuel, vous n'avez donc pas besoin de pouvoir programmer pour créer quelque chose. Il peut ensuite fabriquer quelque chose et en programmer lui-même de petites parties. Un inconvénient pourrait être qu'il utilise son propre langage de script.

Un autre moteur que j'aime vraiment est Unity3D ( Fonctionnalités ). Unity n'a pas de programmation visuelle, mais utilise deux langages communs: C # et JavaScript. Il prend également en charge un dialecte python appelé Boo. Ces trois peuvent interagir. Unity est également livré avec de nombreux scripts finis.


Si la cible est leur propre jeu avec des graphismes 3D, c'est la meilleure approche IMO. Beaucoup / la plupart des boîtes à outils de jeu principales ont des versions gratuites (certaines nécessitent que vous possédiez une version enregistrée de leur jeu principal). La plupart s'étendent du modding à la création d'environnements de jeu entièrement nouveaux. Plusieurs (pas tous): Playground , Havok et Value Source . Il y en a plein d'autres auxquels je ne peux pas penser en ce moment.
mctylr

Unity et Unreal sont tous les deux vraiment cool, mais je pense que l'âge cible commence chez les adolescents, ce qui est un peu trop vieux.
Bob

@Bob: Je ne pense pas que vous ayez mentionné l'âge, donc je ne savais pas trop quoi proposer :)
Simon Verbeke


0

Je sais que vous recherchez des langues libres et il y a de bonnes suggestions par d'autres affiches. Puisque vous êtes soucieux d'obtenir des résultats intéressants, rapidement et puisque Blitz semble être le genre de chose que vous aimeriez, à l'exception du coût, je voudrais suggérer Phrogram . Auparavant, c'était KPL (qui était gratuit). Ce n'est pas gratuit, mais c'est moins cher que Blitz et il a beaucoup des mêmes fonctionnalités qui, je pense, le rendent très approprié à utiliser comme langue d'enseignement, en particulier pour les adolescents.

Vous pouvez faire des trucs assez sophistiqués avec Phrogram et il y a une communauté assez bien établie d'utilisateurs de Phrogram et KPL qui ont publié beaucoup de code pour apprendre.


Phogram a l'air cool et je ne suis pas vraiment opposé au paiement, mais je préférerais des options gratuites. Je vais faire l'essai et voir comment il se compare à DarkBasic et Blitz.
Bob

0

Beaucoup de bonnes suggestions ici, je vais juste crier à RoboCode . Il existe de nombreux exemples à modifier, et vous pouvez être opérationnel en quelques minutes. Cela lui donnera la saveur de la programmation, mais il n'est pas susceptible d'apprendre les écrous et les boulons de l'écriture d'un programme à partir de zéro. Il est également basé sur Java, pour ce que ça vaut.


0

Je ne comprends pas comment personne ne parle de Games Factory! C'est l'une des meilleures ressources pour construire rapidement un jeu informatique, sans connaissance en programmation.
http://www.clickteam.com/website/usa/downloads/index/7
Il se compose de l'éditeur de story-board - avec des cadres. Vous mettez différents objets qui peuvent être contrôlés de différentes manières par le joueur (mouvement de la plate-forme, 8 directions, etc.).
L'aspect le plus important est l'éditeur d'événements - c'est une immense matrice, que vous utilisez pour définir ce qui se passe règles définies (Like - objet (1) déplacé à la fin de l'écran, l'emplacement de l'objet est> 100, etc ...).



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.