Apprentissage de la programmation de jeux vidéos

Démarré par Noxneo, 17 Juin 2007 à 04:45

0 Membres et 1 Invité sur ce sujet

17 Juin 2007 à 04:45 Dernière édition: 17 Juin 2007 à 04:47 par Noxneo
Comment devenir un programmeur de jeux vidéos ?
Une adapation libre de "How do I make games ? A path to game development" par Geoff Howland


Quand je parle avec des gens qui projettent de devenir créateur de jeu vidéo, l'une des choses que j'entends le plus souvent est: "Je veux faire un MMORPG comme World of Warcraft", ou "Je veux faire un jeu de stratégie comme Starcraft", etc. Il est inutile de préciser que ces motivations sont démesurées, car faire un jeu est extrêmement complexe.

Des jeux comme Warcraft, Far Cry ou autre ont tous été faits par des équipes de professionnels, travaillant à plein temps pendant plusieurs mois. De plus, ils ne se sont pas juste levé un matin en disant "Je vais faire un jeu révolutionnaire". Ils ont commencé petit, par des jeux dont vous n'avez certainement jamais entendu parler, et se sont hissés au sommet au fil du temps. C'est l'expérience qui fait la différence.


Non, même en lisant ce guide à fond vous ne ferez pas un jeu comme ça ce soir.

Tant que vous ne comprendrez pas que l'expérience est à la clé de la réussite, vous ne pourrez jamais réussir. Il faut commencer petit pour pouvoir finir grand.

Et c'est le but de ce guide: vous aider à commencer petit.

I. Tetris

Tetris est le jeu idéal pour commencer, et ce pour plusieurs raisons. Le concept de Tetris est très simple à appréhender: pas besoin de se casser la tête des heures sur le game design. De plus, il vous suffit d'ouvrir Paint et de faire des carrés pour les graphismes: quoi qu'il arrive, un bloc est un bloc.


Un des jeux les plus simples du monde, mais paradoxalement celui sur lequel on passe le plus de temps.

De plus, Tetris possède l'élément de base commun à tout jeu: une boucle principale, qui lit les entrées au clavier, effectue les opérations en conséquence, affiche les informations correspondantes à l'écran, et vérifie les conditions de victoire et défaite.

Vous l'aurez compris, Tetris est (et devrait être, dans le meilleur des mondes) votre premier jeu graphique. Ah oui, et juste comme ça: n'appellez pas votre jeu Tetris, étant donné que c'est une marque déposées ;)

II: Casse Briques

Après Tetris, visons un peu plus haut: un casse briques. Breakout ajoute quelques éléments supplémentaires: une gestion des collisions plus avancée (pour les rebonds de la balle), ainsi qu'un système de chargement de niveaux


Un grand classique qui vous fera réviser la trigonométrie.
III. Pacman

Pacman est encore le niveau au dessus. Vous avez tous les éléments précédents (collisions, chargement de map) et en plus un vrai début d'intelligence artificielle.


Classique, fun, addictif, mais assez difficile à bien programmer pour un novice.

Hé oui, contrairement à ce que beaucoup croient, les fantômes de Pacman ne sse déplacent pas au hasard. Ils ont une intelligence dite "grégaire", c'est à dire faite pour fonctionner en groupe. Un fantôme est aggresseur: il fonce sur vous. Les deux autres fantômes sont intercepteurs: leur but est de bloquer les issues non prises par l'agresseur. Enfin, le dernier fantôme se balade au hasard, afin de vous empêcher de prendre toutes les pilules d'un coup et de rajouter une touche d'imprévisible au jeu.

IV. Un jeu de plate formes

Après Pacman vient le jeu de plateformes. Le jeue de plate formes présente tout ce qui a été dit précedémment, mais en plus complexe: il va falloir faire défiler la carte, garder en mémoire les états des différents ennemis, vous allez pouvoir améliorer l'IA...par ailleurs ce type de jeu permet d'utiliser des composants nouveaux, comme des boss ou des cinématiques de fin de niveau.


Itsa me, Marrrio !

Par ailleurs, coder un éditeur de niveau graphique peut être une bonne idée.

V. Faut que ça brille

Attention, votre jeu n'est pas fini parce qu'"il marche". Il faut ajouter des menus, débugger le tout, bref adopter, même dans les projets les plus petits, les réflexes que vous aurez à avoir dans de grands projets. Encore une fois, ceci dans une optique d'accumuler de l'expérience.


Un bel écran titre animé, un système de high scores, des modes de jeu variés...autant d'éléments qui contribuent à améliorer un jeu.

Il y'a une différence entre un jeu jouable et un jeu fini. Et alors que cette différence est ténue dans Tetris, elle est beaucoup plus perceptible dans un jeu comme Mario. Tenez en compte, la fierté que vous aurez au final ne sera que plus grande.

VI. Mais ces jeux sont nuls !

Vous avez peut-être l'impression que les jeux cités précedemment sont nuls, démodés, etc. Mais la base d'un jeu est toujours la même: un jeu de shoot, en 2D ou en 3D, reste un jeu de shoot. Par ailleurs, rien ne vous empêche, une fois les projets précédents finis en 2D, de les améliorer avec des graphismes 3D. Et du coup, on peut passer d'un Tetris classique à un Tetris avec plein d'effets graphique, plutôt sympa.


Tetris en 3D avec du HDR, un moteur de gestion des particules et un système de diffraction de la lumière via shaders: c'est le paradis.

Si votre objectif est de faire des beaux jeux, et de ne pas juste faire des jeux, alors ne vous orientez pas dans la programmation, mais dans le graphisme. Si vous désirez vraiment faire des jeux, ce n'est pas vos ambitions qu'il faut développer, mais vos capacités. Quand on apprend à nager, on ne commence pas par plonger dans le grand bain, mais par flotter avec des brassards dans le petit bain. En programmation, c'est pareil.

VII. Soyez fiers !

Vous apprenez à faire des jeux, soyez en fiers ! Les gens à l'école n'ont pas honte de ne pas avoir de travail et n'en être qu'au stage de l'apprentissage. Par ailleurs, ne laissez pas les autres vous impressionner par leurs idées grandioses de jeu vidéos: si on ne peut pas y jouer, ce n'est pas un jeu: c'est tout au mieux au concept. Après avoir réalisé tous ces projets, peut-être pourrez vous commencer à mélanger le jeu (la programmation) et le concept (le game design).


Crayon Physics: un excellent concept programmé par Kumikana

Voilà, sur ce j'espère que ce petit guide aura fait le ménage dans vos idées, et vous aidera à aborder l'apprentissage de la programmation de jeux comme il le faut ;)









Commentaires, remarques, etc dans ce topic: http://forums.zelda-solarus.com/index.php?topic=15242