Jeux Video Par-ou-commencer Dev

download Jeux Video Par-ou-commencer Dev

of 23

Transcript of Jeux Video Par-ou-commencer Dev

  • 8/8/2019 Jeux Video Par-ou-commencer Dev

    1/23

    Programmation de jeux vido : par ocommencer ?

    par Laurent Gomila

    Date de publication : 13/01/2006

    Dernire mise jour : 13/01/2006

    Nombreux sont celles et ceux qui souhaitent entrer dans le cercle desdveloppeurs de jeux. Malheureusement, cela se rvle bien souventbeaucoup plus compliqu qu'on ne le croit, surtout pour les dbutants. Cetarticle vous aidera, je l'espre, clarifier les choses, choisir les bons outils etfaire vos premiers pas dans le monde du jeu vido.

    http://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000
  • 8/8/2019 Jeux Video Par-ou-commencer Dev

    2/23

    1 - Introduction

    2 - Identifier ses besoins3 - Choix de la plateforme3.1 - Dveloppement pour consoles3.2 - Dveloppement pour tlphones portables3.3 - Dveloppement pour PDA / Palm / PocketPC

    4 - Choix des armes4.1 - Les logiciels tout-en-un (pour les cratifs)

    4.1.1 - RPG Maker4.1.2 - MUGEN

    4.2 - Les langages BASIC (pour les progueux du dimanche)4.2.1 - DarkBasic Pro - 3D Games Creator Pro4.2.2 - PureBasic4.2.3 - BlitzBasic4.2.4 - Hyperion

    4.3 - Les langages bas niveau (pour les passionns)4.3.1 - Je dbarque : je ne connais aucun langage4.3.2 - Je matrise dj un langage de programmation

    5 - Choix des bibliothques5.1 - Les bibliothques de jeu : tout en un5.2 - Les moteurs5.3 - Les APIs bas niveau5.4 - Les bibliothques utiles

    6 - Mthodologie6.1 - L'extrem programming (XP)6.2 - UML quoiqu'il arrive6.3 - L'outil ultime du codeur : le crayon et le bout de papier6.4 - CVS / SVN, ou comment grer proprement ses sources6.5 - Conseils d'ordre gnral pour bien progresser

    7 - Et maintenant ?7.1 - Ressources7.2 - Sites communautaires7.3 - Jeux open-source7.4 - Intgrer une quipe

    8 - Conclusion9 - Tlchargements

    Programmation de jeux vido : par o commencer ? par Laurent Gomila

    - 2 -Les sources prsents sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentationde ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2006 - Laurent Gomila. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse del'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://loulou.developpez.com/tutoriels/jeux_video

    http://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://loulou.developpez.com/tutoriels/jeux_videohttp://loulou.developpez.com/tutoriels/jeux_videohttp://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000
  • 8/8/2019 Jeux Video Par-ou-commencer Dev

    3/23

    1 - Introduction

    Ces dernires annes le march du jeu vido a explos, tel point qu'il est de nos jours plus important que celuidu grand cran.

    Les jeux vido attirent un public de plus en plus large, mais sduisent galement de plus en plus de dveloppeurs.Malheureusement, la programmation de jeu vido est souvent mconnue et beaucoup imaginent que ce sera aussi"fun" que de jouer. Le fait est que c'est totalement faux, en vrit le jeu vido demande beaucoup d'investissementainsi que des connaissances thoriques et pratiques assez pousses, que la plupart des codeurs n'ont pasforcment.

    Toutefois, pour ceux qui sont bien conscients de tout cela, coder un jeu vido ne se rvle tout de mme pas unepartie de plaisir, et beaucoup se perdent dans la jungle du dveloppement de jeux.

    Cet article est donc une introduction la programmation de jeux, et a pour but d'orienter et de conseiller lesdbutants, afin de leur fournir de bonnes bases pour dmarrer et continuer sereinement le dveloppement de jeux.

    Attention, cet article ne parlera donc que de programmation ; tout ce qui concerne le game design, la scnarisation, le dessin, la modlisation, ... ne sera pas abord ici.

    Programmation de jeux vido : par o commencer ? par Laurent Gomila

    - 3 -Les sources prsents sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentationde ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2006 - Laurent Gomila. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse del'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://loulou.developpez.com/tutoriels/jeux_video

    http://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://loulou.developpez.com/tutoriels/jeux_videohttp://loulou.developpez.com/tutoriels/jeux_videohttp://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000
  • 8/8/2019 Jeux Video Par-ou-commencer Dev

    4/23

    2 - Identifier ses besoins

    Le codage d'un jeu vido est une tche complexe, longue et requierant de nombreuses comptences. Il est donctrs probable que tous les aspects de la cration d'un jeu vido ne vous intressent pas. Comme je l'ai prcis enintroduction, si ce qui vous intresse dans un jeu ce n'est pas la programmation, alors vous pouvez d'ores et djstopper la lecture de cet article : il ne parlera que de dveloppement.

    La programmation d'un jeu se compose elle aussi de nombreuses comptences : rendu 2D / 3D, physique,intelligence artificielle, rseau, rendu sonore, scripting, logique de jeu, ... Il est possible de matriser chacun de cesdomaines, mais autant vous le dire : en apprendre un seul la fois est dj suffisamment compliqu, ne vousdispersez donc pas. D'autant plus que votre boulot au sein d'une quipe de dveloppement de jeu seracertainement limit un seul domaine (voire un sous-ensemble de ce domaine), vous n'aurez jamais toucher tout.

    Une fois votre domaine prfr identifi, il faut savoir que ce n'est pas parce qu'on l'aime qu'il sera facile del'apprhender. Chacune de ces disciplines requiert en effet de solides connaissances thoriques, que ce soit enalgbre linaire pour la programmation 3D, en physique pour la... physique, en logique pour l'IA, en protocoles basniveau pour le rseau, etc. Assurez-vous donc d'tre jour ce niveau, ou de commencer votre apprentissage para si ce n'est pas le cas.

    Le second besoin identifier, et certainement le plus important, concerne votre motivation. Il y a globalement deuxtypes de codeurs de jeux : ceux qui veulent le plus rapidement possible concrtiser leur esprit cratif, et ceux quiveulent coder pour coder, acquerir un maximum d'exprience, quelque soit le jeu qui se trouve derrire. Nousverrons plus tard l'incidence que cela aura sur le choix des technologies.

    Programmation de jeux vido : par o commencer ? par Laurent Gomila

    - 4 -Les sources prsents sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentationde ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2006 - Laurent Gomila. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse del'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://loulou.developpez.com/tutoriels/jeux_video

    http://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://loulou.developpez.com/tutoriels/jeux_videohttp://loulou.developpez.com/tutoriels/jeux_videohttp://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000
  • 8/8/2019 Jeux Video Par-ou-commencer Dev

    5/23

    3 - Choix de la plateforme

    Le jeu vido se dmocratise, et touche de plus en plus de plateformes :

    Ordinateurs personnels Consoles de salon Consoles portables Tlphones portables PDAs Internet / jeux en ligne

    Prcision qui ne mange pas de pain : quelque soit la plateforme que vous ciblerez, le dveloppement lui se ferabien entendu toujours sur ordinateur. Simplement, vous gnrerez avec les outils adquats des fichierscompatibles avec la plateforme cible, et non des binaires utilisables par votre systme d'exploitation. Vous vousimaginiez vraiment dvelopper un jeu de A Z sur une Game Boy ?

    Bien que la thorie du jeu vido reste la mme quelque soit la plateforme, il faut savoir qu'au niveau technique ilpourra exister de grosses diffrences selon celle que vous choisirez.

    Par exemple, viser les ordinateurs personnels peut paratre plus facile du fait des nombreux outils et bibliothquesdisponibles de par le net ; cela peut par contre devenir un vrai challenge pour grer toutes les combinaisons desystmes et de matriels supporter pour toucher tous les joueurs. Les consoles au contraire, peuvent rebuter depar la spcificit des outils utiliser, par contre vous n'aurez aucun souci au niveau de la compatibilit puisquevous n'aurez grer qu'une seule et unique configuration.

    Une bibliothque (library) est un ensemble de fonctions, classes ou variables, que vous pouvez utiliser pour effectuer des tches bien spcifiques (parcourir des fichiers XML, traiter des images, manipuler des dates, ...)sans avoir les reprogrammer.

    N'oubliez pas non plus que selon la plateforme que vous choisirez, vous aurez accs ou non certains outils oucertaines APIs. On peut le dire : ce niveau le dveloppement sous Windows est plus fourni ; attention je n'ai pasdit non plus qu'il tait difficile de se procurer de quoi dvelopper sous Unix.

    Le dveloppement multi-plateforme est bien sr la panace, mais cela demande des efforts supplmentaires quel'on n'est pas forcment apte faire lorsqu'on dbute.

    Une API (Application Programming Interface) est une bibliothque de fonctions, permettant en gnral d'accder au matriel ou des fonctions du systme d'exploitation. La nuance avec bibliothque est assez faible.

    Dans un premier temps concentrez-vous donc sur une unique plateforme, voire une unique configuration (la vtre).Cela sera bien suffisant pour acqurir un bout d'exprience, et les considrations relatives la gestion de plusieurssystmes ou configurations sont plutt pnibles voire inutiles pour un dbutant.

    A choisir entre ordinateurs personnels et consoles ou tlphones portables, je dirais qu'il vaut mieux se concentrerdans un premier temps sur le premier, mais les autres plateformes sont aujourd'hui tout fait accessibles pour lesdbutants, et rien ne vous empche de vous lancer par exemple dans du dveloppement pour GBA ou pour Nokia.

    Voici quelques pistes qui vous permettront de faire vos dbuts dans le dveloppement autre que sur PC, si celavous tente. Pour ce qui est du dveloppement pour PC, tout le reste de l'article lui est consacr.

    Programmation de jeux vido : par o commencer ? par Laurent Gomila

    - 5 -Les sources prsents sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentationde ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2006 - Laurent Gomila. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse del'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://loulou.developpez.com/tutoriels/jeux_video

    http://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://loulou.developpez.com/tutoriels/jeux_videohttp://loulou.developpez.com/tutoriels/jeux_videohttp://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000
  • 8/8/2019 Jeux Video Par-ou-commencer Dev

    6/23

    3.1 - Dveloppement pour consoles

    Sony PSP

    La PSP se programme en C++, l'aide du PSP SDK. Pour executer un jeu il faudra un mulateur, ou modifiercelui-ci afin qu'il passe la protection Sony, l'aide d'un logiciel prvu pour cela.

    Liens :

    PS2Dev - section PSP

    Forums PSP Inside

    Tlchargements utilitaires PSP sur Gueux.be

    Un SDK (Software Development Kit) accompagne gnralement une API ou un matriel, et contient tout ce qu'il faut pour programmer avec : documentation, fichiers ncessaires au dveloppement (bibliothques,en-ttes, ...), exemples, etc.

    Nintendo DS

    Le dveloppement sur DS s'effectue en C, avec un kit de dveloppement spcifique. Pour faire tourner voscrations vous pourrez au choix utiliser un mulateur (pour executer vos jeux sur PC) ou un PassMe (moyend'executer vos jeux sur la console).

    Voici un tutoriel expliquant les outils utiliser et les tapes effectuer afin de compiler et faire tourner son premier jeu DS : Dvelopper sur DS - Jour 1 .

    Liens :

    DSDev

    Nintendo DS Development Tutorial

    Site officiel du devKitPro

    PassMe

    Les homebrew franais pour DS

    Microsoft XBoX

    Le dveloppement XBoX se fait trs bien (cette console ressemblant trangement un PC), il suffit pour cela demodifier quelque peu votre console et d'utiliser le SDK XBoX.

    Tout ceci est dtaill dans ce tutoriel : Convert your normal XBox into a development machine .

    Liens :

    Programmation de jeux vido : par o commencer ? par Laurent Gomila

    - 6 -Les sources prsents sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentationde ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2006 - Laurent Gomila. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse del'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://loulou.developpez.com/tutoriels/jeux_video

    http://ps2dev.org/psphttp://www.pspinside.fr/modules.php?name=Forums&file=index&c=4http://mobiles.gueux.be/modules/mydownloads/viewcat.php?cid=2http://ds-homebrew.over-blog.com/article-412590.htmlhttp://www.dsdev.org/http://www.aaronrogers.com/nintendods/http://www.devkitpro.org/http://www.dspassme.com/http://ds-homebrew.over-blog.com/http://www.hydras-world.com/index.php?page=xboxretailtodebughttp://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://loulou.developpez.com/tutoriels/jeux_videohttp://loulou.developpez.com/tutoriels/jeux_videohttp://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://www.hydras-world.com/index.php?page=xboxretailtodebughttp://ds-homebrew.over-blog.com/http://www.dspassme.com/http://www.devkitpro.org/http://www.aaronrogers.com/nintendods/http://www.dsdev.org/http://ds-homebrew.over-blog.com/article-412590.htmlhttp://mobiles.gueux.be/modules/mydownloads/viewcat.php?cid=2http://www.pspinside.fr/modules.php?name=Forums&file=index&c=4http://ps2dev.org/psp
  • 8/8/2019 Jeux Video Par-ou-commencer Dev

    7/23

    XBoX Scene

    Gueux.be - section XBoX

    Il est bien sr possible de dvelopper des jeux pour peu prs toutes les autres consoles, nous ne les listeronspas ici tant donn leur nombre lev.

    3.2 - Dveloppement pour tlphones portables

    Domaine en pleine expansion (et sans doute d'avenir), le dveloppement sur tlphone portable est plus simple et(heureusement) plus ou moins homogne, en Java (J2ME -- la version pour mobiles). A noter que l'environnementJava NetBeans possde un plugin spcialement conu pour J2ME. Ensuite, il faudra certainement aller cherchersur le site officiel du constructeur que vous ciblez, et utiliser les diffrents SDK et outils qu'il propose.

    Liens :

    J2ME

    Nokia Developers

    3.3 - Dveloppement pour PDA / Palm / PocketPC

    N'tant clairement pas mon point fort, je vous donne en vrac quelques liens et vous laisse dcouvrir le sujet. Lessites sont suffisamment bien fournis pour que vous vous y retrouviez facilement.

    Liens :

    Windows Mobile

    SuperWaba

    Palm Development

    Palmipod : programmation Palm

    CodePPC - dveloppement Pocket PC

    Programmation de jeux vido : par o commencer ? par Laurent Gomila

    - 7 -Les sources prsents sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentationde ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2006 - Laurent Gomila. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse del'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://loulou.developpez.com/tutoriels/jeux_video

    http://www.xbox-scene.com/http://gueux.be/modules/news/http://java.sun.com/j2me/http://www.nokia.com/developershttp://www.microsoft.com/windowsmobile/developers/default.mspxhttp://www.superwaba.com.br/en/default.asphttp://goanna.cs.rmit.edu.au/~winikoff/palm/dev.htmlhttp://www.palmipod.com/http://www.codeppc.com/http://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://loulou.developpez.com/tutoriels/jeux_videohttp://loulou.developpez.com/tutoriels/jeux_videohttp://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://www.codeppc.com/http://www.palmipod.com/http://goanna.cs.rmit.edu.au/~winikoff/palm/dev.htmlhttp://www.superwaba.com.br/en/default.asphttp://www.microsoft.com/windowsmobile/developers/default.mspxhttp://www.nokia.com/developershttp://java.sun.com/j2me/http://gueux.be/modules/news/http://www.xbox-scene.com/
  • 8/8/2019 Jeux Video Par-ou-commencer Dev

    8/23

    4 - Choix des armes

    Rappelez-vous, nous parlions dans le chapitre 2 de la motivation qui vous pousse vouloir faire des jeux vido. Etbien c'est maintenant que cette considration a son importance.

    4.1 - Les logiciels tout-en-un (pour les cratifs)

    Le jeu vido ayant la cte chez les dveloppeurs, vous imaginez bien qu'il existe des outils permettant d'crire un jeu de A Z sans avoir de connaissances pousses en programmation (voire aucune) -- un peu la manire desditeurs HTML permettant de concevoir un site web sans aligner une seule ligne de code.

    Et il en existe mme une multitude : du gnrateur de RPG au moteur de StreetFighter-like, vous trouverezsrement le logiciel qui conviendra la fois vos exigences et vos comptences. Bien sr, inutile de dire que lesplus simples seront les plus limits.

    Il ne faut cependant pas considrer ngativement ces logiciels : ils reprsentent au contraire une opportunit rvede crer vos jeux vido avec un minimum d'efforts. Aprs tout, pourquoi faudrait-il savoir manipuler des pointeurspour faire un casse-brique ?

    4.1.1 - RPG Maker

    Comme son nom l'indique, RPG Maker permet de raliser des RPG en 2D, et ceci sans aucun effort deprogrammation.

    Il se dcline en une multitude de versions, toutes payantes (les versions gratuites que vous pourrez trouver sont

    illgales) : Rpg Maker 95+ Rpg Maker 2000 Rpg Maker 2003 Rpg Maker XP 3D RPG Editor ...

    Quelques crations RPGMaker :

    Sites :

    http://www.enterbrain.co.jp/tkool/

    Programmation de jeux vido : par o commencer ? par Laurent Gomila

    - 8 -Les sources prsents sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentationde ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2006 - Laurent Gomila. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse del'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://loulou.developpez.com/tutoriels/jeux_video

    http://www.enterbrain.co.jp/tkool/http://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://loulou.developpez.com/tutoriels/jeux_videohttp://loulou.developpez.com/tutoriels/jeux_videohttp://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://www.enterbrain.co.jp/tkool/
  • 8/8/2019 Jeux Video Par-ou-commencer Dev

    9/23

    http://www.enterbrain.co.jp/tkool/RPG_XP/eng/

    http://www.yumeteam.net/yt/ .

    4.1.2 - MUGEN

    MUGEN est un logiciel multiplateforme (MS-DOS (!) et Linux) permettant de crer des jeux de combat 2D.Beaucoup de choses sont personnalisables, principalement via des scripts : personnages, animations, polices,barres de vie, menus, ...

    Les versions / licenses sont soumises controverse, je vous laisse dcouvrir les dtails sur les diffrents sitesconsacrs au logiciel.

    Quelques exemples en image :

    Site (non officiel -- la socit cratrice Elecbyte n'existe plus) : http://www.streetmugen.com/ .

    Ces deux chantillons ne reprsentent bien sr pas tout ce qui se fait, il existe beaucoup d'autres logiciels decration de jeux vido : 3D Game Maker, The Game Factory, FPS Creator, 2D Fighter Maker, ... N'hsitez pas chercher pour trouver votre bonheur !

    Enfin, comme vous l'aurez remarqu ces types de logiciels offrent un moyen de crer des jeux vido sans toucherune seule ligne de programmation ; nous n'y reviendrons donc pas dans la suite de ce tutoriel, qui ne concerne(comme l'indique le titre) que la programmation proprement parler.

    4.2 - Les langages BASIC (pour les progueux du dimanche)

    Cet engouement pour le jeu vido n'a pas fait que des bbs dans le monde des logiciels, il a galement eu unimpact sur les langages de programmation. Ainsi toute une famille de langages bass sur le BASIC (le BASIC est la base, comme son nom l'indique, un langage plutt simple) a vu le jour. Ces langages permettent de tirer parti dela puissance de la programmation, tout en restant un niveau suffisamment lev pour ne pas s'embter avec dessyntaxes bizarrodes ou des considrations ennuyeuses, ayant peu de rapport avec le jeu en lui-mme. Pour vousen convaincre, voici un bout de code DarkBasic donn en exemple sur le site officiel du langage :

    XRotate Object 1, 180Scale Sprite 1, 100Mirror Bitmap 1Set Text Font "Arial"Set Light To Object PositionIf Joystick Fire A() Then GoSub PlayerShoot

    Difficile de faire plus simple n'est-ce pas ?

    Programmation de jeux vido : par o commencer ? par Laurent Gomila

    - 9 -Les sources prsents sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentationde ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2006 - Laurent Gomila. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse del'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://loulou.developpez.com/tutoriels/jeux_video

    http://www.enterbrain.co.jp/tkool/RPG_XP/eng/http://www.yumeteam.net/yt/http://www.streetmugen.com/http://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://loulou.developpez.com/tutoriels/jeux_videohttp://loulou.developpez.com/tutoriels/jeux_videohttp://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://www.streetmugen.com/http://www.yumeteam.net/yt/http://www.enterbrain.co.jp/tkool/RPG_XP/eng/
  • 8/8/2019 Jeux Video Par-ou-commencer Dev

    10/23

    4.2.1 - DarkBasic Pro - 3D Games Creator Pro

    Aussi trange que cela puisse paratre, "3D Games Creators Pro" est la traduction franaise de "DarkBasic Pro".Ne soyez donc pas surpris, et pensez ces deux dnominations si vous souhaitez faire des recherches sur le net.

    DarkBasic est un environnement de programmation fournissant de nombreuses fonctionnalits orientes jeu vido,via un langage trs simple. Bas sur la dernire version de DirectX, il permet d'utiliser facilement les derniers effets la mode tels que les shaders, le rendu cartoon, ou encore l'animation squelettale.

    Le tout est vendu 90$, mais une version d'valuation est disponible.

    Voici quelques exemples de jeux dvelopps l'aide de DarkBasic :

    Sites officiels :

    http://www.games-creator.com (FR)

    http://darkbasic.thegamecreators.com/ (EN).

    4.2.2 - PureBasic

    PureBasic est un langage de programmation galement trs simple, fait pour les dbutants aussi bien que pour lesexperts. Il offre de nombreuses fonctionnalits trs simplement (moteurs 2D, 3D, environnement dedveloppement complet : diteur, debuggeur, ...), tout en mettant l'accent sur les performances. Au-del des jeuxvido, PureBasic permet tout aussi bien de crer des interfaces graphiques et peu prs n'importe quel typed'applications.

    Tout ceci est portable (Windows, Linux, MacOS, AmigaOS) et payant (69$) ; une version d'valuation gratuite estgalement disponible.

    Voici quelques captures d'crans qui vous convaincront que l'on peut faire plein de belles choses avec ce langage :

    Programmation de jeux vido : par o commencer ? par Laurent Gomila

    - 10 -Les sources prsents sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentationde ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2006 - Laurent Gomila. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse del'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://loulou.developpez.com/tutoriels/jeux_video

    http://www.games-creator.com/http://darkbasic.thegamecreators.com/http://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://loulou.developpez.com/tutoriels/jeux_videohttp://loulou.developpez.com/tutoriels/jeux_videohttp://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://darkbasic.thegamecreators.com/http://www.games-creator.com/
  • 8/8/2019 Jeux Video Par-ou-commencer Dev

    11/23

    Site officiel : http://www.purebasic.com/ .

    4.2.3 - BlitzBasic

    Les environnements bass sur le langage BlitzBasic sont au nombre de trois :

    BlitzPlus : applications et jeux 2D (60 $) Blitz3D : jeux 3D (100 $) BlitzMax : langage plus volu, destin aux dveloppeurs plus expriments (80 $)

    Chacun tant livr avec un environnement complet, diffrents modules, des exemples de code, des tutoriels et ladocumentation de rfrence.

    Quelques captures d'crans de ce que l'on peut crer avec BlitzBasic :

    Site officiel : http://www.blitzmax.com/ .

    Vous l'aurez compris, quelque soit le langage que vous choisirez vous accderez une syntaxe trs simple ainsi

    qu' des outils complets, permettant de crer des jeux performants pouvant rivaliser avec certains jeuxcommerciaux ; il vous faudra galement mettre la main au porte-monnaie.

    Et l encore la seule plateforme vise sera le PC, voire dans certains cas uniquement les systmes Windows.

    4.2.4 - Hyperion

    Hyperion n'est pas, comme la section le suggre, un environnement BASIC. Cependant, sa simplicit et sapuissance permettent de placer celui-ci aux cts des trois environnements vus prcdemment.

    Hyperion est un projet francophone assez mconnu, mais qui mriterait pourtant de l'tre davantage. Il s'agit d'unmoteur 3D OpenGL constamment mis jour pour coller aux nouvelles techniques, que l'on peut programmer via un

    Programmation de jeux vido : par o commencer ? par Laurent Gomila

    - 11 -Les sources prsents sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentationde ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2006 - Laurent Gomila. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse del'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://loulou.developpez.com/tutoriels/jeux_video

    http://www.purebasic.com/http://www.blitzmax.com/http://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://loulou.developpez.com/tutoriels/jeux_videohttp://loulou.developpez.com/tutoriels/jeux_videohttp://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://www.blitzmax.com/http://www.purebasic.com/
  • 8/8/2019 Jeux Video Par-ou-commencer Dev

    12/23

  • 8/8/2019 Jeux Video Par-ou-commencer Dev

    13/23

    Le C est lui galement trs utilis, mais tend disparatre (au niveau du jeu vido, pas globalement) tant donn lancessit croissante d'une approche objet, surtout pour les jeux consquents. Mme John Carmack, papa desQuake et Doom et ternel rticent la programmation objet, se serait mis au C++.

    Pour dmarrer en C ou C++ il vous faudra un bon livre ou cou rs , ainsi qu'un envir onnement de programmationpourvu d'un compilateur performant. Pour le jeu vido, l'environnement gratuit Code::Blocks coupl au compilateur(lui aussi gratuit) Visual C++ 2003 Toolkit sera parfait ; en effet beaucoup de bibliothques sont la basedveloppes pour ce compilateur, et il vous faudra fournir des efforts supplmentaires si vous en utilisez un autre(l'exemple le plus parlant tant certainement l'utilisation de DirectX).

    Viennent ensuite quelques langages 100% objet, savoir les .Net (VB.NET et C# surtout) et le Java . Ceslangages sont plus simples manipuler que le C et le C++, d'une part grce un fonctionnement lgrement plusflexible, mais surtout de par la prsence d'un runtime consquent (en gros pas besoin d'aller chercher plein debibliothques, beaucoup de fonctionnalits sont fournies en standard) et galement d'une machine virtuelle. Ainsices langages vont droit au but et vitent par exemple la gestion de la mmoire et toutes ces choses dsagrables

    de bas niveau, moyennement des performances un choua moindre.

    Ce qu'il faut retenir de tout cela, c'est que ces langages sont tout fait adapts au dveloppement de jeu, de parleur relative simplicit et leur orientation 100% objet. Nul doute qu'ils vont se frayer une belle place dans le jeuvido ces prochaines annes, surtout le C# qui est un langage relativement nouveau.

    Le dveloppement .NET se fait principalement l'aide de Visual Studio, mais il existe l'heure actuelle quelquesenvironnements gratuits comme C# Builder dition personnelle , Sha rpDevelop ou encore un plugin C# pourEclipse .

    Pour ce qui est de Java, l'environnement le plus utilis est certainement Eclipse . I l vous faudra galement ledernier kit de dveloppement J2SE pour compiler vos applications.

    On peut galement citer Delphi , qui permettra de crer des jeux sans quasiment aucune limitation. L'avantagetant que c'est un langage qui est souvent abord lors des tudes, donc que vous connatrez peut-tre dj.L'inconvnient est que peu d'APIs ou bibliothques sont adaptes Delphi, et qu'il vous faudra peut-tre galrerquelque peu pour disposer de tous les outils ncessaires la cration de vos jeux.

    Tous ces langages sont certainement les plus adapts au dveloppement de jeu, cependant gardez bien en tteque les autres langages en sont aussi capables, pour peu que vous ne tapiez pas directement dans un Doom 4pour vos dbuts.

    4.3.2 - Je matrise dj un langage de programmation

    ... Alors continuez l'utiliser, et ne vous laissez surtout pas impressionner par les arguments trollesques du genre"on ne peut faire des jeux qu'en C++" ou "Java c'est trop lent". Selon le langage vous dcouvrirez peut-tre seslimitations concernant le dveloppement de jeu, mais alors seulement ce moment-l vous saurez qu'il fautchanger, pas avant. Personnellement je suis pass au C++ en voyant que mon moteur 3D sous VB6 tournait 5images/sec, mais a ne m'a pas empch pendant plusieurs mois de dvelopper divers jeux avec ce langage. Leplus important est d'tre l'aise avec le langage avec lequel vous allez dbuter votre apprentissage du jeu vido.

    Programmation de jeux vido : par o commencer ? par Laurent Gomila

    - 13 -Les sources prsents sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentationde ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2006 - Laurent Gomila. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse del'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://loulou.developpez.com/tutoriels/jeux_video

    http://c.developpez.com/livres/http://c.developpez.com/livres/http://c.developpez.com/cours/http://c.developpez.com/cours/http://c.developpez.com/compilateurs/http://loulou.developpez.com/tutoriels/cpp/codeblocks/http://msdn.microsoft.com/visualc/vctoolkit2003/http://www.borland.com/products/downloads/download_csharpbuilder.htmlhttp://www.icsharpcode.net/OpenSource/SD/http://www.icsharpcode.net/OpenSource/SD/http://www.improve-technologies.com/alpha/esharp/http://www.improve-technologies.com/alpha/esharp/http://java.developpez.com/outils/edi/http://java.developpez.com/outils/edi/http://www.eclipse.org/http://www.eclipse.org/http://java.sun.com/j2se/1.5.0/download.jsphttp://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://loulou.developpez.com/tutoriels/jeux_videohttp://loulou.developpez.com/tutoriels/jeux_videohttp://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://java.sun.com/j2se/1.5.0/download.jsphttp://www.eclipse.org/http://java.developpez.com/outils/edi/http://www.improve-technologies.com/alpha/esharp/http://www.improve-technologies.com/alpha/esharp/http://www.icsharpcode.net/OpenSource/SD/http://www.borland.com/products/downloads/download_csharpbuilder.htmlhttp://msdn.microsoft.com/visualc/vctoolkit2003/http://loulou.developpez.com/tutoriels/cpp/codeblocks/http://c.developpez.com/compilateurs/http://c.developpez.com/cours/http://c.developpez.com/livres/
  • 8/8/2019 Jeux Video Par-ou-commencer Dev

    14/23

    5 - Choix des bibliothques

    Cette partie ne concerne que les dveloppeurs utilisant un langage de programmation : les logiciels type RPGMaker ou MUGEN ne permettent bien entendu pas d'utiliser les APIs et bibliothques que nous allons dtailler ici.

    Le dveloppement de jeu est long et complexe, et ncessite des outils de bas niveau difficiles coder, parexemple pour afficher de la 3D, lire du son, ou encore manipuler une image. En fait, faire un jeu partir de rien estimpossible : il faudra au moins passer par les API bas niveau (permettant d'accder au hardware), les moinsfougueux pourront eux profiter des nombreuses bibliothques haut niveau et moteurs disponibles gratuitement surle net.

    5.1 - Les bibliothques de jeu : tout en un

    Le meilleur moyen de programmer un jeu en se concentrant sur le jeu en lui-mme et non sur les tches basniveau, est sans doute d'utiliser une bibliothque tout-en-un. Ces bibliothques contiennent en gnral desmoteurs graphiques, sonores, physiques, rseaux, ... afin que vous puissiez dvelopper votre jeu de A Z sansvous proccuper du dtail de ces tches ingrates.

    De plus, ces bibliothques vous procurerons des performances optimales et seront la plupart du temps multi-API,multi-langage et multi-plateforme (certaines sont mme compatibles avec les dernires consoles) : que dubonheur.

    Voici les bibliothques de jeu les plus courantes :

    kjAPI (C++)

    SxDL (C++) ClanLib (C++) Allegro (C / C++) Artificial Engines (.NET) RealmForge GDK (.NET) LWJGL (Java) Pygame (Python)

    Leurs diffrentes caractristiques, des tutoriels, des exemples, des screenshots et tout ce qu'il faut se trouve surleurs sites respectifs, je vous laisse approfondir tout cela si c'est ce genre de bibliothque que vous recherchez.

    5.2 - Les moteurs

    Si vous ne recherchez pas une bibliothque tout-en-un mais seulement un moyen de faire de la 3D, de grer leson ou encore la physique, alors vous vous orienterez plutt vers ce que l'on appelle un moteur (qui n'est riend'autre qu'une bibliothque). On appele cela des moteurs, car non seulement ils encapsulent les APIs bas niveaumais ils fournissent galement tous les algorithmes, procds et structures de donnes couramment utiliss pourle domaine en question.

    L'utilisation d'un moteur peut tre particulirement utile si par exemple vous dsirez dvelopper vous-mmecertains aspects bas niveau de votre jeu, mais ne souhaitez pas galrer dans les domaines que vous ne matrisezpas.

    Les moteurs graphiques (ou 3D -- mme s'ils font souvent bien plus) sont les plus rpandus, et on le conoit bientant donn la complexit et la gigantesque part de travail associes cet aspect de la programmation de jeux. Ils

    Programmation de jeux vido : par o commencer ? par Laurent Gomila

    - 14 -Les sources prsents sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentationde ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2006 - Laurent Gomila. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse del'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://loulou.developpez.com/tutoriels/jeux_video

    http://www.kjapi.com/http://sxdl.sourceforge.net/fr/http://www.clanlib.org/http://alleg.sourceforge.net/http://www.3dlevel.com/gamedev/news.phphttp://realmforge.com/http://www.lwjgl.org/index.phphttp://www.pygame.org/news.htmlhttp://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://loulou.developpez.com/tutoriels/jeux_videohttp://loulou.developpez.com/tutoriels/jeux_videohttp://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://www.pygame.org/news.htmlhttp://www.lwjgl.org/index.phphttp://realmforge.com/http://www.3dlevel.com/gamedev/news.phphttp://alleg.sourceforge.net/http://www.clanlib.org/http://sxdl.sourceforge.net/fr/http://www.kjapi.com/
  • 8/8/2019 Jeux Video Par-ou-commencer Dev

    15/23

    grent gnralement la cration et l'affichage de la scne, l'optimisation du rendu, les effets spciaux, lechargement et la sauvegarde des modles et des images, le partitionnement de la scne, etc...

    Les plus connus sont OGRE ou encore Irrlicht, mais le mieux est encore que vous alliez fouiller sur th e 3D engine database , qui recense, classe et note tous les moteurs 3D existant.

    Les moteurs physiques sont de plus en plus rpandus et vous seront trs utiles, tant donn l encore lacomplexit de leur programmation. Ils vous permettront de grer de manire raliste les collisions entre toutes lesentits de votre scne, ou encore les comportements de vhicules ou de fluides.

    On peut citer parmi les plus clbres ODE , Havok ou encore Tokamak .

    Les moteurs rseaux moins utiliss car bass sur des APIs bas niveau plus "simples", ils peuvent cependant servler d'une aide prcieuse dans le cas o vous voudriez des performances optimales ou tout simplement si vousn'y connaissez rien en programmation rseau.

    Voir par exemple du ct de RakNet , HawkNL, Mammoth ou encore GNE .

    Les moteurs audio sont galement de la partie. Ils permettent gnralement de charger, lire et sauvegarder touttype de format audio, de grer du son 3D, toute sorte d'effets, etc.

    Les plus connus sont FMod et Bass ; on peut galement trouver Modula , un moteur audio pour ordinateurs depoche.

    Cette liste n'est bien sre pas exhaustive, tant dans les moteurs cits que dans les catgories abordes. On pourratrouver des moteurs un peu plus spcifiques, comme par exemple des moteurs d'animation 3D, des moteurs degestion des priphriques, etc.

    Enfin pour conclure, on peut dire que de plus en plus de moteurs tendent intgrer plusieurs domaines : il ne serapas rare de voir un moteur 3D faire de la physique, ou grer les entres / sorties.

    5.3 - Les APIs bas niveau

    L on tape dans le dur de chez dur, dans le bas niveau de chez bas niveau, bref dans les trucs indispensables auxpassionns. Ces APIs se trouvent tout au bas de l'chelle (par opposition aux logiciels type RPGMaker et autres),ils permettent en gnral simplement d'accder au matriel ; vous de vous dbrouiller ensuite. Inutile de dire quel'apprentissage de ces APIs est long et difficile, et qu'il vous faudra du temps pour en tirer pleinement partie, maisce ne sera pas un investissement vain, surtout si vous souhaitez plus tard utiliser ces connaissances, dans lemonde professionnel par exemple.

    Au niveau du graphisme (2D / 3D) , on trouve deux APIs. D'un ct OpenGL , de l'autre DirectX (plus prcismentDirect3D). De nombreux trolls parsment les forums propos de l'API choisir, inutile de dire que 95% des chosesqui y sont dites sont des btises. Peu de choses diffrencient en fait les deux APIs, les points importants tant lessuivants :

    OpenGL est multiplateforme, DirectX ne fonctionne lui que sous environnement Windows. DirectX propose de nombreuses bibliothques multimdia (son, priphriques, 2D, 3D, ...) ; OpenGL se limite

    lui au rendu graphique. DirectX propose via ses composants COM une interface oriente objet, alors qu'OpenGL reste du pur C. Historiquement et encore rcemment le support d'OpenGL est laiss l'apprciation des constructeurs de

    cartes graphiques, ce qui entrane une grande disparit dans le support de nouvelles fonctionnalits et de la

    Programmation de jeux vido : par o commencer ? par Laurent Gomila

    - 15 -Les sources prsents sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentationde ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2006 - Laurent Gomila. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse del'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://loulou.developpez.com/tutoriels/jeux_video

    http://www.ogre3d.org/http://irrlicht.sourceforge.net/http://irrlicht.sourceforge.net/http://www.devmaster.net/engines/http://www.devmaster.net/engines/http://www.ode.org/http://www.havok.com/http://www.tokamakphysics.com/http://www.rakkarsoft.com/http://www.hawksoft.com/hawknl/http://mammoth.cs.mcgill.ca/?page_id=7http://www.gillius.org/gne/http://www.fmod.org/http://www.un4seen.com/http://www.un4seen.com/http://modula.indus3.org/http://modula.indus3.org/http://www.opengl.org/http://www.opengl.org/http://msdn.microsoft.com/directx/http://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://loulou.developpez.com/tutoriels/jeux_videohttp://loulou.developpez.com/tutoriels/jeux_videohttp://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://msdn.microsoft.com/directx/http://www.opengl.org/http://modula.indus3.org/http://www.un4seen.com/http://www.fmod.org/http://www.gillius.org/gne/http://mammoth.cs.mcgill.ca/?page_id=7http://www.hawksoft.com/hawknl/http://www.rakkarsoft.com/http://www.tokamakphysics.com/http://www.havok.com/http://www.ode.org/http://www.devmaster.net/engines/http://www.devmaster.net/engines/http://irrlicht.sourceforge.net/http://www.ogre3d.org/
  • 8/8/2019 Jeux Video Par-ou-commencer Dev

    16/23

    stabilit gnrale de la plateforme OpenGL sous Windows. L'utilisation d'OpenGL est donc plutt conseilleraux dveloppeurs qui peuvent s'assurer que leurs utilisateurs auront une implmentation d'OpenGL dcentesur leur machine.

    Au niveau purement 2D on peut galement citer la SDL, qui, bien que base sur OpenGL et DirectX, peut treconsidre comme une API bas niveau. Son avantage est d'tre plutt simple, portable, et d'tre accompagned'une multitude de bibliothques lui permettant de grer tout et n'importe quoi ayant un rapport avec la 2D.

    Concernant le rseau , on ne peut utiliser que les sockets pour dialoguer au bas niveau. Il faudra pour cela avoirquelques connaissances thoriques en ce qui concerne les protocoles TCP/IP et UDP, et jouer avec les threads,mais une fois tout ceci acquis l'API en elle-mme est plutt simple manipuler. Attention toutefois : bien quequasiment similaires, les version POSIX et Windows des sockets varient lgrement. Pensez-y si vous voulez fairedu code portable !

    Vous entendrez certainement aussi parler de DirectPlay (composante de DirectX), mais celui-ci a t abandonn

    par Microsoft, qui conseille de se limiter aux sockets en attendant leur prochaine API.

    Viennent ensuite les APIs audio . Il n'en existe galement pas beaucoup : d'un ct DirectMusic (toujours unecomposante de DirectX), de l'autre OpenAL .

    Enfin, pour grer les priphriques on pourra utiliser DirectInput (composante DirectX), ou directement l'APIWin32 si l'on travaille sous Windows. Cependant cette dernire ne permettra pas de grer pleinement tous lestypes de priphriques et leurs possibilits.

    Il n'existe bien sr pas d'API pour les autres domaines (la physique ou l'IA par exemple), car ces notions n'ont pasbesoin d'accder un quelconque hardware.

    5.4 - Les bibliothques utiles

    Hormis les aspects fondamentaux tels que les graphismes, le son ou la physique, n'oubliez pas qu'il vous faudragalement grer plein de petites choses annexes comme par exemple les fichiers de configuration, le chargementd'images, le logging, les structures mathmatiques, etc.

    Heureusement il existe des bibliothques pour peu prs tout et n'importe quoi, n'hsitez donc pas fairequelques recherches avant de vous lancer corps perdu dans la r-invention de la roue.

    A ce stade il existe tellement de bibliothques varies qu'il est impossible d'en fournir une quelconque liste ici, maisavec un minimum de recherche sur ce qui vous intresse vous devriez trouver votre bonheur sans trop de mal.

    Programmation de jeux vido : par o commencer ? par Laurent Gomila

    - 16 -Les sources prsents sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentationde ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2006 - Laurent Gomila. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse del'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://loulou.developpez.com/tutoriels/jeux_video

    http://www.libsdl.org/http://www.libsdl.org/http://msdn.microsoft.com/library/default.asp?url=/library/en-us/DMusicC/htm/directmusic.asphttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/DMusicC/htm/directmusic.asphttp://www.openal.org/http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/directx9_c/directx/input/directinputroadmap.asphttp://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/directx9_c/directx/input/directinputroadmap.asphttp://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://loulou.developpez.com/tutoriels/jeux_videohttp://loulou.developpez.com/tutoriels/jeux_videohttp://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/directx9_c/directx/input/directinputroadmap.asphttp://www.openal.org/http://msdn.microsoft.com/library/default.asp?url=/library/en-us/DMusicC/htm/directmusic.asphttp://www.libsdl.org/
  • 8/8/2019 Jeux Video Par-ou-commencer Dev

    17/23

    6 - Mthodologie

    Une fois les outils de dveloppement choisis, on serait tent de foncer tte baisse dans le dveloppement denotre premier jeu. Cela peut tre une bonne ide, mais dans la plupart des cas cela vous mnera l'chec. Eneffet il va maintenant falloir vous munir de quelques outils de mthodologie.

    Beaucoup de dveloppeurs dbutants programment " l'arrache". Soit parce qu'ils mconnaissent lesmthodologies de dveloppement usuelles, soit parce que celles-ci leur parassent trop abstraites. En gros : jecode sans (trop) rflechir toute la journe, puis je lance l'appli. Si a marche tant mieux, sinon il n'y a plus qu' toutrecommencer. Inutile de dire que cette mthode de travail (si tant est qu'on puisse appeler a une mthode)constitue une norme perte de temps.

    Voici donc quelques mthodes et conseils qui vous aideront organiser votre travail, et qui vous permettront sansaucun doute d'optimiser votre apprentissage et votre manire de coder en gnral.

    6.1 - L'extrem programming (XP)

    Tendance relativement nouvelle et contre-courant des mthodologies habituelles, l' ex trem programming doitsans doute son succs ses mthodes trs simples proches de "l'arrache" (beaucoup de dveloppeurs sereconnatront dans cette approche, sans jamais avoir entendu parler d'extrem programming).

    La philosophie de l'extrem programming est base sur une communication constante avec l'quipe et lesutilisateurs, une simplicit omniprsente (on ne code pas ce dont on n'a pas besoin), et des retours frquentspermettant un dveloppement par itrations courtes.

    Ainsi, on ne suit plus le plan habituel consistant penser d'abord et coder ensuite : l'volution du design de

    l'application se fera avec l'volution du code.

    Cependant il ne faut pas croire que l'extrem programming se limite une suppression de la phase de reflexion.C'est avant tout une mthode, qui ncessite :

    Des tests beaucoup plus pousss chaque ajout de fonctionnalit (notamment les tests unitaires) Un collaboration trs forte au sein de l'quipe de dveloppement Un nettoyage et une refactorisation rgulire des sources Des commentaires trs explicites : cela constituera la seule documentation du projet Des points rguliers de la situation

    En rsum, l'extrem programming est parfait pour les gens qui seraient rfractaires aux mthodes plus "formelles"de dveloppement, mais cela ncessite tout de mme une certaine rigueur et des comptences de travail.

    6.2 - UML quoiqu'il arrive

    UML (Unified Modeling Language ) est un langage de modlisation trs utilis lorsqu'il s'agit de modliser uneapplication avec une approche oriente objet. Au travers d'une quinzaine de types de diagrammes, UML permet deplannifier tous les aspects de son application : diagramme de classes (le plus important, certainement le seul quevous manipulerez en tant que dbutant), diagramme de squence, diagramme de cas d'utilisation, diagrammed'tats, ...

    De plus, il existe pour les plus paresseux des logiciels ou des plugins d'environnements de dveloppement ,permettant de gnrer directement du code partir de diagrammes de classes UML, ou inversement.

    Programmation de jeux vido : par o commencer ? par Laurent Gomila

    - 17 -Les sources prsents sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentationde ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2006 - Laurent Gomila. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse del'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://loulou.developpez.com/tutoriels/jeux_video

    http://fr.wikipedia.org/wiki/Extreme_programminghttp://fr.wikipedia.org/wiki/Extreme_programminghttp://uml.developpez.com/outils/http://uml.developpez.com/outils/http://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://loulou.developpez.com/tutoriels/jeux_videohttp://loulou.developpez.com/tutoriels/jeux_videohttp://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://uml.developpez.com/outils/http://fr.wikipedia.org/wiki/Extreme_programming
  • 8/8/2019 Jeux Video Par-ou-commencer Dev

    18/23

    Un autre avantage d'UML est qu'il est compris par beaucoup de monde, ainsi en l'utilisant vous pourrez expliquertrs facilement le fonctionnement de votre application, d'autres membres de votre quipe ou aux utilisateurs parexemple.

    Bien sr rien ne vous oblige utiliser tous les diagrammes fournis par UML (rares sont ceux qui le font), mais unpetit diagramme de classe par-ci par-l vous fera dj gagner un temps prcieux et permettra de mieux raliservotre code.

    A noter qu'il existe toute une multitude de mthodologies ou de langages utiliss en gnie logiciel (Merise,processus unifi, modles en V, ...) mais tant donn que ce tutoriel est destin aux dbutants je crois qu'il estinutile d'en parler. UML est bien souvent la seule approche utilise par les dveloppeurs amateurs.

    6.3 - L'outil ultime du codeur : le crayon et le bout de papier

    Mme si vous choisissiez de ne pas suivre une mthodologie particulire, il faudra tout de mme rflechir unminimum et coucher vos ides sur papier avant de les donner manger votre environnement de programmation.Gribouillez des schmas de classe, des bouts de code, des situations particulires, bref n'importe quoi. Cela vousvitera peut-tre de devoir r-crire entirement votre code en cours de route, et d'aller l'essentiel. N'oubliez pasqu'il est plus facile de recommencer un gribouilli que le code d'un programme...

    6.4 - CVS / SVN, ou comment grer proprement ses sources

    Ne vous est-il jamais arriv de vouloir rcuprer une version antrieure de votre projet, qui malheureusement adj t efface depuis belle lurette ? De faire 15 fois le mme ajout de code parce que le copain travaille toujourssur une version pas jour du projet ? Pour les projets en quipe (ou mme seul s'il s'agit de gros projets), il vousfaudra assurment un logiciel de versionnage de vos sources. Et c'est justement ce que fait CVS, ou plus

    rcemment SVN. Ces outils, utilisables sur toute plateforme en ligne de commande ou via une interface graphique,sont trs simples d'utilisation et peuvent faire gagner un temps norme, surtout sur les projets en quipe. N'hsitezdonc pas les utiliser, mme si vous pensez que cela vous sera inutile (croyez-moi, a ne le sera pas).

    6.5 - Conseils d'ordre gnral pour bien progresser

    Pour conclure sur ce chapitre consacr la mthodologie de travail, voici en vrac quelques conseils de base pourbien progresser :

    Commencez par consolider vos connaissances dans le langage et les bibliothques que vous utilisez, vousn'arriverez rien sans a.

    Codez progressivement : mme si vous visez un MMORPG, n'oubliez pas de commencer votre

    apprentissage par un tetris. Faites des tests rguliers, voire des tests unitaires. S'apercevoir que l'application bug aprs 2 semaines decodage intensif, est le meilleur moyen d'avoir tout recommencer.

    Utilisez un maximum d'outils tels que les profilers, les dtecteurs de fuites mmoires et les debuggers. Celavous permettra d'viter de nombreux bugs et de prendre de bonnes habitudes.

    "Early optimization is the root of all evil ". En clair, codez puis optimisez ce qu'il y a optimiser, pas l'inverse. Ne cherchez pas crer un jeu rvolutionnaire si vous dbutez, au contraire pensez mme cloner des jeux

    existant : cela vous permettra de vous concentrer sur le code. Concentrez-vous sur ce qui vous motive : inutile de dvelopper de A Z un Quake-like si ce qui vous

    intresse est l'IA. Codez plutt des petites dmos. Rappelez qu'un petit projet fini est bien plus enrichissant qu'un projet ambitieux stopp 20%. N'hsitez pas arpenter les forums de dveloppement, mme si vous n'y postez pas vous apprendrez

    normment de choses.

    Programmation de jeux vido : par o commencer ? par Laurent Gomila

    - 18 -Les sources prsents sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentationde ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2006 - Laurent Gomila. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse del'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://loulou.developpez.com/tutoriels/jeux_video

    http://www.nongnu.org/cvs/http://subversion.tigris.org/http://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://loulou.developpez.com/tutoriels/jeux_videohttp://loulou.developpez.com/tutoriels/jeux_videohttp://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://subversion.tigris.org/http://www.nongnu.org/cvs/
  • 8/8/2019 Jeux Video Par-ou-commencer Dev

    19/23

    Rien ne vaut le travail en quipe, recherchez-en une qui corresponde vos besoin (et croyez-moi il y en abien suffisamment).

    Si vous codez un moteur 3D, abandonnez l'ide de commencer par les "supers effets mga cool la mode".95% des dbutants le font, mais la vrit est qu'il vaut mieux se concentrer sur les structures departitionnement, le scenegraph ou la gestion du rendu.

    Ne rejetez pas les documents en anglais, mme si vous n'y comprenez rien. A force vous y arriverez, et vousvous rendrez alors compte de la mine d'information ct de laquelle vous seriez pass.

    Programmation de jeux vido : par o commencer ? par Laurent Gomila

    - 19 -Les sources prsents sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentationde ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2006 - Laurent Gomila. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse del'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://loulou.developpez.com/tutoriels/jeux_video

    http://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://loulou.developpez.com/tutoriels/jeux_videohttp://loulou.developpez.com/tutoriels/jeux_videohttp://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000
  • 8/8/2019 Jeux Video Par-ou-commencer Dev

    20/23

    7 - Et maintenant ?

    7.1 - Ressources

    On ne peut pas clore un tutoriel sur la cration de jeux, sans parler de ressources. Par ressources j'entendstextures, sons, images, modles, et tout ce qui va avec un jeu. Car beaucoup de programmeurs oublient qu'ils... nesavent que programmer. Si l'on a intgr une quipe a peut ne pas poser de problme, mais si on souhaite mener bien un jeu tout seul, on aura le choix entre un joli dessin made in MSPaint ou bien trouver des ressourcesgratuites sur le net.

    Voici une page recensant tout un tas de sites proposant des ressources gratuites, classs et nots :http://jeux.developpez.com/medias .

    Ca ne vous aidera peut-tre pas acquerir de l'exprience en programmation, mais certainement terminer plusvite vos jeux et pourquoi pas apporter un regain de motivation (c'est toujours plus gratifiant de voir nos crationsavec un look mignon qu'avec un design sorti de Paint, non ?). Combien ont dj stopp le dveloppement d'un jeusimplement par manque de belles textures ou de modles 3D ?

    Un rapide mot pour ceux qui souhaiteraient aussi mettre les mains dans le camboui pour les ressources. Leslogiciels utiliser pour la modlisation 3D sont 3D Studio Max , Maya , ou encore Blender (gratuit).

    Pour le dessin, le must se trouve chez Paint Shop Pro , Photoshop ou The Gimp (gratuit).

    7.2 - Sites communautaires

    Bien que le plus complet possible, ce tutoriel ne vous aidera qu' vos tout dbuts, il ne peut pas vous accompagner jusqu' l'accomplissement de votre premier jeu. Heureusement quelques sites communautaires traitant dudveloppement de jeu existent, et vous fourniront tout ce qu'il faut pour poursuivre votre apprentissage et bien plus: forums, tutoriels, news, tlchargements, exemples de projets amateurs, ...

    Les sites anglophones de rfrence sont Gamedev e t Devmaster , n'hsitez pas y passer tous les jours et plucher leur base de tutoriels. En franais, vous avez bien sr Develo ppez , avec notamment sa rubriqueDveloppement 2D / 3D / Jeux , et enfin le GCN .

    A noter galement Flipcode , actuellement plus maintenu mais possdant toujours une incroyable base deconnaissances.

    7.3 - Jeux open-sourceUne excellente source d'inspiration lorsque l'on dveloppe du jeu vido, est d'aller inspecter le code de jeuxopen-source. Cela peut vous permettre d'avoir des ides en cas de manque d'inspiration, ou encore de voircomment est cod tel ou tel aspect que vous comprenez mal, ou comment est utilise telle bibliothque. Bref,n'hsitez pas les consulter.

    Voici un lien prsentant quelques jeux open-source, ainsi que d'autres liens suivre : Liste des jeux libres .

    7.4 - Intgrer une quipe

    Programmation de jeux vido : par o commencer ? par Laurent Gomila

    - 20 -Les sources prsents sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentationde ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2006 - Laurent Gomila. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse del'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://loulou.developpez.com/tutoriels/jeux_video

    http://jeux.developpez.com/mediashttp://usa.autodesk.com/adsk/servlet/index?id=5659302&siteID=123112http://www.alias.com/glb/eng/products-services/family_details.jsp?familyId=3900009http://blender.org/http://www.corel.fr/servlet/Satellite?pagename=Corel3Fr/Products/Display&pfid=1047024752950&pid=1047025504811http://www.adobe.fr/products/photoshop/main.htmlhttp://www.gimp.org/http://www.gamedev.net/http://www.gamedev.net/http://www.devmaster.net/http://www.devmaster.net/http://www.developpez.com/http://www.developpez.com/http://jeux.developpez.com/http://www.games-creators.org/http://www.flipcode.org/http://www.flipcode.org/http://www.games-creators.org/wiki/Liste_des_jeux_libreshttp://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://loulou.developpez.com/tutoriels/jeux_videohttp://loulou.developpez.com/tutoriels/jeux_videohttp://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://www.games-creators.org/wiki/Liste_des_jeux_libreshttp://www.flipcode.org/http://www.games-creators.org/http://jeux.developpez.com/http://www.developpez.com/http://www.devmaster.net/http://www.gamedev.net/http://www.gimp.org/http://www.adobe.fr/products/photoshop/main.htmlhttp://www.corel.fr/servlet/Satellite?pagename=Corel3Fr/Products/Display&pfid=1047024752950&pid=1047025504811http://blender.org/http://www.alias.com/glb/eng/products-services/family_details.jsp?familyId=3900009http://usa.autodesk.com/adsk/servlet/index?id=5659302&siteID=123112http://jeux.developpez.com/medias
  • 8/8/2019 Jeux Video Par-ou-commencer Dev

    21/23

    Intgrer une quipe est une chose laquelle on ne pense pas toujours en tant que dbutant, mais c'est pourtant lemeilleur moyen de progresser rapidement. Faire partie d'une quipe apporte une grande motivation, une bonneambiance et surtout des comptences complmentaires aux ntres. Pourtant, intgrer une bonne quipe devientaujourd'hui de plus en plus difficile, et il est frquent de tomber dans des plans vous l'chec. Voici une petitehistoire qui je l'espre vous permettra d'effectuer les bons choix et ainsi d'acquerir plus vite de l'exprience et de nepas "perdre" votre temps.

    Il tait une fois un scnariste aux ides "gniales" et "rvolutionnaires", qui se nomme un jour game designer etdcide de monter une quipe pour concrtiser son bb -- qui fera sans aucun doute un carton et relguera les jeux commerciaux les plus connus au rang de sous-produits. Il arpente donc les forums pour chercher tout ce qu'illui manque, savoir tout : des programmeurs, des musiciens, des dessinateurs, des modeleurs 3D, ... Il trouveainsi quelques programmeurs, qui dcident bien sr de rinventer le monde et codent leurs moteurs de A Z --faudrait surtout pas que ce soit trop facile ou trop bien cod. Aprs 3 mois de dveloppement acharn et uneapplication qui commence ressembler quelque chose, on se rend compte qu'on n'arrive trouver ni musicien,ni modeleur 3D, ni dessinateur, ni ... Oui, ces comptences sont les plus rares, surtout dans le monde amateur.Commencez donc par l avant de dmarrer quoique ce soit au niveau du dveloppement.

    Et pour conclure cette petite histoire devinez quoi ? Le projet tombe bien sr l'eau, les membres repartent chacun leurs occupations, et le game designer gnial (qui a eu une ide encore plus gniale entre temps, littralementun truc de ouf) repart la qute sans fin d'une quipe qui pourra coder son chef d'oeuvre.

    Cette petite histoire se veut bien sr caricaturale, mais reprsente tout de mme assez fidlement la ralit. Ainsi,en tant que programmeur, soyez trs vigilant dans le choix de votre projet et de l'quipe qui va avec. Bien sr, vivreune telle histoire n'est pas dramatique : vous en retirerez quoiqu'il arrive beaucoup d'enseignements etd'experience. Mais vous en retirerez encore plus avec un projet solide. Les bons projets sont rares, voici doncquelques bons conseils pour ne pas se tromper :

    Tentez si possible d'intgrer une quipe dj plus ou moins complte. Une quipe comprenant dj quelques

    artistes est un bon plan ; l'quipe compose uniquement du game designer gnial est a priori viter. Un game designer qui touche un peu tout aura beaucoup plus de chances de mener un projet bien.

    Quelqu'un qui n'a que des ides brillantes n'arrivera jamais crer un jeu, aussi bien entour soit-il. Ne vous focalisez pas sur l'ide rvolutionnaire la base du projet. Ce qui fait un bon jeu amateur est le

    srieux et le ralisme des ides, des choix de dveloppement et un objectif atteignable ; surtout pas unscnario transcendant.

    Investissez-vous fond : sinon vous n'arriverez pas au bout de vos objectifs, et risquez de faire couler leprojet.

    Prenez du plaisir. Le jour o votre rle au sein de l'quipe sera pour vous une corve plus qu'un plaisir,cherchez autre chose.

    Cherchez des gens de votre niveau et ayant les mmes motivations que vous. Cela se ressentira surl'ambiance, mais aussi sur les rsultats de l'quipe.

    Vous l'aurez remarqu, le game designer (si on peut l'appeler ainsi) est au centre de pas mal de considrations. Eneffet il est souvent l'instigateur du projet, et si vous dsirez un jour intgrer une quipe alors il en sera trscertainement le "chef".

    La morale de ce petit discours sur les quipes de dveloppement amateur est la suivante : beaucoup de gens ontdes ides, peu ont de quoi les mener bien. A ce sujet, je ne peux que vous renvoyer sur l'excellent article deJIRAF : Les 17,5 raisons pour lesquelles vous n'tes pas le prochain gnie du JV .

    Programmation de jeux vido : par o commencer ? par Laurent Gomila

    - 21 -Les sources prsents sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentationde ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2006 - Laurent Gomila. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse del'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://loulou.developpez.com/tutoriels/jeux_video

    http://www.jiraf.org/modules.php?name=News&file=article&sid=134http://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://loulou.developpez.com/tutoriels/jeux_videohttp://loulou.developpez.com/tutoriels/jeux_videohttp://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://www.jiraf.org/modules.php?name=News&file=article&sid=134
  • 8/8/2019 Jeux Video Par-ou-commencer Dev

    22/23

    8 - Conclusion

    Comme vous l'avez vu, on ne peut vraiment pas dire que programmer un jeu vido soit de la tarte. Cependant il yen a pour tous les gots, et on peut vraiment trouver les outils correspondant sa motivation et son niveau.

    J'espre que ce tutoriel vous aura donn les bases et directions ncessaires vos dbuts si vous ignorieztotalement ce qu'tait la programmation de jeu, et qu'il vous aura aid clarifier vos ides si vous saviez dj plusou moins ce que vous vouliez faire.

    Dans tous les cas je vous souhaite bonne chance pour votre aventure au coeur du jeu vido, car vous en aurezbesoin !

    Programmation de jeux vido : par o commencer ? par Laurent Gomila

    - 22 -Les sources prsents sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentationde ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2006 - Laurent Gomila. Aucune reproduction,mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse del'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://loulou.developpez.com/tutoriels/jeux_video

    http://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000http://loulou.developpez.com/tutoriels/jeux_videohttp://loulou.developpez.com/tutoriels/jeux_videohttp://www.developpez.net/forums/profile.php?mode=viewprofile&u=19000
  • 8/8/2019 Jeux Video Par-ou-commencer Dev

    23/23