Par où commencer

Concept Art issu d'Half-Life 2

Vous débutez dans le monde de la création de jeux vidéo et vous ne savez pas par où commencer ? Dans ce cas, bienvenue ! Cet article va essayer de vous guider et de vous faire découvrir les multiples facettes de cette activité.

Si vous connaissez déjà un peu la création de jeux vidéo, cet article ne va pas vous donner grand-chose, car il se borne à expliquer les différents types de développement, leurs spécificités ainsi que les règles de bases à respecter.

Un pas difficile à franchir est la barrière de la langue : le vocabulaire de l'informatique en rebute beaucoup. Mais sous des noms barbares se cachent souvent des principes simples. Ne vous laissez pas intimider ! À ce propos, ce document se veut simple donc je ne soulève pas certains problèmes et j'évite les mots techniques. Je prie donc les programmeurs plus aguerris d'excuser mes imprécisions ;).

Créer un jeu est un métier qui demande de nombreuses compétences. Aucun amateur n'a jamais pu obtenir un résultat s'approchant d'un résultat de jeu professionnel sans passer par des études supérieures spécialisées.

Programmer un solitaire ou un tetris par vous-même vous demandera plusieurs mois de pratique !


Sommaire

[modifier] Comment fonctionne un jeu ?

Un jeu est composé d'un programme et de ressources (images, musiques, sons, etc.).

Le programme est la suite d'instructions élémentaires que le PC doit effectuer afin que le jeu puisse fonctionner. Cette suite d'instructions est tapée par les programmeurs sous la forme d'un texte composé de différents mots-clés en anglais, dans une sorte de langue appelée langage de programmation.

Si vous développez vos jeux à l'aide de 3d games creators, vous pouvez avoir ceci :

hide mouse sleep 100 position camera 500,500,500

Si cela vous décourage d'apprendre un langage, vous pouvez vous limiter à d'autres domaines tel que l'infographie et travailler au sein d'une équipe. Toutefois, une connaissance même faible de la programmation est appréciable. Mais il est aussi possible de développer des jeux sans passer par ce moyen.

Des logiciels tel que RPG Maker ont remplacé l'utilisation de langages par celle de scripts où l'on n'a pas besoin de taper du texte. Mais malgré tout, le principe reste le même.

Il vous faudra donc choisir une manière de développer votre projet, soit à l'aide de logiciels dédiés, soit par des langages de programmation. Ce comparatif de solutions de développement va vous présenter chacune d'elle, ainsi que ses inconvénients et ses avantages respectifs.


[modifier] Comparatif des différents types de développement

Lors de la rédaction de ce comparatif, je me suis efforcé de rester objectif. Mais il est bon que vous expérimentiez par vous-même les différents outils disponibles.

Je vais essayer de classer les outils selon leur niveau de difficulté. Les premiers seront très abordables, même pour les plus jeunes, alors que les derniers nécessiteront des connaissances en informatique et en mathématiques approfondies.


[modifier] RPG maker & cie.

Le logiciel RPG Maker XP dans sa version japonaise
Le logiciel RPG Maker XP dans sa version japonaise

RPG Maker est l'outil idéal pour les débutants : vous pouvez vous créer un jeu jouable en quelques jours, voir même en une soirée. Il permet de créer très facilement des RPGs tour par tour de type 2d. De plus, il existe un patch pour le traduire en français.

Aucun connaissance n'est requise et il est fourni avec assez de ressources (images, sons) pour pouvoir directement s'amuser. Il n'y a pas de langage de programmation à connaître, tous les éléments dynamiques sont définis à l'aide de l'éditeur.

Malheureusement, RPG Maker est limité au RPG, sauf à le détourner, ce qui rend déjà la tâche plus ardue ! De plus, le moteur commence à dater et le style de jeu créé peut certes être très amusant et rivaliser avec la Super Nintendo, mais certainement pas avec la GameCube!

Le logiciel "RPG Maker 3D" est en fait 3D RPG Editor.

Les plus

  • facile à apprendre
  • résultats rapides
  • de nombreuses ressources à disposition

Les moins

  • moteur vieillissant
  • résolution faible (320x240 ou 640x480)
  • limité à un type de jeu précis
  • l'absence de langage le rend plus accessible, mais rend quasi-impossible les innovations

[modifier] M.U.G.E.N.

Un jeu de combat créé avec MUGEN
Un jeu de combat créé avec MUGEN

MUGEN est un moteur de combat en 2d évolutif car on peut y ajouter ses propres personnages et niveaux. Toute la partie programmation s'effectue sous la forme de scripts. De nombreux personnages sont disponibles sur le net et le moteur est gratuit. Il bénéficie d'une communauté très active.

Cependant, le moteur ne rajeunit pas: il est encore sous DOS. Et l'hypothétique version Windows ne viendra probablement jamais !

Les plus

  • moteur libre et relativement performant
  • relativement facile d'accès
  • gratuit  !

Les moins

  • moteur vieillissant, sous DOS
  • faible résolution

[modifier] Game Maker

Crimelife 2, un jeu en 3D ressemblant à GTA et réalisé avec Game Maker
Crimelife 2, un jeu en 3D ressemblant à GTA et réalisé avec Game Maker

Game Maker est un logiciel qui permet de créer ses propres jeux, à mi-chemin entre les langages BASIC (voir section suivante) et RPG Maker. En effet, les débutants peuvent y utiliser un système de Glisser/Déposer pour réaliser facilement des actions (déplacement d'une image, apparition d'un texte à l'écran...) tandis que les utilisateurs avancés peuvent utiliser un langage de programmation simplifié appelé GML. Pour que les débutants ne soient pas perdus dès le début, un mode simple et un mode avancé sont disponibles.

Game Maker dispose d'un moteur 3D et de fonctionnalités permettant d'utiliser une connexion à Internet (pour faire un MMORPG par exemple) et aussi d'utiliser des DLL pour étendre les fonctionnalités de Game Maker lorsqu'elles sont trop limitées (pour pouvoir crypter des données par exemple). Il est à noter que toutes ces fonctionnalités ne sont accessibles que lorsqu'on utilise le GML. Certains systèmes très pratiques, comme un système de gestion de vie, de score ou de santé sont déjà inclus.

Cependant, les fonctionnalités avancées de Game Maker (utilisation de DLL, utilisation de la 3D, connexion à Internet...) sont disponibles uniquement dans l'édition Pro de Game Maker, qui coûte 15 euros (l'édition de base, appelée Lite est gratuite et illimitée dans le temps).

Les plus

  • s'adapte au niveau de l'utilisateur grâce à un mode simple et à un mode avancé, et grâce à un système de Glisser/Déposer pour les débutants et d'un mini langage de programmation pour les experts
  • possibilité d'utiliser de la 3D, une connexion à Internet et des DLL pour étendre les fonctionnalités du logiciel (dans l'édition Pro)
  • l'édition Lite est gratuite et illimitée dans le temps
  • la documentation est disponible en français ici
  • il existe une communauté active autour du logiciel

Les moins

  • le logiciel en anglais
  • l'édition Pro qui permet d'avoir plus de fonctionnalités est payante (15 euros)
  • les fonctionnalités avancées ne peuvent être utilisées qu'en GML (le mini-langage de programmation)

Les liens

[modifier] Les langages BASIC

Un programme créé avec 3d games creator pro
Un programme créé avec 3d games creator pro

La programmation via ces langages est un compromis entre la programmation pure et dure et les logiciels sans programmation. Ces langages sont dédiés aux jeux vidéos, ce qui les rend moins lourds à apprendre, mais pas forcément simpliste.

Cependant cette simplification se paie au niveau de la puissance : ils ne peuvent rivaliser avec la programmation traditionnelle car il faut plus de puissance avec ces logiciels pour réaliser les mêmes tâches qu'avec une programmation normale.

De nombreux logiciels sont sortis et la guerre fait rage entre eux : 3d games creator, 3d games professional (la nouvelle version de ce dernier), blitz, PureBasic etc. Qui est le meilleur ? le débat n'est pas clos et les discussions sur ce point sont parfois animées entre les aficionados de ces différents produits. Le point négatif réside également dans leurs prix qui s'échelonne d'une cinquantaine d'euros à plus de mille.

Les plus

  • langages puissants par rapport à des logiciels sans programmation, mais malgré tout moins performant que la programmation directe.
  • fonctions 3d puissantes et simples
  • niveau en maths demandé relativement faible
  • suit l'évolution de la technologie (prise en charge des pixel/vertex shaders, retour de force,...)

Les moins

  • plus difficile à prendre en main, nécessite d'apprendre un langage
  • prix parfois élevé

[modifier] La programmation traditionnelle

Jeu de stratégie en temps réel réalisé en C++ avec Tokamak
Jeu de stratégie en temps réel réalisé en C++ avec Tokamak

La voie royale ! Difficile, nécessitant un très bon niveau tant en maths qu'en informatique mais incontestablement celle qui produit les meilleurs résultats. Normal, étant donné que les jeux professionnels sont créés de cette manière !

Généralement en C/C++, VB, Delphi ou autre langage évolué et à l'aide d'une bibliothèque graphique telle que DirectX, OpenGL ou SDL. Les programmes générés bénéficient des toutes dernières technologies et le programmeur n'a pour limite que son imagination ! (et accessoirement ses compétences ^^).

Les outils utilisés peuvent être soit payants (Visual C++ de Microsoft ou Borland C++) soit libres (GCC).

Le choix tant de la bibliothèque graphique que du logiciel est sujet à de nombreuses discussions et on ne peut pas dire réellement que l'un est meilleur que l'autre. C'est plus compliqué que cela.

En plus des bibliothèques graphiques de base, intégrées au système et souvent ardue à aborder, il existe des moteurs graphiques, comme Ogre, TrueVision_3D, WebDriver ou Tzu3D. Ces logiciels sont des couches supplémentaires simplifiant l'accès à la bibliothèque sous-jacente. Attention, tous les moteurs graphiques ne fonctionnent pas avec toutes les bibliothèques graphiques. Par exemple, TrueVision_3D est pur DirectX !

Les plus

  • très puissant !
  • outils gratuits disponibles

Les moins

  • très difficile !
  • niveau en maths demandé élevé (à peu près celui de Terminale S)
  • niveau en programmation élevé (selon langage)

[modifier] Le développement console

Il se rapproche sous de nombreux aspects de la programmation que j'ai nommée traditionnelle ci-dessus : difficile, faite au départ pour des professionnels.

À ces difficultés se rajouter celles propres aux consoles : secrets de constructeurs, matériel à acheter,... tout cela rend la programmation sur console réservée à un petit nombre de personnes. En effet, certains constructeurs comme Nintendo se refusent à distribuer des kits de développement grand public, ce qui force les programmeurs amateurs à avoir recours à de la documentation non-officielle avec les risques que cela comporte (à l'opposé, Sony a diffusé sous le nom Net Yaroze un kit de développement qui a été uniquement distribué au Japon). Mais d'autres solutions pour les amateurs existent.

Par contre, ce serait un raccourci de dire que la programmation console est plus difficile. Je pense qu'elle n'est pas du tout fondée sur les mêmes principes que la programmations de jeux PC, donc personnellement je les mets au même niveau de diffculté.

Les plus

  • très puissant !
  • il est possible de trouver des outils gratuits

Les moins

  • très difficile !
  • pour un projet sérieux, il faut investir dans du matériel qui peut se révéler coûteux (ou alors ne pas avoir peur du bidouillage !)
  • constructeurs parfois obtus !

Remarque concernant tous ces logiciels : Il est conseillé d'essayer plusieurs logiciels avant d'en adopter un en particulier. C'est surtout valable pour les logiciels payants, car il serait dommage de dépenser de l'argent pour un logiciel qui ne sera finalement que peu utilisé alors qu'on aurait pu s'en rendre compte en essayant la version de démonstration.

Essayer plusieurs logiciels, c'est aussi augmenter ses chances de tomber sur celui qui nous convient le mieux.

[modifier] Apprendre et demander de l'aide

Pour apprendre, rien de mieux que d'expérimenter soi-même. Les communautés d'utilisateurs sont très actives et sont toujours prêtes à donner un coup de main aux débutants. De plus, de nombreuses ressources sont disponibles sur le net en général et sur le GCN en particulier !

Pensez à utiliser l'aide fournie avec les logiciels et à étudier les codes sources d'autres développeurs.

Concernant plus particulièrement les forums, poster les messages UNE seule fois, pas dans chaque forum. Soyez clair et précis. Le style SMS est également à éviter (et donc a priori un français correct est un plus).

  • Mauvais message
    • Titre : j'ai un problème utilisez un titre explicite !
    • Message : ça ne marche pas ajoutez toujours des explications : où, quand, comment ? Quel est le but du programme ? Insérez dans votre message une citation du code source qui pose problème.
  • Bon message
    • Titre : erreur lors du chargement d'un modèle 3d
    • Message : mon programme charge un modèle 3d et l'affiche. A la ligne XX, le programme m'affiche cette erreur: XXXXX. J'ai joins le code source à ce message, etc.

Pour finir, pensez open source : publiez votre code, faites vous connaître ! Ce n'est pas en évitant de divulguer votre pauvre programme de deux pages et demi que vous ferez fortune. Pensez aussi que si personne n'avait divulgué son code avant vous, il n'y aurait aucun moyen d'apprendre à programmer sur le net ! De plus, il sera d'autant plus facile de vous aider que l'on connaitra bien le programme que vous créez. Si vous ne publiez pas votre code, vous serez seul face à vos problèmes.

[modifier] Participer à un projet

De nombreuses personnes se lancent dans la création de jeu avec un projet, irréalisable la plupart du temps, donc pour mettre les choses au point : vous ne pouvez pas arriver et penser recréer Final Fantasy XXXII ou Luigy's mansion II comme ça ! Un peu d'humilité. Les personnes ayant participé à leur élaboration sont parmi les meilleures du monde, la route sera donc longue avant d'espérer atteindre leur niveau.

La place de leader d'un projet n'est pas faite pour les débutants : le leader doit mettre en rapport les différentes compétences, gérer à la fois le projet (avancement, répartition des tâches,...) et ce qui gravite autour (site web, publications d'informations à propos de son projet). Par contre, évitez d'être trop directif, nous faisons des jeux amateurs, c'est-à-dire parce qu'on aime ça ! Cela ne doit donc pas devenir un poids. Il vaut mieux discuter ensemble plutôt que d'imposer des décisions. Les outils tel quel IRC ou la messagerie instantanée prennent alors toute leur importance.

Il n'est pas nécessaire d'être très bon dans un domaine pour faire partie d'une équipe, par contre ne prenez pas le rôle de leader comme quelqu'un qui fait juste de la figuration, loin s'en faut !

En résumé, ne désespérez pas ! Faire un jeu est possible mais ce ne sera ni Final Fantasy, ni Max Payne ! Soyez réaliste, ne pensez pas que l'on devient créateur de jeux par hasard, un jour, comme ça. Si vous arrivez à recréer un tetris, c'est déjà cela ! Pensez aussi que des projets sans base, les habitués du forum en voient passés tous les jours des dizaines ! Il en découle une grande méfiance face aux nouveaux projets et vous devrez apporter des preuves concrètes avant que l'on commence à s'intéresser à votre projet. La réputation est alors un bon allié, ainsi que des contacts dans tous les domaines. Publiez votre code, montrez vos connaissances et l'on s'intéressera beaucoup plus à vos projets !

[modifier] Prêt... Feu... Partez!

Parcourez nos sites, participez au forum et si vous souhaitez une aide plus directe, notre salon irc vous est ouvert !

Nous n'avons encore mangé personne (ironie inside ;)