Comment faire pour créer un jeu video
I. Introduction
Les jeux vidéo ont toujours été un acteur important dans le monde de l'informatique. Peu de temps après la conception des ordinateurs, des programmes de jeux ont vu le jour. Maintenant, le marché de ce loisir dépasse celui du grand écran.
Tout en jouant, vous avez sûrement eu l'envie de faire votre propre jeu. Ce tutoriel a pour but de poser la première pierre à votre projet afin que celui-ci devienne une réalité.
Ce tutoriel n'est pas écrit que pour les débutants. C'est un guide pour commencer n'importe quel projet de jeu vidéo et rappellera les notions et outils de base permettant de mener votre projet à bien.
I-A. Qu'est-ce qu'un jeu vidéo ?
Avant de commencer, revenons au tout début. Qu'est-ce un jeu vidéo ? C'est en sachant cela qu'il est plus facile d'imaginer les différents éléments nécessaires à sa création.
Tout d'abord, un jeu vidéo n'est pas que l'œuvre d'un seul programmeur (sauf cas très rare). Un jeu vidéo, c'est le rassemblement d'une idée, d'un programme, de dessins et de sons. Ce tout constitue un jeu vidéo. Ces domaines sont eux aussi fragmentés en sous-ensembles :
Programmeur :
- intelligence artificielle - gestion des ennemis et des éléments « neutres » ;
- moteur - bloc qui permet l'orchestration des éléments du jeu ;
- 2D/3D - module qui affiche les images à l'écran ;
- jeu - les règles du jeu, la gestion de la santé, de l'apparition et l'orchestration des éléments et autres ;
- son - module qui gère les sons, la musique selon les événements du jeu ;
- réseau - module permettant de faire des jeux multijoueurs ;
- interface utilisateur - les menus, l'écran de pause, le HUD ;
- outils - l'éditeur de carte et les autres outils nécessaires pour la création du jeu.
Game designer :
- scénariste - créateur de l'histoire, du cadre scénaristique du jeu ;
- gameplay designer - création des règles du jeu (comment gagner/perdre…)
- level designer - création des niveaux.
Graphiste :
- artiste 2D ;
- modeleur de personnages ;
- modeleur de décors.
Son :
- effets sonores ;
- musiciens.
Cette liste est loin d'être complète. Par exemple, il peut aussi y avoir des employés à la communication (site web, communauté) ou, pour les projets internationaux, des traducteurs.
Cette liste est vraie pour les très grands projets. Pour de simples projets amateurs, on peut se retrouver à un programmeur et un artiste et cela peut suffire.
Ce qu'il faut comprendre ici, c'est qu'un jeu est avant tout l'histoire d'un(e) ou de plusieurs passionné(e)s. Cela demande énormément de motivation et de temps. Un jeu tel que God of War 3 est réalisé par une équipe complète de professionnels qui ont passé des journées, des semaines, des mois et souvent même des années entières à la conception du jeu.
God of War 3
Mais ce n'est pas pour cela que vous n'allez pas pouvoir faire un jeu. En effet, il est possible de faire des jeux simples qui sont très intéressants. Prenons des exemples comme Minecraft, Binding of Isaac ou World of Goo. Ces jeux ont été réalisés pas des passionnés pendant leur temps libre (même s'il est important de rappeler que Notch a décidé d'arrêter son travail pour développer à plein temps Minecraft).
World of Goo
C'est la raison de cet article. Je vais vous guider afin que vous ne tombiez pas dans les pièges classiques d'un projet amateur et que vous prépariez au mieux le développement du jeu avec les outils adéquats pour réaliser vos rêves.
I-B. Faire un jeu vidéo ?
Mais alors, est-ce possible de faire un jeu vidéo tout seul ?
La réponse est oui. Il suffit d'avoir de la motivation, de la patience, du temps ainsi que d'une bonne base de bon départ (cet article par exemple).
En fait, le principal problème lorsque l'on veut faire un jeu, c'est que l'on se plonge immédiatement sur le projet sans réfléchir. La première étape est de calibrer ses idées à ses possibilités. Ensuite, nous déterminerons comment réaliser ce projet.
I-B-1. Calibrer son projet
En effet, de trop nombreuses fois, j'ai pu lire des messages de personnes cherchant à réaliser un MMORPG du style de World of Warcraft. Certes, c'est un rêve de faire un tel projet, mais, soyons honnête, ce projet est immense et bien trop décourageant pour un petit groupe de personnes.
Pour réussir son projet, il faut le ramener à ses possibilités. Le but est que vous appreniez sur la conception d'un jeu en réalisant des petits jeux (ou brouillons). Ainsi, vous aurez un aperçu des difficultés que vous pouvez avoir mais également un début de réponse à des questions fondamentales.
Que pensez vous possible pour vous ?
Par exemple, si vous commencez la programmation, il est conseillé de commencer par des projets simples du style Tic-tac-toe, le jeu des allumettes ou la bataille navale (ou encore Mastermind). Oui, ce sont des projets simples, faits déjà mille fois. Mais ne commence-t-on pas chaque langage par un « Hello World » ? Pour ces jeux, je parle d'application en console, toute simple. Par la suite, vous pouvez continuer avec des jeux un peu plus complexes, ou simplement améliorer votre Tic-tac-toe pour lui donner une interface graphique.
Tout projet doit commencer au plus simple. Ensuite, on ajoute des briques, toujours plus complexes, toujours plus grandes. À la fin, on obtient un jeu complet et admirable.
Ne commencez donc pas par un MMORPG, cela serait du suicide et vous découragerait trop tôt (parce qu'en plus, vous ne saurez pas comment le commencer). À la place, faites un jeu en commençant par la base de celui-ci, comme un gestionnaire de combat ou de monstres.
I-B-2. Faire un projet en équipe ?
Selon la taille de votre projet, vous souhaitez ou devez travailler en équipe.
Gérer une équipe demande plus de travail et de préparation sur le projet. En effet, chef de projet est un métier à part. D'autant plus que contrairement à une entreprise, il n'y a pas de motivation d'argent. Chacun aura ses occupations et ses envies, mais aussi son propre emploi du temps rendant la gestion du projet très difficile.
La gestion peut donc être compliquée, mais pas impossible. Premièrement, il faut déterminer l'organisation du travail (qui fait quoi et comment). Ensuite, il faudra continuellement motiver l'équipe et suivre l'avancement des différentes tâches effectuées. Comme c'est votre projet avec votre idée, les autres membres seront moins motivés que vous. Finalement, la coopération et la communication sont des points importants. La distance entre chaque membre ne facilitant pas le travail, il faudra régulièrement faire des réunions à l'aide d'un logiciel tel que Skype. Finalement, pour le développement et pour la gestion du projet, plusieurs outils existent et sont décrits dans la section « les outils ».
I-C. Quelle voie choisir ?
De multiples possibilités s'offrent pour créer votre jeu vidéo. On peut distinguer quatre voies :
- le modding ;
- les game makers ;
- les kits de développement (SDK) ;
- la programmation pure et dure.
L'ordre choisi pour cette liste prend en compte la nécessité de programmer. Ainsi, le premier élément demande peu ou pas de programmation alors que le dernier consiste uniquement en de la programmation.
Ainsi, il y en a pour tous les goûts. Un artiste voulant tester ses créations pourra le faire très facilement en l'incorporant dans un autre jeu (modding). Un game designer pourra tester ses idées dans un game maker par exemple. Un programmeur pourra, selon son niveau, soit faire son jeu en utilisant un moteur, soit créer directement le sien.
II. Le modding
Le modding est le processus de modification d'un jeu. Certains développeurs proposent des outils pour créer ou éditer le contenu du jeu afin que la communauté puisse étendre son jeu préféré.
II-A. Éditeur
Des jeux comme Skyrim, Starcraft ou Unreal Tournament 3 proposent un éditeur complet afin de créer de nouvelles cartes et même de nouvelles règles de jeu. Chaque développeur de jeu a son propre éditeur. Ainsi, le meilleur moyen d'avoir de l'aide sur ces outils et de lire la documentation et de parcourir les différents sites des communautés de fans.
Éditeur de Unreal Tournament 3
Cette méthode de créer son jeu ne demande aucune ou très peu de connaissances en programmation et permet de s'amuser tout en restant dans l'univers de son jeu préféré. Un game designer pourra tester ses idées et un artiste pourra intégrer ses nouveaux assets, lorsque cela est possible.
II-B. Modification des fichiers du jeu
Certains jeux ne sont pas accompagnés d'éditeur. Du coup, il faudra modifier directement les fichiers du jeu « à la main ». Vous pouvez néanmoins trouver des logiciels spécialisés sur les sites des fans. Autrement, cela demandera de la recherche, un esprit logique et de la motivation. Toutefois, cela peut être très intéressant, si vous souhaitez savoir comment le jeu fonctionne et si vous aimez tripatouiller.
III. Les game makers
Les game makers sont des logiciels aidant à la création d'un jeu d'un type précis mais heureusement, il existe un maker pour chaque type de jeu ou presque. Parmi ceux-ci, nous pouvons citer :
- la gamme RPG Maker pour créer ses propres RPG ;
- MUGEN, un moteur de jeux de combat ;
- Adventure Game Studio, un créateur de jeux d'aventure ;
- 3D Game Studio ;
- Game Maker.
Chacun d'entre eux propose un ensemble d'outils adaptés et spécialisés pour la création d'un jeu vidéo. Pas ou peu de connaissances en programmation sont nécessaires car ce genre de logiciel réimplémente un langage de scripting très simplifié afin de déclencher des actions dynamiques. De plus, la globalité du jeu peut être créée en cliquant sur des boutons et en configurant des propriétés.
Ce type de logiciel permet de mettre en place ses idées et peut donc être une bonne idée pour tester des mécanismes pour les game designers. Toutefois, si vous souhaitez un jeu qui ne peut se fabriquer dans un moule et qui se veut original par son gameplay, ces logiciels ne vous conviendront certainement pas.
IV. Kits de développement (SDK)
Récemment, plusieurs sociétés de jeux vidéo ont distribué les logiciels qu'ils utilisent durant la conception de leurs jeux vidéo. Ainsi Epic Games (Unreal Tournament, Gears of War) et Crytech (FarCry, Crysis) ont mis à disposition du public l'ensemble des logiciels qu'ils utilisent pour créer leurs jeux.
Mais ce ne sont pas les seuls à avoir proposé une telle suite pour la création de jeux vidéo. En effet, la société Unity Technologies ainsi que quelques autres ont aussi créé leur propre solution, offrant une alternative aux grands noms du milieu à un plus faible coût.
Ainsi, les trois kits les plus célèbres sont :
- Unreal Development Kit (UDK) par Epic Games ;
- CryENGINE SDK par Crytek ;
- Unity 3D par Unity Technologies.
Mais il existe aussi d'autres logiciels dans cette lignée, tel que NeoAxis.
Le principal avantage de ce type de solution est la possibilité de créer un jeu rapidement, tout en utilisant les nouvelles techniques et technologies du monde du jeu vidéo.
Toutefois, sachant que l'architecture du jeu est déjà en place, il peut être un peu plus compliqué de faire un jeu dans un style différent de celui pour lequel le kit a été prévu. Cela n'est pas impossible, car les kits laissent une grande liberté, mais pour ce faire il faudra faire de la programmation afin d'implémenter les nouveaux comportements dans le moteur.
Epic Games a créé son propre langage dans l'UDK : l'UnrealScript. Il est avantageux de connaître la programmation avant de partir à la découverte de celui-ci. Unity 3D et NeoAxis se basent sur du C# et le CryENGINE SDK sur du C++. |
V. La programmation
Cette section présente les possibilités lorsque l'on souhaite se lancer dans la programmation.
V-A. Le langage
Le premier choix à faire est le langage. En théorie, il est possible de prendre n'importe quel langage pour faire son jeu. En pratique, certains langages seront plus adaptés que d'autres.
Il n'y a pas de langage parfait. Chacun a son point de vue par rapport aux langages, tiré de sa propre expérience. Donc, le premier conseil, c'est de se faire plaisir.
Vous avez commencé un langage et vous l'aimez bien, alors n'hésitez pas à continuer avec celui-ci. En effet, il est déjà assez compliqué de faire son jeu, alors apporter une nouvelle difficulté en choisissant un langage inconnu n'est sûrement pas une bonne idée.
Certaines plateformes ne supportent pas tous les langages. Ainsi, si vous souhaitez faire un jeu pour des plateformes autres que le PC, renseignez-vous des contraintes pour cette plateforme.
Comme première indication, l'assembleur est fortement déconseillé. Le langage est trop bas niveau pour pouvoir faire des jeux simplement. Seules les vieilles machines (Game Boy, Amiga, Atari) nécessitent encore l'utilisation de ce langage.
Le C et surtout le C++ sont des très bons choix, car couramment utilisés dans le monde du jeu vidéo. De part ce fait, le langage dispose d'une multitude de bibliothèques permettant de réaliser vos jeux. Malheureusement, ce n'est pas le langage le plus simple (même si ce point de vue est relatif) et celui-ci demande une grande rigueur.
Le Java est un langage de choix, car couramment utilisé tout en étant simple. De plus, ce langage est privilégié si vous voulez faire un jeu pour Android.
Le C# est semblable au Java. Toutefois, il a souvent été limité aux plateformes Microsoft. Avec vous pouvez développer des jeux pour Xbox, Windows Phone et Zune avec XNA, pour navigateur avec Silverlight. Finalement, ce langage est utilisé dans les kits Unity 3D et NeoAxis. Ce langage est fortement utilisé chez les professionnels du jeu vidéo pour la création des outils liés à la conception du jeu (éditeurs, logiciels utilitaires, etc.).
Le BASIC, popularisé car implémenté d'office sur les vieux ordinateurs, est un langage assez simple. Il est toujours possible de faire des jeux avec en utilisant des variantes tel le que PureBasic, mais ces solutions ont vieilli.
Le Python est un langage de script simple et puissant. Il est généralement facile à apprendre et est de plus en plus utilisé dans les jeux vidéo pour implémenter la logique du jeu. De plus, il existe de nombreuses bibliothèques aidant à la programmation d'un jeu, comme la très célèbre pygame.
Sachant que les jeux pour le web sont une catégorie bien à part, je vous invite à vous référer à la section Jeux web dans la suite de ce tutoriel. |
Ceci est un rapide tour des langages les plus importants, mais il reste plein d'autres solutions.
D'après moi, le Python semble un bon choix pour débuter. |
V-B. La bibliothèque
Maintenant que vous avez choisi votre langage, il est nécessaire de déterminer les bibliothèques dont vous avez besoin pour réaliser votre jeu.
Une bibliothèque est une boite contenant une série de fonctions réalisant des tâches simples. Cette boite est nécessaire car il serait très difficile de créer un jeu si nous devions à chaque fois refaire les fonctions de base comme « dessiner un point sur l'écran » ou « ouvrir une fenêtre ».
Comme pour les langages, il existe différents niveaux de bibliothèques. Le bas niveau se retrouve au plus proche de la machine et proposera des fonctions simples du style : « dessiner un point sur l'écran », alors que les bibliothèques de haut niveau proposeront des fonctions permettant de dessiner directement un modèle 3D complet à partir d'un fichier.
Comme il n'est pas possible d'énumérer tous les choix possibles en termes de bibliothèques et de langages, je vais me concentrer sur les bibliothèques les plus courantes en C/C++. Il est possible de découvrir les autres choix sur la page suivante : http://jeux.developpez.com/telecharger/index/categorie/557/Bibliotheques |
V-B-1. Bibliothèques bas niveau
Pour la 3D, le choix est assez simple. Il y a OpenGL et DirectX. Le choix se fait selon les plateformes visées. En effet, DirectX n'est supporté que sous Windows et sur Xbox. OpenGL est purement C alors que DirectX est en C++, toutefois, des surcouches (wrappers) permettent d'utiliser ces bibliothèques avec d'autres langages. OpenGL existe dans une variante embarquée : OpenGL ES, utilisée dans les plateformes mobiles (iPhone/iPad/Android).
Alors que OpenGL se limite uniquement à la 3D, DirectX permet aussi de lire les fichiers des modèles 3D, de jouer des sons, de gérer les périphériques de jeu.
Pour la 2D, vous pouvez utiliser la SDL (qui est très portable (compatible même avec la GP2X), mais malheureusement, qui n'a pas évolué depuis longtemps), SFML (moins portable mais à jour et utilisant correctement l'accélération matérielle), Allegro. Plus précisément, ces bibliothèques ne se limitent pas à afficher des images en 2D mais gèrent aussi le son, les périphériques et tout ce qui est nécessaire à la création d'un jeu.
Il est aussi possible de faire de la 2D avec OpenGL et DirectX. |
Pour la musique et le son, les solutions sont OpenAL ou directement utiliser les fonctionnalités données par le système d'exploitation. OpenAL permet une spatialisation du son et permettra de jouer les sons dans un environnement 3D.
Pour la physique, la bibliothèque à choisir dépendra de votre projet. En effet, certaines bibliothèques se spécialisent dans la physique dans un monde 2D, alors que d'autres agiront sur un monde 3D. Parmi celles-ci, nous pouvons citer Box2D, Bullet, Newton.
Pour le réseau, les bibliothèques sont liées au système d'exploitation pour lequel vous développez. En effet, chaque système a sa propre implémentation des sockets qui sont la forme la plus basique pour créer une connexion entre deux machines.
Un choix souvent fait par les débutants (choix qui se trouve être un des meilleurs pour faire un jeu rapidement) est de créer son jeu avec SDL et ses modules SDL_mixer, SDL_image et SDL_TTF. Vous pouvez retrouver des explications détaillées dans nos tutoriels. |
Bien sûr, ce paragraphe ne peut pas lister toutes les bibliothèques disponibles. Je vous invite donc à visiter notre page Bibliothèques ou à effectuer des recherches sur Internet.
V-B-2. Moteurs
Les moteurs sont aussi des bibliothèques mais ceux-ci encapsulent les bibliothèques bas niveau afin de donner un moyen simplifié de faire son jeu. Ainsi, dans les moteurs, des algorithmes avancés seront mis en place vous évitant de devoir les réimplémenter.
Tout comme les bibliothèques bas niveau, les moteurs peuvent se spécialiser :
- pour la 3D : Ogre, Irrlicht et OpenSceneGraph ;
- pour la physique : ODE, Havok (souvent utilisé dans les jeux vidéo), PhysX et Tokamak ;
- pour le réseau : RakNet, HawkNL ou encore GNE ;
- pour le son : FModEx ou BASS. FModEx est une bibliothèque couramment utilisée dans le monde des jeux vidéo (Blizzard l'utilise dans Diablo 3 et Starcraft 2).
Cette liste n'est bien sûr pas exhaustive, tant dans les moteurs cités que dans les catégories abordées. On pourra trouver des moteurs un peu plus spécifiques, comme par exemple des moteurs d'animation 3D, des moteurs de gestion des périphériques, etc.
V-C. Jeux web
Les jeux web sont devenus de plus en plus populaires ces dernières années. En effet, ce succès peut être dû à leur facilité d'accès : il n'est pas nécessaire d'avoir une machine surpuissante, ni même de suivre une procédure d'installation complexe et lente. Il suffit bien souvent de démarrer son navigateur internet pour pouvoir y jouer.
V-C-1. Côté serveur
Le serveur est la machine à laquelle les utilisateurs se connecteront pour jouer. Dans le cas d'un jeu web, le serveur est une machine proposant un site web et est accessible à l'aide d'une URL.
Que vous fassiez un jeu en HTML, en Flash ou avec Unity, si vous voulez le rendre disponible il faudra l'héberger. Cet hébergement est payant et il peut vous en coûter plus ou moins cher selon vos besoins en espace de stockage et en bande passante.
Pour ceux-ci, le site pourra se résumer à sa plus simple forme, une page HTML contenant le code pour importer le module du jeu.
Il existe cependant un autre style de jeu, appelé jeu par navigateur qui repose essentiellement sur l'utilisation du serveur. Dans cette catégorie nous retrouvons les classiques OGame ou Travian.
Ogame
La conception d'un tel jeu est similaire à celle d'un site web. Ainsi, il sera programmé dans un langage comme le PHP, les pages affichées du coté client en HTML/CSS et du JavaScript pour rendre le tout dynamique aux yeux de l'utilisateur.
Maintenant, il existe des frameworks permettant d'éviter le PHP et d'utiliser d'autres langages. C'est le cas pour Django, permettant de faire un site en Python, ou Ruby on Rails, utilisant le Ruby.
Comme vous allez avoir besoin de sauvegarder des données sur les joueurs, les monstres ou autre, il vous sera nécessaire d'avoir une base de données.
V-C-2. Flash
Pendant de nombreuses années, le Flash a été dominant dans les jeux web. En effet, la technologie de Adobe a été la première à proposer de facilement créer des animations et cela de manière indépendante des navigateurs. Le langage de programmation derrière le Flash s'appelle l'Action Script (actuellement en version 3). La technologie Flash récemment passée en version 11 permet de faire des applications web en 3D.
Pour réaliser une application Flash, plusieurs éditeurs sont disponibles. Adobe développe son propre éditeur : Adobe Flash CS mais celui-ci est payant. Un autre éditeur intéressant est Flash Develop, car celui-ci est gratuit et vous permet pleinement de réaliser un jeu Flash.
Comme le Flash s'est vite popularisé, de multiples bibliothèques de jeux existent et facilitent la création d'un jeu. En effet, à la base le Flash est prévu pour faire de simples animations et n'est pas spécialement conçu pour les jeux. Les bibliothèques comme Flixel permettent d'avoir une gestion simplifiée des composants Flash afin de créer un jeu sans soucis.
D'un autre côté, la technologie semble perdre des adhérents. D'une part, il est possible de faire les mêmes choses avec le HTML 5 et JavaScript, mais en plus Adobe ne supporte plus d'importante plateformes comme Linux ou Android. |
V-C-3. HTML 5/CSS 3
Depuis quelques années, les langages web ont évolué pour offrir une nouvelle dynamique à nos pages. Ainsi, avec un savant mélange de HTML 5/CSS 3 et de JavaScript (et notamment avec Node.js pour le serveur ou encore avec les websockets), il est maintenant aisé de réaliser des jeux complets et supportés par la majorité des navigateurs et plateformes.
Malgré le jeune âge de ces technologies, différentes bibliothèques existent pour aider à la création d'un jeu : Impact, LimeJS et bien d'autres.
Il existe aussi des logiciels spécialisés comme Construct 2.
V-C-4. Unity 3D/Unreal Development Kit
Les kits de développement Unity 3D et Unreal Development Kit permettent d'exporter son jeu dans une page web.
V-C-5. Facebook
Le développement de jeux vidéo a atteint une nouvelle dimension avec l'arrivée des réseaux sociaux tel que Facebook. Ce dernier a mis en place une bibliothèque afin de réaliser des applications pour le réseau et notamment des jeux. Vous pouvez trouver plus d'informations sur le portail de la firme : http://developers.facebook.com.
V-D. Les outils
Lors de la conception d'un jeu vidéo, il est souvent nécessaire d'utiliser des outils additionnels.
Il vous faudra un outil permettant d'écrire du code. Vous pouvez bien sûr utiliser le bloc-notes, mais comme vous allez sûrement passer beaucoup de temps sur votre code (et que celui-ci n'est pas toujours aussi simple à lire qu'un roman), il est préférable d'utiliser un éditeur spécialisé qui vous apportera des fonctionnalités essentielles telle que la coloration syntaxique. Ensuite, il peut être nécessaire de créer un diagramme UML afin de mettre en place l'architecture de votre jeu. Finalement, et cela devient obligatoire lorsque l'on travaille en groupe, il est nécessaire de mettre en place un logiciel de contrôle de versions.
Ce sont les outils de base pour créer un jeu vidéo. Toutefois, d'autres outils peuvent vous aider, alors n'hésitez pas à jeter un coup d'œil sur cette page.
V-D-1. L'éditeur de code
Un Environnement de Développement Intégré (EDI) est un logiciel regroupant un éditeur de code ainsi que les outils nécessaires pour compiler et produire l'exécutable de ce code. De plus, il contient un débogueur intégré permettant de traquer les bogues de manière simple et efficace.
Pour le C#, les EDI sont : Microsoft Visual C# et MonoDevelop.
Bien sûr, cette liste n'est pas exhaustive, de plus un éditeur peut ne pas se cantonner à un seul langage, tel que Eclipse qui est capable aussi de traiter du C ou encore du PHP. Si vous aimez un autre logiciel et que vous vous sentez bien dans celui-ci, alors ne changez pas.
V-D-2. La modélisation UML
La modélisation est importante afin de ne pas partir tête baissée dans le code et de rencontrer des problèmes d'évolution dans votre logiciel. Bien que la feuille de papier soit le premier outil pour dessiner les diagrammes, il peut être nécessaire d'avoir un logiciel afin de créer son modèle sur ordinateur et de pouvoir ainsi le distribuer aux autres membres de l'équipe.
Les outils disponibles pour créer vos diagrammes sont répertoriés sur cette page.
V-D-3. Logiciels de contrôle de versions
Lorsque l'on travaille à plusieurs sur un même code, il est important de mettre en place un logiciel de contrôle des versions. Celui-ci permet de sauvegarder les différentes modifications de vos fichiers de code et de les gérer. Même si vous travaillez seul, il est conseillé d'en utiliser un afin d'avoir des sauvegardes de votre travail sur un serveur.
Tout d'abord, il existe plusieurs services proposant des serveurs de contrôle de versions (là où votre code sera stocké). Certains de ces services forcent l'utilisation d'une licence où le code doit être ouvert. De plus, le choix d'un de ces services dépendra aussi du protocole que vous voulez utiliser (CVS, SVN, Mercurial, GIT, etc.).
Developpez.com propose ce genre de services, avec un bugtracker et tous les autres outils nécessaires pour faire vivre son projet.
V-D-4. Logiciels de suivi des bogues (bugtrackers)
Il peut aussi être intéressant d'utiliser un bugtracker pour suivre l'évolution des bogues ou recevoir les commentaires des utilisateurs de votre jeu. Souvent, les services associés à l'utilisation d'une forge vous donnent l'accès à un bugtracker.
Toutefois, il vous est tout à fait possible de l'installer sur votre propre machine. Les plus connus sont : Mantis et Bugzilla.
Il peut être aussi utilisé pour gérer les différentes tâches du projet et par la même occasion, voir si le projet se déroule correctement.
V-D-5. Logiciels de gestion de projet
Si vous souhaitez une solution plus complète qu'un simple bugtracker, il est possible d'installer un logiciel de gestion de projet. Généralement, ceux-ci se composent d'un bugtracker, d'un wiki, d'un forum, d'une gestion des utilisateurs et de leurs droits sur les projets, d'une intégration avec le gestionnaire de versions et de feuilles de route. Bien entendu, il faudra vous renseigner afin de voir celui qui correspond le mieux à vos attentes.
Parmi ces logiciels, je citerais Redmine et Trac qui ont l'avantage d'être gratuits et de permettre de gérer un projet.
Pour un premier projet, d'autant plus si vous êtes seul et que le projet n'est qu'un simple petit jeu, l'utilisation d'un bugtracker ou d'un logiciel de gestion de projet peut être un peu lourde. Toutefois, cela ne peut qu'être une bonne expérience de découverte. Pour les projets en groupe, le gestionnaire de projet permettra une meilleure communication et un meilleur suivi du projet. Cela permet aussi de garder un historique des discussions et choix effectués pour le projet. |
VI. La plateforme
Le choix de la plateforme s'est diversifié ces dernières années. En effet, il est devenu facile de développer des applications pour des plateformes autres que le PC.
Dans tous les cas, vous allez effectuer votre développement sur votre PC, car l'écriture du code et la compilation s'effectuent sur une machine classique.
Il faut savoir que si vous souhaitez cibler une plateforme telle qu'une console ou un smartphone, cela ajoutera un peu de difficulté au développement. Il est donc préférable de commencer avec quelques connaissances en programmation.
VI-A. Les plateformes Apple
Tout d'abord, pour développer pour l'iPhone ou l'iPad, il vous faudra un Mac. Des tutoriels sont à votre disposition à cette adresse :http://ios.developpez.com/cours/.
Votre point de départ sera l'installation du SDK : http://a-renouard.developpez.com/tutoriels/ios/installation-developer-tools/.
VI-B. Un jeu sur Android
Android est le concurrent direct d'iOS. Vous pouvez trouver plus de tutoriels ici : http://android.developpez.com/cours/.
VI-C. PSP/PS3
Il est aussi possible de développer des jeux pour les plateformes portables de Sony en utilisant des kits non officiels tel que :http://sourceforge.net/projects/minpspw/.
Toutefois, il vous faudra un émulateur pour tester vos réalisations (ou encore, en débridant votre console).
Malheureusement, aucun kit officiel n'est disponible gratuitement pour ces consoles. Seule une bêta du kit est disponible :http://www.playstation.com/pss/developer/index_e.html.
VI-D. Wii/Nintendo DS/Nintendo 3DS
Il est plus simple d'aborder la Nintendo DS que la PSP.
Bien que le kit officiel ne soit pas disponible, il existe plus de ressources sur la question :http://krachik.developpez.com/tutoriels/pascal/install-config-fpc4nds/ ou http://ds-homebrew.over-blog.com/.
Il est aussi possible de faire des jeux sur GBA, comme expliqué dans ce tutoriel : http://gfx.developpez.com/prog-gba/.
Pour la Wii il existe ces ressources : http://www.codemii.com/2008/08/10/tutorial-1-setting-up-the-environment/.
VI-E. Xbox/Windows Phone
Microsoft est plus ouvert que ses concurrents pour le développement amateur de jeux. La première solution est d'utiliser XNA qui est une bibliothèque de jeux utilisable en C#.
La documentation officielle de Microsoft est très complète sur le sujet, comme vous pouvez en juger : http://msdn.microsoft.com/en-us/library/bb203937.aspx.
Il vous est aussi possible d'utiliser Kinect, le capteur de Microsoft, à l'aide du kit officiel : http://www.microsoft.com/en-us/kinectforwindows/develop/.
Avec ce même kit il est possible de créer des jeux pour Windows Phone.
VII. Un choix bien trop souvent oublié ?
Il reste une alternative que l'on écarte/oublie trop souvent. Celle de s'intégrer à un projet Open Source. En effet, l'avantage qu'a un projet Open Source, c'est qu'il est déjà assez avancé pour avoir une certitude de se finir (et d'être présentable). Ainsi, un artiste pourra soumettre ses dessins, un game designer ses idées et un programmeur pourra participer à un projet et rajouter des fonctionnalités intéressantes.
VII-A. Licence
Il est très important de lire les documents liés à la licence. En effet, chaque bibliothèque ou logiciel est soumis à des droits d'auteur. La licence permet de déterminer ce qu'il est possible de faire et ce qu'il ne l'est pas.
Les kits de développement (UDK, CryEngine SDK, etc.) possèdent une licence qui permet de réaliser des jeux gratuits, mais dès que vous souhaitez vendre ceux-ci, il faudra payer l'éditeur du kit pour avoir l'autorisation.
Certaines licences pour les bibliothèques peuvent vous obliger à garder votre code ouvert. D'autres n'acceptent pas d'être utilisées dans des applications commerciales.
En réalité, tout est possible en termes de licence. L'utilisation d'un logiciel ou d'une bibliothèque implique que vous acceptiez la licence associée. Donc, lisez bien les licences avant de distribuer votre jeu (le choix des logiciels/bibliothèques sont aussi à faire selon la licence).
En conclusion, si vous souhaitez revendre votre projet, ou même, rendre le code disponible librement, il est nécessaire de vérifier que les logiciels et licences des bibliothèques que vous utilisez au sein de votre projet vous laissent la liberté de faire ce que vous souhaitez. Si cela n'est pas le cas, le créateur de la bibliothèque originelle peut toujours demander la fermeture de votre projet.
VIII. Conclusion
N'hésitez pas à demander de l'aide ou des informations supplémentaires sur la rubrique Jeux et sur son forum. De plus, comme il est difficile d'être exhaustif sur les technologies permettant de créer des jeux, je ne peux que vous conseillez de jeter un coup d'œil à nos pages des outils et des bibliothèques.
Hi, Neat post. There's a problem together with your website in web explorer, may test this? IE still is the market leader and a big section of people will pass over your magnificent writing due to this problem.
ReplyDeletemy site :: NFL Jerseys Wholesalecheap jerseys
continuously i used to read smaller content which as well clear their motive,
ReplyDeleteand that is also happening with this article which I am reading at this time.
Feel free to surf to my web-site :: Nike Air Jordancheap jordan shoes
Your mode of describing all in this article is really nice, every one be capable of easily know it, Thanks a lot.
ReplyDeleteMy blog - Air Max Pas Cherair conditioning report
Truly no matter if someone doesn't be aware of after that its up to other visitors that they will help, so here it occurs.
ReplyDeleteFeel free to surf to my page - nike air structureAir Max Pas Cher
Hi there, i read your blog from time to time and i own a similar one
ReplyDeleteand i was just wondering if you get a lot of spam comments?
If so how do you protect against it, any plugin or anything you
can recommend? I get so much lately it's driving me mad so any help is very much appreciated.
my web site: Air Jordan 2013body balance
I know this site presents quality depending content and extra information,
ReplyDeleteis there any other site which provides these kinds of information in quality?
Here is my page nfl cheap jerseys youth Nfl jerseys
I think the admin of this website is truly working hard in
ReplyDeletefavor of his web page, as here every information is quality based information.
Also visit my page ... Air Maxair jordan
Hello Dear, are you in fact visiting this web site on a regular
ReplyDeletebasis, if so after that you will without doubt obtain fastidious knowledge.
Also visit my web page Cheap Jerseys
І’m nοw not certaіn the ρlaсe yοu’re gettіng your infοrmation,
ReplyDeletebut greаt topіc. I needѕ to spеnԁ somе time finding out much more or woгking out mогe.
Thanks for great infoгmаtion I used to be in seаrch of
thiѕ info fоr my missiοn.
My web sitе - free microsoft points codes.how to get free microsoft points codes
When I initially commented I clicked the "Notify me when new comments are added" checkbox and now each time a comment is added I get four emails with
ReplyDeletethe same comment. Is there any way you can remove people from that
service? Thanks!
Feel free to visit my web blog :: http://www.profab.ca
You are so cool! I don't think I have read a single thing like that before. So good to find another person with a few original thoughts on this topic. Seriously.. thank you for starting this up. This site is something that's needed on
ReplyDeletethe internet, someone with some originality!
Also visit my website: Louis Vuitton Outlet Online
Excellent post! We are linking to this particularly great post on our website.
ReplyDeleteKeep up the good writing.
Feel free to visit my web site Air Max 90
My brother suggested I may like this blog. He was entirely right.
ReplyDeleteThis put up truly made my day. You cann't believe just how a lot time I had spent for this info! Thanks!
Also visit my homepage; Air Max 91
Write more, thats all I have to say. Literally, it seems as though
ReplyDeleteyou relied on the video to make your point.
You definitely know what youre talking about, why throw away your intelligence
on just posting videos to your weblog when you could
be giving us something informative to read?
my web site ... Abercrombie and Fitch
Spot on with this write-up, I seriously believe that this site
ReplyDeleteneeds a lot more attention. I'll probably be returning to see more, thanks for the advice!
Take a look at my website - Nike air max
This is the perfect blog for anyone who would like to understand this topic.
ReplyDeleteYou understand a whole lot its almost tough to argue with you
(not that I really would want to…HaHa). You definitely put a
new spin on a topic which has been written about for decades.
Excellent stuff, just great!
Here is my homepage; Authentic Sidney Crosby Jersey
magnificent issues altogether, you just received a logo new reader.
ReplyDeleteWhat may you recommend about your post that you just made
some days in the past? Any sure?
Also visit my weblog: cheap jerseys
Hmm it looks like your website ate my first comment (it was extremely long) so I guess I'll just sum it up what I submitted and say, I'm thoroughly enjoying your blog.
ReplyDeleteI too am an aspiring blog writer but I'm still new to everything. Do you have any points for inexperienced blog writers? I'd
definitely appreciate it.
My website :: Converse
First off I would like to say wonderful blog! I had a quick question which
ReplyDeleteI'd like to ask if you don't mind. I was curious to find out how you
center yourself and clear your head prior to writing.
I've had trouble clearing my thoughts in getting my ideas out. I do take pleasure in writing however it just seems like the first 10 to 15 minutes are usually wasted simply just trying to figure out how to begin. Any suggestions or tips? Many thanks!
Feel free to surf to my blog ... wealthwayonline.com
Hello! Someone in my Facebook group shared this site with us
ReplyDeleteso I came to check it out. I'm definitely enjoying the information. I'm book-marking and will be tweeting this
to my followers! Fantastic blog and fantastic style and design.
Here is my web blog Air Jordan Pas Cher
I quite like reading through a post that will make men and women think.
ReplyDeleteAlso, thanks for allowing for me to comment!
Also visit my homepage; Abercrombie and Fitch
Thanks for the good writeup. It if truth be told was a entertainment account it.
ReplyDeleteGlance advanced to far introduced agreeable from
you! However, how can we keep in touch?
my weblog Converse
I was wondering if you ever thought of changing the
ReplyDeletelayout of your blog? Its very well written; I love
what youve got to say. But maybe you could a little more in the way of
content so people could connect with it better. Youve got an awful lot of text
for only having 1 or two images. Maybe you could
space it out better?
My web-site Mario Lemieux Black Jersey
magnificent points altogether, you simply won a new reader.
ReplyDeleteWhat might you recommend about your publish that you made a few days
ago? Any sure?
Feel free to visit my web blog - Louis Vuitton Bags
Why users still make use of to read news papers when in this
ReplyDeletetechnological globe the whole thing is presented on web?
Have a look at my webpage Click Here
Undeniably believe that which you said. Your favorite justification seemed to be on the net the easiest thing to be aware of.
ReplyDeleteI say to you, I definitely get annoyed while people consider worries that they plainly don't know about. You managed to hit the nail upon the top and defined out the whole thing without having side-effects , people could take a signal. Will likely be back to get more. Thanks
Also visit my web-site :: Sito Ufficiale Gucci Borse
I do not even know how I ended up here, but I thought this post was good.
ReplyDeleteI don't know who you are but definitely you are going to a famous blogger if you aren't already ;) Cheers!
Feel free to surf to my blog post; NFL Jerseys Wholesale
We absolutely love your blog and find a lot of your post's to be just what I'm
ReplyDeletelooking for. Does one offer guest writers to write content to suit your needs?
I wouldn't mind publishing a post or elaborating on some of the subjects you write related to here. Again, awesome web site!
Also visit my web site; Michael Kors Handbags
What's up everyone, it's my first go to see at this site, and post
ReplyDeleteis really fruitful in support of me, keep up posting such articles.
Feel free to visit my homepage; Authentic Sidney Crosby Jersey
I got this website from my buddy who shared with me regarding this website
ReplyDeleteand now this time I am visiting this website and reading very informative articles
or reviews at this time.
Also visit my homepage - Mulberry Outlet UK
Excellent article. I definitely love this site.
ReplyDeleteKeep it up!
Feel free to visit my web page - Louis Vuitton Pas Cher
Having read this I thought it was very enlightening. I appreciate you
ReplyDeletespending some time and energy to put this information together.
I once again find myself personally spending way too much time both reading and leaving comments.
But so what, it was still worth it!
Here is my webpage; Chaussure Air Jordan
Great beat ! I would like to apprentice even as you amend your site,
ReplyDeletehow could i subscribe for a weblog website? The account aided me a
appropriate deal. I were tiny bit familiar of this your broadcast offered vibrant clear
idea
My web-site :: Michael Kors Outlet
Hi i am kavin, its my first time to commenting anywhere,
ReplyDeletewhen i read this post i thought i could also make comment due to this
brilliant article.
Look at my web-site Louis Vuitton Outlet
Excellent write-up. I absolutely appreciate this website.
ReplyDeleteStick with it!
Feel free to surf to my web site ... Louis Vuitton Purses
Thanks for the auspicious writeup. It in truth was once a enjoyment account
ReplyDeleteit. Look advanced to more delivered agreeable from you! However, how could
we communicate?
my web-site :: NFL Jerseys Cheap
I needed to thank you for this very good read!
ReplyDelete! I absolutely enjoyed every bit of it. I have got you
book-marked to check out new stuff you post…
My web page - Cheap NFL Jerseys
Do you have a spam problem on this blog; I also am a blogger, and I was wondering your
ReplyDeletesituation; many of us have created some nice
procedures and we are looking to swap solutions with other folks, why not shoot me an email if interested.
my webpage :: Nike Air Jordan
Can you tell us more about this? I'd care to find out some additional information.
ReplyDeleteHave a look at my homepage; Gafas De Sol Oakley
Hmm it seems like your site ate my first comment
ReplyDelete(it was super long) so I guess I'll just sum it up what I submitted and say, I'm thoroughly
enjoying your blog. I as well am an aspiring blog writer
but I'm still new to everything. Do you have any tips for novice blog writers? I'd certainly appreciate it.
Visit my page - Michael Kors
Woah! I'm really enjoying the template/theme of this blog. It's simple, yet effective.
ReplyDeleteA lot of times it's hard to get that "perfect balance" between superb usability and visual appearance. I must say you have done a excellent job with this. Also, the blog loads super fast for me on Internet explorer. Exceptional Blog!
Here is my blog post :: Air Max Pas Cher
This paragraph will assist the internet people for creating new web site or even a weblog from start to end.
ReplyDeletemy weblog Read More Here
This piece of writing will assist the internet
ReplyDeletevisitors for setting up new webpage or even a weblog from start to end.
Also visit my webpage Chaussure De Foot Pas Cher
This is really interesting, You're a very skilled blogger. I have joined your feed and look forward to seeking more of your wonderful post. Also, I've shared your website in my social networks!
ReplyDeleteMy web page :: Cheap NFL Jerseys
Thanks for sharing your thoughts about modernism. Regards
ReplyDeletemy blog post: Montre Guess
Hi there, I found your website by way of Google at the same time as looking for a similar
ReplyDeletetopic, your website got here up, it appears great. I have
bookmarked it in my google bookmarks.
Hi there, just become alert to your blog thru Google, and found that it's truly informative. I'm gonna be careful for brussels.
I will appreciate in the event you proceed this in future.
Lots of other people can be benefited from your writing.
Cheers!
my website ... Abercrombie Pas Cher
When some one searches for his essential thing, so he/she
ReplyDeletewishes to be available that in detail, so that thing is
maintained over here.
My blog ... Cheap Louis Vuitton Bags
I think this is among the most vital info for me. And i am glad reading
ReplyDeleteyour article. But want to remark on some general things,
The site style is perfect, the articles is really nice : D.
Good job, cheers
Look into my web site - Get More Information
Whats up! I just would like to give an enormous thumbs up for the nice data you’ve here on this post.
ReplyDeleteI shall be coming again to your blog for extra soon.
my web-site :: cherished teddies value list
I think this is one of the most vital information for me.
ReplyDeleteAnd i am glad reading your article. But wanna remark on
few general things, The web site style is ideal, the articles is really great : D.
Good job, cheers
My webpage ... Solde Air Max
Hi there just wanted to give you a brief heads up and let you know a few of the images aren't loading correctly. I'm not sure why but I think its a linking issue.
ReplyDeleteI've tried it in two different internet browsers and both show the same outcome.
My website; abercrombie & fitch
Asking questions are truly nice thing if you are
ReplyDeletenot understanding something fully, but this paragraph offers nice understanding even.
My blog ... Boutique Air Max
It's really a nice and helpful piece of info. I'm happy that you shared this helpful information
ReplyDeletewith us. Please stay us up to date like this. Thank you for sharing.
Feel free to surf to my web-site Read Full Article
Hello! I simply would like to give a huge thumbs up for the
ReplyDeletegreat information you have got here on this post.
I might be coming again to your weblog for more soon.
my homepage - plastic surgeon in new mexico
Hurrah! In the end I got a weblog from where I can truly get valuable facts concerning my study and knowledge.
ReplyDeleteFeel free to surf to my site: Learn More
Great article, totally what I was looking for.
ReplyDeleteLook into my web-site ... continue
Very nice post. I just stumbled upon your blog and wanted to say that I've truly enjoyed surfing around your blog posts. After all I will be subscribing to your feed and I hope you write again soon!
ReplyDeletemy page; Read More Here
Thanks for finally talking about > "Comment faire pour cr�er un jeu video" < Loved it!
ReplyDeleteFeel free to surf to my site - helpful resources
You made some good points there. I checked on the web to find out more about the issue and found most individuals will go along with your views on this website.
ReplyDeleteHere is my blog post Tory Burch Flats
Thanks for sharing your thoughts about inoculate. Regards
ReplyDeleteMy web blog: Louis Vuitton Purses Outlet
Greetings! Very helpful advice within this article! It
ReplyDeleteis the little changes which will make the biggest changes.
Thanks a lot for sharing!
My website; jackpot 6000 Jackpot 6000
Howdy! I'm at work surfing around your blog from my new iphone! Just wanted to say I love reading through your blog and look forward to all your posts! Carry on the great work!
ReplyDeletemy weblog :: Nike Free Run
Very good site you have here but I was wanting to
ReplyDeleteknow if you knew of any discussion boards that cover the same topics
discussed in this article? I'd really like to be a part of group where I can get feedback from other experienced people that share the same interest. If you have any recommendations, please let me know. Cheers!
Also visit my web blog - Michael Kors Outlet
Hello all, here every person is sharing these familіaгіty, so іt's fastidious to read this weblog, and I used to pay a quick visit this weblog everyday.
ReplyDeleteMy weblog :: rhinoplasty top surgeon ()
Hi there! I know this is kinda off topic but I was wondering if you knew where I could find a
ReplyDeletecaptcha plugin for my comment form? I'm using the same blog platform as yours and I'm having problems finding
one? Thanks a lot!
Feel free to visit my blog :: Louis Vuitton Pas Cher
Good response in return of this difficulty with genuine arguments and telling everything about that.
ReplyDeleteLook at my weblog ... Sac Louis Vuitton
Thank you, I've just been looking for information approximately this topic for ages and yours is the greatest I have discovered so far. But, what about the conclusion? Are you certain concerning the supply?
ReplyDeleteFeel free to visit my blog - Cheap Jerseys
This blog was... how do you say it? Relevant!!
ReplyDeleteFinally I've found something which helped me. Many thanks!
Feel free to surf to my homepage: jackpot 6000
My coder is trying to persuade me to move to .net from PHP.
ReplyDeleteI have always disliked the idea because of the expenses.
But he's tryiong none the less. I've been using WordPress on numerous websites for about a
year and am anxious about switching to another platform.
I have heard excellent things about blogengine.
net. Is there a way I can import all my wordpress content into it?
Any help would be greatly appreciated!
Feel free to visit my blog; More Help []
Pгettу seсtіon οf content.
ReplyDeleteI ϳust stumbled upon youг webѕitе and in асcesѕіon capital to
assert that I acquіre in fact еnjoyed aсcount
уοur blog posts. Аnуwау I
ωill be subscrіbing to yοur аugment and even I aсhieѵеment you ассess сonsistently rapiԁly.
Reviеw mу ωeb-sіtе
nummerupplyѕningen []
Нi thеre I am so glаd I found your blog
ReplyDeletepage, ӏ really founԁ yοu by mistаκe, while
I ωas looκing on Digg foг something elsе,
Rеgardless Ι am here noω and would just liκe to
ѕау cheers fοг a remarκable poѕt and a all round thrilling blog
(I also love the theme/desіgn), I don't have time to go through it all at the moment but I have book-marked it and also added in your RSS feeds, so when I have time I will be back to read a lot more, Please do keep up the superb work.
Here is my site ... nummerupplysningen ()
bookmaгked!!, I love уour ωebѕite!
ReplyDeleteAlso visit my web-sіte :: nummerupplysningen
Awesome blog! Do you have any tips and hints for aspiring writers?
ReplyDeleteI'm planning to start my own website soon but I'm a little lost
on everything. Would you propose starting with a free
platform like Wordpress or go for a paid option? There are so many options out there that I'm completely overwhelmed .. Any recommendations? Thanks a lot!
My homepage: jackpot 6000
Hello there! This is my first comment here so I just wanted to give a quick shout out and tell you I
ReplyDeletegenuinely enjoy reading your blog posts. Can you suggest any
other blogs/websites/forums that go over the same subjects?
Thank you!
my web-site :: jackpot 6000 [futursoftinc.com]
Hurrah, that's what I was exploring for, what a information! present here at this blog, thanks admin of this web page.
ReplyDeleteFeel free to surf to my website - More hints
I'm extremely impressed together with your writing talents as neatly as with the structure on your weblog. Is that this a paid subject matter or did you customize it yourself? Anyway keep up the nice high quality writing, it is rare to look a great weblog like this one nowadays..
ReplyDeleteHere is my blog; related site