Le guide du débutant par Rav, v1.1
Version Traduite. - First Pass -
La version originale est disponible à http://rav.efbnet.com/newbie.htm
ravuya(at)gmail.com|| http://rav.efbnet.com/

Sections:
  1. Introduction
  2. Fautes usuelles de débutant
    1. Les gens s'en foutent (Aka: la règle du "apprends et ferme la")
    2. En attendre trop
    3. Travailler avec des outils inadaptés
  3. Où commencer?
    1. Mais programmer est dur et effrayant.
    2. Je ne connais pas tres bien ce sujet. Que dois-je faire?
  4. APIs et langages recommendés, liens.
  5. Cours de programmation
    1. Première année
    2. Deuxième année
    3. Troisième année
    4. Quatrième année
  6. Etudes
    1. "Ecoles de jeux"
    2. Universitées Prestigieuses (et universités incertaines)
  7. Conclusion

1.0 Introduction
Bienvenue dans le developpement de jeux! Vous, plus probablement toutes les personnes ayant deja joué à un jeu (vidéo) dans leur vie, sont interessées par leur création.

Ce guide tentera de vous apprendre les manieres les plus simples et les meilleures pour commencer à se débrouiller avec la création de vos deux premiers jeux; il ne préconise pas le "le plus simple chemin" dans tous les cas. Si vous n'êtes pas disposés à travailler, ne lisez pas ce guide. En fait, ne lisez pas un seul des guides de developpement de jeux. Retournez regarder MTV.

2.0 Fautes usuelles du débutant
Si vous passez quelque temps sur les forums de developpement de jeux, vous serez dépassé par toutes ces erreurs. Elles vous décourageront tellement que le suicide paraitra être une alternative correcte.

Et pas mal de gens les signalent. Cette section a pour but d'aider les newbies à surmonter cet obstacle et de leur offir des suggestions pour le futur.
2.1 Les gens s'en foutent, ou la règle du "apprends et ferme la"
Des milliers de newbies postent chaque année sur des forums pour annoncer leur grande idée de creer un nouveau MMORPG, mais le problème est qu'ils n'ont aucune experience à offrir. Encore pire, certains pensent que les (bonnes) idées sont rares, et essaieront de rallier des programmeurs établis ou des compagnies connues. Les faits: Tout le monde s'en fout. Les bonnes idées ne sont pas rares. Si vous voulez qu'une equipe travaille à réaliser votre grande idée de MMORPG, alors vous aurez besoin d'autre chose que juste "Eh bien j'ai beaucoup joué et j'ai quelques très bonnes idées: en voici la liste." dans le but d'attirer des membres. En général, pour les habitués cela sigifie que vous avez besoin d'etre un programmeur et de produire un debut de jeu pour attirer d'autres personnes.

Pensez vous que vous trouverez quelqu'un prêt à passer son temps à travailler sur votre projet alors que vous ne faites rien et qu'il pourrait réaliser ses propres rêves? Pensez-y avant de chercher des partenaires, ou de vouloir obtenir un travail de "game designer" dans une grande societé. Il n'y a pas d'autre travail tel que game designer . Vous devrez travailler et évoluer dans une grande societé pendant longtemps, ou mettre sur pied votre propre companie, avant de parvenir à l'être. Ou... faire des jeux vous même, ce qui est le but de ce guide.
2.2 En attendre trop
Les 50 premiers jeux (au moins) que vous ferez seront à chier. Soyez en concients.

Meme si votre idée est terrible et qu'elle ne peut pas mener à un échec, vous ferez à coup sûr une monstrueuse erreur qui mettra tout en l'air.

Ou, de façon plus plausible, vous n'aurez pas les capacités de réaliser cette idée, même avec un effort constant.

Le but de cette section est de vous montrer qu'il ne faut pas en attendre trop de vos jeux. Si vous penser etre capable de concurencer des corporations de plusieurs millons de dollars avec des équipes de dévelopement professionnelles ayant une énorme experience, vous aller vraiment chialer. Attendez en moins. Travaillez plus. C'est la meme chose pour la pub... Ne vantez pas votre jeu si vous savez pertinament (laissez vos ambitions de coté) qu'il sera pourri.

Cela sera vraiment dégoureagant parfois; lorsque vous vous débattrez contre un bug durant des semaines pour finalement virer une fonctionalité: échouer après un long et dur travail est une des choses les plus douloureuses de par le monde. Ne plus savoir où aller, ou ne plus avoir de temps libre est souvent la cause d'échec de beaucoups de petits projets (n'oubliez pas que 50% des projets informatiques échouent, 45% sont menés à terme avec du retard, et seulement 5% sont finis a temps). Restez focalisés, et soyez positifs! Si vous ne parvenez à rien, laissez tomber et commencez autre chose. Ce n'est pas comme si vous construisiez des chipsets ou quelque chose qui entrainerai des pertes d'argent et de ressources par son abandon; les ordinateurs sont faits pour jouer.
2.3 Travailler avec des outils inadaptés
Bon nombre de newbies pensent qu'un soft comme RPG maker ou Game Maker est la seule chose dont ils auront besoin pour faire une entrée dans cette industrie. C'est carrement faux. Non seulement ces outils sont grandements limités, mais il sont aussi une une insulte envers ceux qui travaillent dur pour developper leur moteur de jeu lorsque vous exhiberez 'votre' création faite grace au code de quelqu'un d'autre comme si c'était l'oeuvre du siecle.

Ne vous dites pas que vous n'apprendrez rien non plus...

Il en va de même lorsque vous écrivez le code vous même. Si les outils que vous faites pour l'installation du contenu sout douteux, votre vie sera un cauchemard. Cinq minutes passées a faire un éditeur mieux fait économiseront cinq cent minutes au bout du compte.

3.0 Où commencer?
Vous devriez commencer par apprendre à programmer. Ce n'est pas très important de savoir en quel langage, bien que certains soient mieux adaptés au developpement de jeux que les autres. La partie importante de l'aprentissage reste 'résoudre les problemes'; ce n'est pas la syntaxe. Beaucoup de newbies sont perdus par la syntaxe à mémoriser, alors qu'ils devraient apprendre à penser logiquement et proprement.

Considerez les choses de cette façon: Si un chef cuisinier passe tout son temps à chercher la façon d'utiliser correctement une spatule 100% du temps, il ne fera aucun gateau parce qu'il ne se sera pas concentré sur la procèdure à suivre.

Aprennez à programmer; où que ce soit. Puis, vous pourrez commencer a creér votre premier jeu, extremement rudimentaire.
3.1 Mais programmer est dur et lassant.
Dans le cas où vous auriez manqué mon avertissement en 2.1, cette section vous le fera de nouveau comprendre: C'est extremement difficile de faire un jeu correct sans avoir un veritable talent en programmation.

Il n'y a non plus aucun moyen d'obtenir le jeu que vous voulez sans le faire vous même. Les artistes suivront le programmeur en faisant des sprites en accord avec ce qu'il a creé; les 'level designers' utiliseront des outils fait par les programmeurs pour faire les niveaux du jeu.

Si vous êtes serieux en voulant créer des jeux, la meilleure façon est de devenir un homme à tout faire: meme le meilleur des programmeurs peut faire un jeu non populaire à cause d'artworks "de programmeur". Si vous êtes bon en dessin, devenez potable en programmation. Si vous etes bon en programmation, devenez potable en dessin.

Une note, cependant: meme des artworks magnifiques et des cartes superbes ne rattraperont pas un jeu lamentable. Mon opinion personnelle est que le programmeur, à travers un controle direct du monde du jeu, influence directement la qualité du gameplay. Travaillez vos controles. Travaillez votre moteur. Rendez le solide. Si votre jeu se plante sur ma machine, je n'y jouerai sans doute jamais.

Notez que je n'ai pas mentionné le scenario ici: vous rapellez vous avoir été subjugués par le superbe scenario de Super Mario Bros, ou les scenes cinématiques fantastiques de Tetris? Le scenario peut être très bien, en fait c'est une des parties principales, mais au niveau débutant l'histoire ne doit pas être votre priorité. Si vous n'etes pas un bon écrivain, votre histoire causera plus de tord que de bien à votre jeu.
3.2 Je ne connais pas tres bien le sujet. Que dois-je faire?
Bien, ce guide n'est vraiment pas pour vous, donc... je vous recommande de prendre quelque chose comme Game Maker et de vous amuser pendant une demi-heure jusqu'a ce que vous en soyez lassés.

Le developpement de jeux est un dur, dur, dur travail. Ce n'est pas pour les gens qui ne peuvent supporter la critique ou pour ceux qui ne veulent pas travailler sur quelque chose durant plusieures années.

4.0 APIs et langages recommendés, liens.
Vous allez entendre ça de la plupart des developpeurs, donc mettez y vous maintenant: C++ .

Ce n'est pas un langage parfait, et ce n'est vraiment pas adapté pour les developpeurs debutants. Je devrais vous conseiller de commencer avec un truc du genre Python, puis d'utiliser PyGame SDL avec apres.

De toute façon, lorsque vous aurez fait le tour de Python, c'est pratiquement impossible d'echapper au C++. La plupart des tutoriaux sont en C++, la plupart des programmeurs l'utilisent, et la plupart des emplois de programmeurs de jeux le requierent. Apprennez le. C'est mon choix, et cela devrait etre le votre aussi.

Recemment, certains langages populaires comme C# et Java sont en essor; Je ne recommande pas le C# à cause de son immaturité sur les platformes autres que Windows, et Java est occasionellement lent mais fait un excellent langage grace à ses dispositifs intégrés et sa sécurité génerale.

Du coté des APIs, SDL est un bon début. Ce n'est pas très rapide, mais c'est portable et bien pensé pour créer des jeux. Vous pouveuz trouver des tutos fantastiques sur cette page; J'ai utilisé cette API pour tous mes jeux jusqu'a CSRPG2 y compris.

Le meilleur moyen de savoir à peu près tout (en dehors de SDL) est d'aller chez votre libraire local ou dans une bibliothèque et de choisir un livre. Les livres sont vos amis et bien qu'ils ne soient certainement pas bon marché, un bon bouqin vous aidera vraiment beaucoup et de longues années durant. Je serai perdu sans mon exemplaire de C++ for Game Programmers .

Liens utiles:

Les forums:
A présent, un mot sur les formus. Ne les utilisez pas. Sortez, trouvez un livre, lisez la documentation sur les API. Trouvez quelqu'un qui les utilise et parlez avec lui avec un instant-messenger (Je suis entièrement à votre écoute concernant les questions sur SDL, contactez moi). Les forums ocillent souvent entre perspicacité brillante et idiocité complete suivant qui poste, et il est difficile de s'assurer du niveau de compétences de celui qui poste (la guéguerre constante sur la plupart des forums de developement montre grandement la qualité de l'information qui est postée).

De plus, les "questions de newbie" sont la plupart du temps discouraged de peur qu'elles envahissent les forums. Il suffit d'un seul coup d'oeil au forum de developpement de GameFAQs' (pour ceux qui pensent que je suis injuste envers les forums de GameFAQs', allez jeter un oeil sur GameDev.org ou DevMaster.net pour voir qu'une tendance semblable émerge) pour réaliser pourquoi -- il n'y a à peu près aucune veteran qui poste excepté en response aux questions de newbies auquelles il est possible de répondre avec un rapide coup d'oeil sur Google. Aussi, économisez le temps de tous en ne postant pas. Aprennez, puis revenez et postez. Ceci ne devrait pas vous surprendre si vous réflechissez à la question, mais beaucoup de newbies croient que "forum" est un synonyme de "moteur de recherche".

Oh, et ne recrutez pas des gens pour votre team si tout ce que vous allez faire est de contribuer aux designs et au concept art. Les forums sont bien si vous avez un niveau correct, mais si vous commencez à peine, tout ce que vous ferez sera de gener les autres utilisateurs.

5.0 Cours de programmation
J'ai décidé de mettre quelques examples de jeux et des screenshots pour vous indiquer à quel niveau vous serez apres x années d'experience. Ces indications pourraient ne pas correspondre avec le niveau que vous aurez, mais elles caracterisent le niveau que vous devrez atteindre si vous travaillez dur, régulierement, et souvent.
5.1 Première année
Newbie Game: First Year

Pas grand chose à voir, hein? Un jeu 'devinez le nombre' est un bon exemple de ce par quoi vous commencerez lors de votre première année. Quand vous aurez progressé, vous pourrez faire des choses telles que des RPG en ligne de commande, Shoot em up en ligne de commande, et jeux d'adventures en ligne de commandes. Mais alors, quand ferez vous des applications graphiques, vous demandez vous?

Quand vous aurez couvert l'essentiel. Pour pouvoir commencer avec la partie suivante, vous devez absolument connaitre:
  • Les bases de la geometrie (Systèmes de coordinonnées, les formules de distance)
  • Un bonne structuration des programmes (eviter les variables globales et les syndrome du copier-coller)
  • La programmation orienté objet (classes, heritages)
  • Optimisation basique (boucles simples, utiliser des pointeurs et des references à la place de copies)
Temps moyen de developement à ce niveau: 1 semaine
5.2 Deuxième année
Newbie game, Year 2 (Skitter)

Maintenant nous avons un but plus clair, n'est ce pas? Lors de la seconde année, vous allez pouvoir apprendre des choses sur la programmation de jeux en temps réel qui vous aideront à comprendre comment sont réellement construites les fonctions des jeux. De plus, vous allez faire un paquet d'erreurs. Mais bon, vous allez afficher quelques graphismes à l'écran et impressionner vos potes.

Pour progresser jusqu'au niveau de connaissance de troisième année, vous devriez savoir:
  • Comment utiliser une API graphique basique (SDL, ClanLib) pour produire des jeux simples
  • Faire des algorithmes de detection de collision et quelques autres essentiels aux jeux d'arcade
  • Comment construire en gros la boucle principale d'un jeu, et comment gerer les problemes
  • Debuguer
Temps moyen de developement à ce niveau: 1 mois
5.3 Troisième Année
Newbie game 3 (Heroes of Roswell)
remerciements à: Patrick Avella pour ses Heroes of Roswell

C'est le moment où le gameplay commence à être présent. D'ici la fin de la troisième année, vous devriez avoir fait des jeux du genre arcade assez compliqués avec des ennemis pseudo-intelligents et des animations sympas.

Les personnes désirant atteindre un niveau de quatrième année devraient avoir:
  • Au moins deux jeux "finis" qui peuvent etre joués d'un bout à l'autre
  • Une bonne connaissance de la detection de collision et d'autres algorithmes de jeu
  • Une connaissance excellente des API et des langages de programmation utilisés, ainsi qu'une bonne connaissance sur la résolution des problemes, de façon a pouvoir utiliser de nouveaux APIs et langages de programmation
  • Une bonne connaissance de comment faire un jeu sympa; des controles bien concus et une IA decente.
  • Une compétence basique de "programmer art", i.e. faire des sprites de test avec GIMP ou Photoshop
  • Des bonnes compétences de debugage, et des connaissances concernant les problèmes usuels tels que les manques de mémoire, ralentissements et les manières de les contrer
Temps moyen de developement à ce niveau: 6 mois
5.4 Quatrième Année
The Omega Initiative
ScreenShot de The Omega Initiative remerciements à: Laz
(Cliquez pour voir la version complete -- Ca vaut le coup!)

Voici à présent la crème de la crème; les jeux un ou plusieurs joureurs qui sont bons mais et aussi étonnants. Vous pouvez vous attendre vraiment à voir des gameplays compliqués ou des graphismes éblouissants; parfois les deux en un seul jeu. Ces jeux ne sont différents des sorties commerciales que par leur durée de vie, ou par la taille de leur contenu.

Les gens souhaitant avancer plus loin auront besoin:
  • Quelques connaissances de programmation ou "talent" qui fera la différence avec les autres developpeurs; i.e. un focus sur les controles, algorithmes physiques,ou programmation graphique
  • Un paquet d'experience, et beaucoup de jeux finis, avec un portfolio bien rempli à montrer
  • Une compréhension profonde de la construction des jeux, et de comment travailler pour obtenir le meilleur jeu avec le moindre effort
  • Beaucoup de temps libre et une bonne source de caffeine
  • Des contacts, ou des collegues potentiels, qui savent ce qu'ils font.
Temps moyen de developement à ce niveau: 1 an

6.0 Ecoles
Pas mal de gens se demandent s'il peuvent entrer à Digipen, Full Sail, ou une autre des "écoles de jeux" supectes qui font de la pub sur TechTV ou EGM, et apprendre tout de cette façon. Voici la réalité.
6.1 "Ecoles de jeu"
Bien que les écoles de jeu soient très adaptées si vous savez deja de quoi il en retourne à propos de la création de jeux, des lieux comme Digipen et Full Sail sont la plupart du temps des pompes à fric. En y allant, vous y obtiendrez un niveau limité. Baseés sur leur reputation, ces diplomes pourraient être utilisables dans une companie de jeux, ou pourraient aussi ne pas valloir plus que du papier toilette.

De plus, si l'industrie du jeu vidéo entre dans une periode de récession (diminution passagère de la production), ce sera très difficile de trouver un travail dans un autre secteur que celui des jeux vidéos avec un "diplome de jeux". Quelques patrons croiront probablement que vous vous etes posés sur vos fesses et avez joué à Final Fantasy pendant Quatre ans. Si vous avez deja un diplome en sciences informatiques, et que vous ne voulez pas faire autre chose que des jeux, quelque diplome d'une école de jeux pourrait vous donner une tete d'avance dans la competition, mais je ne recommande pas ces écoles comme diplome unique lors de votre éducation post bac.

Mise à jour du 12/26/04: J'ai entendu dire que Digipen et Full Sail sont à présent accreditées, mais tant qu'elles persisteront à proposer des formations d' "école de jeu", ce sera incroyablement difficile de trouver un job dans un autre secteur. Je ne sais pas ce qu'il en retourne au sujet des autres "écoles de jeu". Mon point de vue original persiste: si une récession affecte le marché des jeux vidéos, votre diplome pourrait être pire que ne rien avoir si vous ne pouvez pas trouver un employeur qui saisit la réputation de votre école. Etant donné le coût relativement élevé de ces formations, vous serez surement mieux servi par un diplome d'université classique. (Voir 6.2).

Je ne dis pas que Full Sail et compagnie sont inutiles: l'exemple de jeu ci dessus a été fait dans le cadre d'un cours de Full Sail. De toute façon, je vous encourage de faire votre propre recherche au lieu de penser que Digipen et compagnie sont le seul moyen de faire un job dans les jeux vidéos.

Mise à jour de 2006: Il existe en France (plus précisément à Angoulème) une école nationale de jeu vidéo et multimedia: l'Enjmin
6.2 Universités prestigieuses (et moins prestigieuses)
Vous avez interet d'aller là pour votre premier diplome. Quelques universités accreditées commencent à donner des cours de game design, et meme si l'industrie du jeu vidéo explose vous avez un diplome standard en science de l'informatique d'une université prestigieuse (au lieu des colleges techniques de seconde zone) pour vous permettre de vous retourner. Il existe aussi quelques programmes interessants de coopération qui vous ameneront à un travail (à des endroits tels que l'université Simon Fraser ) et à de l'experience.

Lorsque vous en venez à l'academie, assurez vos arrières. Faites vos recherches et considerez le futur.

7.0 Conclusion
Ce document a comme unique but d'être une simple introduction au developpement de jeux independant et de savoir de quoi il en retourne; ce n'est absolument pas un document technique complet sur comment commencer dans l'industrie du jeu vidéo. Consultez GameDev.net pour obtenir cette information.

Comme toujours, faites votre propre recherche. Je pense avoir creé un guide pour débutant décent, mais il est extrèmement leger sur les détails techniques. Je pense peut être faire un guide pour SDL plus tard, afin de permettre aux gens de commencer le coté technique du developement de leur jeu, avec quelques liens vers les endroits où obtenir des (bons) outils gratuitement, tels que Gimp et Code::Blocks ou encore Dev-C++ (pas terrible) .

De plus, si vous pensez que quelque chose devrait figurer ici, contactez moi:
  • AIM: ravuya
  • Yahoo! IM: mr_seigen
  • MSN/e-mail: ravuya(at)gmail.com

Je ferais de mon mieux pour le faire figurer dans une prochaine révision de ce document.
Vous pouvez aussi poser des questions sur the forum (lien mort) à propos de cet article.

Copyright 2004-05 Rav ; screenshots used under permission of respective authors - screenshots utilisés avec la permission de leurs auteurs respectifs