Bien commencer en programmation

Démarré par blue link, 31 Décembre 2011 à 00:34

0 Membres et 1 Invité sur ce sujet

31 Décembre 2011 à 00:34 Dernière édition: 31 Décembre 2011 à 00:35 par blue link
Cela fait un bout de temps que je m'intéresse à faire de la programmation (je veux faire mon zelda amateur  B) ) et ce n'est que maintenant avec les vacances que j'ai le temps de m'investir à fond. Il y a quelques questions que j'aimerais vous poser pour m'aider et peut-être pour aider d'autres personnes qui souhaiteraient débuter.

1) Quel langage de programmation choisir?
Il existe tellement de langages différents que çà peut devenir vite difficiles de choisir. Personnellement j'ai choisi le C car il est supposé être le plus simple mais je me demandait s'il y avait des langages semblables avec plus de possibilités.


2)Quel programme choisir?
J'ai pris rpg maker 2003 mais j'ai vu qu'il y avait bien d'autres versions de ce logiciel disponibles alors qu'elle est la meilleure?Aussi, y a t-il de meilleurs logiciels que les rpg maker? Bien entendu, je ne veux pas payer pour un truc dont je ne sait pas si je veux m'investir amplement.


3)Connaissez-vous des sites de trucs qui sont bons?
Bon, je sais que certains d'entre vous me dirons que google est mon ami mais j'ai appris avec le temps que les sites qu'on peut trouver avec google ne sont pas toujours excellents.Si vous avez des livres à me suggérer aussi n'hésitez pas.


Je rajouterais sûrement d'autres questions avec le temps mais celles-ci étaient selon moi les plus importantes.

J'espère pouvoir vous montrer rapidement des projets, le temps que j'apprenne.

31 Décembre 2011 à 01:59 #1 Dernière édition: 31 Décembre 2011 à 02:01 par Daru13
A mon avis, la première chose que tu devrais faire c'est réfléchir un peu plus à ce que tu souhaite faire :P.

Je dis ça parce que dire que tu choisis d'apprendre le C en avançant juste après que RM03 te sembles être un bon logiciel ça me semble un peu contradictoire, le premier étant un langage de programmation un minimum complexe si tu n'en as jamais appris auparavant, tandis que RPG maker est reconnu pour sa simplicité quand on se lance dans le game-making (après, ce n'est pas forcément simple de faire un Zelda dessus, et il y a bien plus de limites qu'avec du C, mais bon, ce n'est pas non plus le même niveau).

Autre petite chose : se lancer dans un Zelda en C si tu n'as jamais codé, ce n'est pas à mon avis la meilleure chose à faire (d'un autre côté ça te permettra de pratiquer avec un certain intérêt, etc, mais c'est quand même assez ardu quoi, et ça peut vite être décourageant ou compliqué).


Bref, pour en venir à tes questions, si tu décide réellement de partir sur de la programmation en dure alors oui le C me semble être un bon choix, le C++ peut aussi être intéressant je pense (les classes ça doit être sympa pour faire un jeu... ?), après je n'ai jamais utilisé ni l'un ni l'autre, surtout pas pour faire un Zelda amateur, donc bon... D'autres langages à priori intéressant existent (le Python par exemple ?), mais l'avantage du C est qu'étant parmi les langages les populaire (avec le Java et le C++ si je ne m'abuse), c'est très commun de trouver des bibliothèques, de l'aide, des tutos, etc, sur le web. Note aussi que le Ruby peut être utilisé avec les deux dernières versions de RPG maker (XP et VX - trois avec celle annoncée) afin d'éditer et de créer des scripts, ce qui peut être un compromis intéressant.

Quant aux logiciels, RPG maker est un bon choix pour se lancer dans le making je trouve, simple et ergonomique. Si on omet la certaine liberté offerte par les scripts avec le RUBY dont je parlais juste avant, il reste en revanche plutôt limité, de façon générale, mais aussi dans le cas plus précis d'un Zelda amateur (le gameplay en prend dans la très grande majorité des cas un coup par exemple). Il faut aussi savoir que la trop grande simplicité du logiciel sur certains points peut rendre certaines tâches plus longues ou ennuyantes à faire qu'avec de la prog ou un autre logiciel plus complet.
En parlant de ceux-ci, les trois qui me viennent à l'esprit sur le coup sont Game Maker (peu utilisé de manière personnelle, mais reconnu comme étant complet, couplé à un langage de script ouvrant encore plus les possibilités tout en restant assez simple, le GML), ainsi que Multimédia Fusion 2 (payant et complet) et Game Develop (gratuit, probablement un peu moins complet mais récent et en pleine évolution). Tous fonctionnent sur le principe du point'n click, ce qui les rend assez puissants tout en restant simples à utiliser, une fois qu'ils sont bien pris en main évidemment (et des trucs comme les extensions ou le GML pour GM rendent ça encore plus intéressant).

Le mieux est à mon avis pour toi de tester différents langages (histoire de voir si tu en préfères un à un autre, si le C ne te semble pas trop dur/chiant à apprendre, etc), et/ou plusieurs logiciels, dans l'optique d'avoir un petit avis sur tout ça, et de ne pas partir sur un choix que tu pourrais regretter au bout de quelques semaines ou mois, pour diverses raisons possibles.

Sur ce, bonne chance cher ami maker :D.

    







Si je peux te conseiller un site, il y a le Site du Zéto. Il y a beaucoup de tutoriels sur la programmation, et je trouve que c'est assez bien expliqué. D'ailleurs, c'est là que j'ai commencé à apprendre le C, même si j'ai abandonné quand on a commencé à parler des pointeurs. :ninja: Par contre, peut-être certains reprocheront aux tutoriels de ne pas être assez approfondis. Sinon tu peux toujours chercher dans une bibliothèque publique dans la section Informatique, tu peux faire de belles trouvailles.

Je ne m'y connais pas beaucoup en programmation, mais j'espère quand même t'avoir aidé. ^_^

31 Décembre 2011 à 03:10 #3 Dernière édition: 31 Décembre 2011 à 03:13 par blue link
Pour le zelda je souhaite faire un tactical rpg (oui je suis un fan des fire emblem)

À Daru13: Sinon merci pour les trucs.Je vais essayer 2-3 de tes trucs. Mais je ne vais pas m'essayer a quelque chose de trop compliqué pour débuter (j'ai que 15 ans)

Je peux te conseiller Game maker qui est, à mon avis, un outil très complet dans le domaine de création de jeux vidéo (du moins les jeux 2d).
Il possède une interface de drag and drop en plus d'avoir son propre langage de programmation simple à maitrisé mais d'une bonne efficacité et si tu ne te sens pas assez libre il est possible d'étendre le tout avec des .dll codé en C.

De plus tu peux utiliser une version non payante qui possède la majorité des fonctionnalités du logiciel et opter pour la payante une fois que tu le maitrise bien :).

Tout dépend de ton objectif en fait je pense:

-Si tu veux juste "faire un jeu", et que la programmation c'est secondaire pour toi, alors les outils conseillés par Chao sont un bon plan, tu arriveras à tes fins (tout en apprenant certaines bases de la programmation, mais pas vraiment comment ça marche derrière)

-Si tu veux vraiment apprendre la programmation, alors oui, lance toi dans l'apprentissage de langages tels le C, le C++, le Java, etc: tu mettras beaucoup plus de temps avant d'arriver à quelque chose, mais l'investissement vaut largement la peine.

Si ton choix s'oriente vers un langage, je peux te conseiller qu'une chose : ne te contente pas de lire les tutoriaux, il faut aussi t'exercer à côté :P
Pour ça, y'a deux moyens : y aller en bourrin et commencer ton gros projet, que tu recommenceras du coup une bonne dizaine de fois à coup sûr, mais ça a l'avantage d'être plus "motivant", quelque chose comme ça ; ou te lancer dans des projets plus petits et plus réalisable à ton niveau ^^

Pour ce qui est des langages de programmation, je dirais que le C n'est pas un bon choix parce qu'il n'est pas orienté objet, et que c'est beaucoup plus simple de réfléchir un jeu vidéo en objets. Par contre, C++, Java, Python et Ruby le sont. Mais bon, si tu veux utiliser un langage de programmation comme ça pour faire Zelda, je pense que tu devras attendre encore quelques années. Regarde Christopho a fini son Zelda Solarus DX en C++, mais ça lui a pris quelques années alors qu'il maîtrise déjà très bien les langages qu'il utilise ;)

Pour les logiciels, je conseillerais Game Maker (tu peux trouver des versions d'essai gratuites et assez suffisantes je trouve pour faire des trucs simples). Game Maker a ses défauts, que ce soit le drag & drop ou le GML, mais si on commence, on met pas mal de temps avant de s'en rendre compte, et il permet quand même de faire pas mal de trucs sympathiques :)

Je n'ai pas testé les autres logiciels de développement de jeux, mais si tu débutes, ce sera un bien meilleur choix, je pense, que d'essayer d'apprendre sur le tas un langage de programmation^^

Merci à tous pour vos conseils çà fait vraiment plaisir d'avoir de l'aide. Après quelques réflexions, je penche un peu plus vers le site de supersigo que je trouve complet. Je vais être en mesure d'apprendre le c et le c++ ( mais je commence par le c bien sur) ce qui serait utile dans le cas d'un zelda amateur ( zelda solarus est en c++ ).

[Mode racoleur=ON]
Tu as également MMF 2 qui peut t'aider a te lancer vers la programmation d'un jeu ou même acquiérir un esprit de logique pour te lancer plus tard dans la véritable programmation.
En plus, maintenant la version d'essai correspond également a la version complète (payante) malgré le fait qu'elle soit limitée et que l'on ne peut pas compiler ses projets. C'est toujours un bon logiciel a tester avant de se faire un choix  :)
[/Mode racoleur]

EDIT: zut j'avais pas vu le post de daru  :P

Citation de: blue link le 31 Décembre 2011 à 18:35
Merci à tous pour vos conseils çà fait vraiment plaisir d'avoir de l'aide. Après quelques réflexions, je penche un peu plus vers le site de supersigo que je trouve complet. Je vais être en mesure d'apprendre le c et le c++ ( mais je commence par le c bien sur) ce qui serait utile dans le cas d'un zelda amateur ( zelda solarus est en c++ ).

Dis-toi qu'il n'est jamais trop tard pour changer d'idée, si jamais tu abandonnes le C. Sur ce site, il y a d'autres tutos sur Game Maker, par exemple.^^
Je te souhaite bonne chance si tu tiens vraiment à apprendre le C, car je sais que ce n'est pas chose aisée. Mais si tu as de la détermination, tant mieux. :)

je n'ai encore non plus jamais fait de zelda amateur  moi meme
mais pour comprendre deja le langage de base
je peux te conseiller de telecharger zelda classic sur pc ( en fait le premier sorti sur nes)
il te propose zelda quest avec,  logiciel ou tu peux creer ton propre jeu aussi court soit il et ainsi debuter en douceur je dirais

19 Janvier 2012 à 19:39 #12 Dernière édition: 19 Janvier 2012 à 19:52 par Wouf
Tout d'abord, désolé pour la pavé, mais ça me semblait nécessaire. J'ai essayé une nouvelle manière de structurer afin que chacun puisse choisir les parties qui l'intéressent.
C'est un complément d'information aux posts de Daru et Morwenn, que je plussoie.


Si ton objectif est de mettre un pied dans la programmation, la vraie, laisse Zelda de côté.
Franchement, commencer par un rpg, c'est vraiment pas le bon plan.
Sauf si tu considères ce projet comme un but ultime qui sera constamment repoussé le temps que tu te fasses la main sur d'autres projets moins ambitieux. Il y a tellement de choses à apprendre pour mener à bien un tel projet ^^'
Bref, à réserver pour le (très) long terme.

A1. Si tel est le cas, le langage C est un bon choix pour apprendre les mécanismes de base. Au départ de quelques instructions élémentaires, il te permet de coder tout et n'importe quoi. Une fois cette étape franchie, tu commences à deviner ce qui se cache derrière une instruction plus complexe. Et cette intuition te donne un indice sur l'utilisation que tu peux en faire, sur ses performances (éviter les lags). Le hic, c'est qu'en fin de compte, il faut écrire beaucoup de code pour de petits résultats.
Bref, à réserver pour l'apprentissage, les petits projets "from scratch", et quand les ressources dont tu disposes (processeur, mémoire) sont fortement limitées de manière générale. C'est par exemple le cas pour certaines applications réseau, les systèmes d'exploitation, les pilotes, les systèmes émbarqués (gameBoy, robots, ...). Même si cette tendance tend à s'effacer avec les progrès matériels.

A2. D'autres langages disposent d'instructions plus avancées et te permettent d'arriver beaucoup plus vite au même résultat. Ils sont moins économes, plus longs à apprendre, mais plus concis et pratiques à utiliser. Bref, une fois maîtrisés, il permettent de coder plus vite. Utile pour de gros programmes ou l'élaboration de prototypes.
Je pense en particulier aux langages de script tels que python, ruby, lua et autres.

A.3 De plus, pour la réalisation de gros projets, certaines manières de programmer sont préférables à d'autres. Elles permettent une meilleure organisation, une division plus facile du travail, de faciliter les modifications, la réutilisation du code entre projets différents, ... Je pense en particulier à l'approche orientée objet (POO). Le C++ est une sorte de C orienté objet.
Attention, c'est un langage assez compliqué. Java et C# sont plus abordables.
Disons que ce sont des versions épurées du C++, plus faciles à utiliser, mais moins économes.
Bref, si tu veux coder un gros jeu comme un RPG, la POO est un bon choix.
Le hic, c'est que l'apprentissage est plus long et complexe ; cette approche nécessite également plus de réflexion avant de coder.

A4. De plus, il faut munir le langage de fonctions graphiques, sonores, ....
On parle de bibliothèques (ou libraries en anglais). La plus connue étant probablement la SDL.
l'ajout d'une librarie allonge encore le temps d'apprentissage.


B1. Si tu veux juste créer tes premiers jeux, toucher à tous les aspects du game design et pas seulement la prog, je te conseille les logiciels de conception assistée tels que RPG Maker, MMF et GM.
C'est en mon sens la meilleure approche pour découvrir la conception de jeux vidéos. Ca permet de se faire une idée sur chacun des aspects (graphisme, son, moteur, quêtes, scénar, ...), de jouer avec eux dès le début et surtout de pouvoir passer de l'un à l'autre afin d'éviter la monotonie et la lassitude qui en découle.
On trouve aussi plus facilement des coéquipiers et on peut vite s'échanger des résultats visibles.
Je trouve ça plus amusant pour commencer ^_^
(Ah et j'oubliais que tu peux profiter d'un éditeur de map sans devoir le coder toi-même en parrallèle)

B2. Pour le choix du logiciel, tout dépend du projet. Si le logiciel colle parfaitement au style de jeu, c'est parfait.
Sinon, il faudra bidouiller des scripts pour l'y adapter au mieux.
Pour un jeu au case par case comme un tactical, RPG Maker me semble approprié. Si tu as besoin de modifier le moteur de base, tu peux via le langage RGSS. Pour le situer par rapport aux autres langages, je le classerais dans les catégories B2 et B3 citées plus haut. Bref : POO et instructions concises. Après, tu peux toujours faire appel à un spécialiste pour s'occuper de cette partie bien précise :)
Game Maker est un peu particulier, c'est une sorte de langage de script (cf. B2) muni d'éditeurs. Il te permet de combiner les instructions de base de tout jeu vidéo. Ainsi, tu peux afficher une image, l'animer, la déplacer, ... Mais il ne dispose pas de fonctions toutes faites pour ajouter une arme, marcher, faire apparaître un monstre, ...
Bref, c'est un bon compromis, je suis d'accord avec Daru ;)

C. Quelques ressources utiles :
- le cours de C/SDL de M@téo21 - Site du Zéro [lien]
- le cours de C++ du même auteur épaulé de Nanoc - Site du Zéro [lien]
- le cours de Python pour débutants de Gérard Swinnen (méfie-toi du python 3 ^^)[lien]
- le tuto de pygame du sdz (SDL pour python) [lien]
- un site idéal pour maîtriser RPG-Maker et son langage de script (le RGSS, soit du ruby adapté aux jeux vidéos) [lien]
- le manuel en français de Game Maker 6 [lien]
- les manuels en anglais des versions plus récentes [lien]
- un site d'entraide francophone sur GM : le CBNA [lien]


Marre des pavés ? Marchez dans la boue!
ハハ、あなたは私の罠に落ちた!

Citationla programmation, la vraie,
C'est quoi la différence entre la vraie programmation et la fausse programmation?

CitationDe plus, pour la réalisation de gros projets, certaines manières de programmer sont préférables à d'autres.
Tu recommanderais à Linus Torvalds de basculer le développement du noyau Linux en C++?

Citationle langage C est un bon choix pour apprendre les mécanismes de base. Au départ de quelques instructions élémentaires, il te permet de coder tout et n'importe quoi.
Si le but est de coder tout et n'importe quoi à partir d'instructions élémentaires pour comprendre la machine, pourquoi ne pas débuter en assembleur? Après tout, le C n'est qu'une surcouche bien polie pour de l'assembleur.

CitationD'autres langages disposent d'instructions plus avancées et te permettent d'arriver beaucoup plus vite au même résultat. Ils sont moins économes, plus longs à apprendre, mais plus concis et pratiques à utiliser
J'enseigne régulièrement le Python à des enfants n'ayant jamais programmé de leur vie, tu penses que je perds mon temps et que je devrais leur faire faire du C?

21 Janvier 2012 à 08:57 #14 Dernière édition: 21 Janvier 2012 à 09:01 par Wouf
Tout d'abord, je trouve ça chouette que tu aies pris la peine de lire mon pavé. Merci ;)

Ensuite, les points que tu soulèves ne nous opposent pas, ils gagnent juste à être davantage explicités :

CitationC'est quoi la différence entre la vraie programmation et la fausse programmation?
"x, le vrai, ..." c'est une expression que j'utilise pour désigner le sérieux de la chose dont il est question. C'est à dire, y aller à fond, pas à moitié. Bref autre chose que bidouiller 4 lignes de code et tester jusqu'à ce que ça marche sans vraiment savoir pourquoi. Ou encore se contenter du strict minimum sans chercher plus loin par fénéantise. Non! Idéalement, se lancer dans un apprentissage depuis les bases* jusqu'à plus soif, en se délectant de chaque subtilité.
Bref "vraie prog", dans le sens "en profondeur", avec un langage et la théorie qu'il y a derrière, pas quelques clics de souris. Ca rejoint un peu ton opinion de la "science" en terminale S, si je me souviens bien.

*edit : ou du moins, depuis un point que l'on se fixe comme base.

CitationTu recommanderais à Linus Torvalds de basculer le développement du noyau Linux en C++?
Du tout, du tout !
D'ailleurs, je parle des OS dans le paragraphe A1 sur le C (le langage, cette fois ^^').
Puis bon, c'est une question à se poser avant d'entamer le projet, pas des années plus tard.
Et comme tu le dis plus loin, le C n'est qu'une sorte d'assembleur parfumé. Pas étonnant de l'utiliser pour un ensemble de programmes censé faire le lien entre la machine et les applications utilisateurs.
D'ailleurs, par gros projets, j'entendais plutôt ces dernières. Un éditeur de texte, un jeu de rôle, un navigateur internet, ou que sais-je.

CitationSi le but est de coder tout et n'importe quoi à partir d'instructions élémentaires pour comprendre la machine, pourquoi ne pas débuter en assembleur? Après tout, le C n'est qu'une surcouche bien polie pour de l'assembleur.
C'est vrai, mais il faut bien prendre un point de départ.
Un désavantage de l'assembleur, c'est sa portabilité. Faut-il viser un système Intel ou ARM ?
Ne sachant pas de quelle machine dispose le lecteur, autant viser large.
De plus, de nombreux langages partagent une syntaxe similaire, ce qui est un avantage pour la suite.
Enfin, je n'ai jamais parlé de proximité avec la machine dans cette phrase. Par briques élémentaires, j'entendais : variables, conditions, boucles, types, tableaux, pointeurs, structures et fonctions.
Le but étant de comprendre, entre-autres, la notion de complexité qu'il est plus difficile à introduire avec du python et ses structures de base à accès non constant. Ca te donne la fausse impression qu'il n'y a pas de différence entre une liste et une table. Au moins, en C, tu piges direct parce que tu n'as d'autre choix que de l'implémenter toi-même. Sauf framework, mais ce n'est plus une brique du langage alors.

CitationJ'enseigne régulièrement le Python à des enfants n'ayant jamais programmé de leur vie, tu penses que je perds mon temps et que je devrais leur faire faire du C?
Non plus !
Je trouve même que c'est une excellente idée. Pas pour rien que je conseille le cours de Swinnen.
Si je trouve le C idéal pour apprendre les mécanismes de base, ça n'implique pas de commencer par là.
L'approche top-down se vaut également, sinon plus. Si j'y étais opposé, je ne conseillerais pas RPG-Maker et autres. J'ai commencé par là, et je ne le regrette pas.
Chaque approche a ses avantages et ses inconvénients. Certains préfèrent aborder l'orienté objet avant l'impératif. D'autres suggèrent de commencer par le fonctionnel, plus proche des maths. Alors ne parlons même pas des langages ^^

Il y a encore plein de choses à dire, mais j'estime qu'il suffit. De longues heures d'études m'attendent :ninja:
Marre des pavés ? Marchez dans la boue!
ハハ、あなたは私の罠に落ちた!

Guillaume, je crois que le post de Wouf était destiné à une personne ne s'y connaissant pas énormément  ;)
Ce troll, je vous jure...

Citation de: compositeur le 22 Mars 2012 à 21:36
Guillaume, je crois que le post de Wouf était destiné à une personne ne s'y connaissant pas énormément  ;)
Ce troll, je vous jure...

Ce n'est pas pour rien qu'il a eu un award.^^