Comment réaliser un jeu vidéo
Transcription
Comment réaliser un jeu vidéo
Comment réaliser un jeu vidéo Gwennaël ARBONA - 17 mai 2013 Comment réaliser un jeu vidéo Table des matières 1 Introduction : DeepVoid 2 2 Pour commencer 3 2.1 Quel jeu vidéo souhaitez-vous réaliser ? . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 Idées et concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.3 Le cas particulier du MMORPG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.4 L’argent dans les jeux amateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3 Réaliser un jeu vidéo 6 3.1 Démarrer le projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.2 Le chef de projet, il sert à quoi ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.3 Recruter une équipe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.4 Gérer le temps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.5 L’organisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.6 Les technologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.7 La production graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.8 Testez, testez, testez ! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.9 Le rôle de la communauté . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 4 7 idées reçues sur la création d’un jeu 14 4.1 ”Un jeu vidéo, c’est impossible” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 4.2 ”Un jeu vidéo, c’est facile, il suffit de motivation” . . . . . . . . . . . . . . . . . . . . . 14 4.3 ”Il faut des outils payants pour créer un jeu vidéo” . . . . . . . . . . . . . . . . . . . . 14 4.4 ”Avec un moteur de jeu, on ne programme pas” . . . . . . . . . . . . . . . . . . . . . . 15 4.5 ”Les moteurs de jeu sont limités” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.6 ”Le moteur de jeu fournit le contenu, on n’a pas besoin d’en créer” . . . . . . . . . . . 16 4.7 ”On peut faire aussi bien sans moteur de jeu, en faisant tout soi-même” . . . . . . . . 17 5 En résumé 18 5.1 Comment ne pas réussir un projet de FPS ? . . . . . . . . . . . . . . . . . . . . . . . . 18 5.2 Comment réussir un projet de FPS ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.3 Conclusion 19 Gwennaël ARBONA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Comment réaliser un jeu vidéo 1. Introduction : DeepVoid De tous les projets amateur, un de ceux qui revient le plus souvent est le jeu vidéo 3D. Cet article est un retour d’expérience sur la création d’un FPS, DeepVoid, rédigé au moment où le jeu commence à s’ouvrir au public après des mois de développement. En quelques lignes, c’est un ensemble de conseils sur la façon de travailler, un récit de ce que j’ai constaté. Figure 1 – DeepVoid en action DeepVoid est le fruit d’une très longue réflexion. A ses origines, le projet avait une nature très différente, il s’agissait de réaliser un FPS pour et par le Site du Zéro. La communauté devait y jouer un rôle majeur : conception, réalisation, support ; le projet a été proposé sur le site par sondage à l’époque de la rédaction de mon cours UDK sur le même site. Le sondage lui donne à ce moment un plébiscite : pas moins de 7000 participants ”intéressés” par un FPS. Au final, l’organisation du projet se complique, prend du retard, et quelques mois plus tard, en avril 2012, un nouveau projet apparaı̂t. C’est un fast-FPS, DeepVoid, qui à ce moment s’appelle encore ”le FPS du Zéro” et que je réalise seul en espérant produire une simple démo technique. Très vite, je suis rejoint par plusieurs autres passionnés qui complètent l’équipe, et c’est ainsi qu’avec une dizaine de développeurs on parvient, cette même, à montrer un jeu jouable en ligne, un rendu haut de gamme qui offre la même qualité visuelle que les gros titres commerciaux, et même à entrer au Top100 des jeux indépendants de l’année sur IndieDB, avec une dizaine d’autres FPS en développement. En mai 2013, le jeu comporte deux niveaux complets, son code est stable, distribué sous licence LGPL et la publication du jeu commence. Gwennaël ARBONA 2 Comment réaliser un jeu vidéo 2. Pour commencer Si vous lisez ces lignes, c’est probablement parce que vous souhaitez réaliser un jeu vidéo 3D. Bonne nouvelle : ça n’a jamais été aussi intéressant ! Avec la technologie actuelle, n’importe qui ou presque peut se lancer et créer un jeu extraordinaire. Mais ça reste un projet long et difficile, avec de nombreux écueils. 2.1. QUEL JEU VIDÉO SOUHAITEZ-VOUS RÉALISER ? Aussi évident que ça soit, il faut quand même le rappeler : pour produire un jeu vidéo, il faut d’abord savoir ce qu’on veut. Si votre projet est un survival FPS stratégique, en voxels, avec des sorciers et un vaisseau spatial, vous êtes mal barré... Faites-vous donc une idée claire du type de jeu que vous comptez réaliser. – Quel est le principe du jeu ? Est-ce un jeu solo ou multijoueurs ? Quels mécanismes proposezvous ? N’hésitez pas à détailler un maximum cette partie... – Quelle est la vue du joueur ? FPS, TPS, stratégique ? A quoi ressemblera l’interface du jeu, fonctionnellement ? – A quoi ressemble, visuellement, votre jeu ? Pour répondre à cette question, une seule solution : les concept arts. Qu’ils soient de vous, d’un autre, dédiés à votre jeu ou non, il vous faut des concept arts de vos personnages, de vos environnements, de vos armes ou véhicules... Montrez aux autres ce que vous comptez réaliser. – Si votre jeu est un jeu à histoire, parlez-en aussi. Attention quand même : rien ne fait fuir les candidats aussi bien qu’une histoire naı̈ve pleine de fautes d’orthographe... Figure 2 – Concept art pour DeepVoid Au terme de cette recherche, vous devriez avoir un minimum de vingt pages de documentation sur votre jeu, ses mécanismes, ses idées. Faites l’effort d’en faire quelque chose de clair, lisible et organisé, c’est aussi un gage de sérieux. Gwennaël ARBONA 3 Comment réaliser un jeu vidéo 2.2. IDÉES ET CONCEPTS Vous avez une idée fantastique pour un jeu vidéo ? On va commencer par la douche froide : ce ne sont pas les idées qui font le succès d’un jeu. Tout le monde a des idées de jeu vidéo, il suffit de parcourir un forum cinq minutes pour s’en convaincre. Mais une idée, seule, ne vous amènera pas bien loin, et elle ne vous amènera certainement pas au recrutement d’une équipe sérieuse. La raison à ça, c’est que puisque tout le monde a des idées de jeu, les gens suffisamment compétents pour vous aider en verront dans votre idée qu’un projet de plus parmi des centaines qui se créent chaque jour, surtout si vous êtes un illustre inconnu. C’est la trajectoire la plus courante d’une idée de jeu vidéo : un sujet sur un forum, plein de gens qui en discutent sur 5 pages, et jamais un jeu qui en sort. Pour démarrer un jeu vidéo, il vous faut plus qu’une idée, il vous faut convaincre que vous allez réaliser le projet, contre vents et marées, même si vous devez vous en chargez seul. Je vous arrête tout de suite : il ne suffit pas de rajouter dans votre présentation que vous êtes chaud comme la braise. Ce qu’il vous faut, c’est une preuve, c’est-à-dire... Le jeu lui-même. A ce stade, vous pensez peut-être que je me moque de vous, mais ce n’est pas le cas. Si vous parvenez à construire une démo de votre jeu vidéo, aussi basique et moche soit-elle, vous parviendrez très facilement à recruter des gens sérieux dans votre projet. Si vous ne savez ni programmer, ni modéliser, il va falloir apprendre ! Figure 3 – Une des premières images publiées pour DeepVoid Gwennaël ARBONA 4 Comment réaliser un jeu vidéo 2.3. LE CAS PARTICULIER DU MMORPG C’est un grand classique des forums de jeu vidéo : le MMORPG 3D amateur. Tellement classique que souvent, de tels projets sont accueillis avec sarcasme, puisque c’est l’exemple parfait du projet qui ne peut pas réussir. Si c’est pour ça que vous êtes ici, vous allez être déçus : c’est réellement infaisable pour des amateurs. D’ailleurs, vous en connaissez, des MMORPG 3D amateur ? Voici quelques raisons à ça... – L’aspect technologique, en particulier la gestion du réseau, est bien trop complexe pour réalisable par des amateurs. Vous pouvez vous en sortir avec des moteurs de jeu dédiés comme Hero Engine par exemple, mais ne vous attendez pas à ce que votre projet soit simple. – Dans quasiment tous les jeux amateur, une fois l’aspect technique maı̂trisé, ce qui manque systématiquement est le contenu, en particulier le contenu 3D. Les artistes 3D sont peu nombreux, surtout les bons, et la création de contenu prend du temps. Ce qui est pénible dans un FPS devient un obstacle infranchissable dans un MMORPG. – En admettant qu’un tel projet aboutisse et soit jouable, le coup de grâce vient des joueurs. Un MMORPG n’en est un que si il a une communauté ! L’erreur des auteurs de tels projets est souvent de sous-estimer la communauté requise. Imaginez que votre MMORPG rassemble 500 joueurs actifs : ça vous semble probablement bien. Mais en fait, si au long terme votre jeu a 10% de son effectif total connecté, c’est plutôt très bien, ça veut dire que l’ensemble de vos joueurs joue 2h30 par jour en moyenne. Problème, ça ne fait que 50 joueurs en ligne, il va donc vous falloir plusieurs milliers de joueurs actifs pour vous en sortir... Si tout ça ne vous décourage pas, regardez des projets comme Tabula Rasa ou All Points Bulletin, des projets commerciaux à plusieurs millions de dollars. Même des projets avec d’énormes moyens peuvent se planter. 2.4. L’ARGENT DANS LES JEUX AMATEUR Si vous comptez rendre le jeu payant, que ça soit en partie ou complètement, je vous arrête ici. Un jeu commercial développé par des amateurs, c’est un casse-tête légal qui n’a aucune bonne solution, sauf si le succès est phénoménal, et encore... Voici un résumé. – Pour commercialiser un jeu, légalement, vous devez vous constituer une entité légale, a priori une entreprise. Vous sortez de fait du cadre amateur, et votre équipe va devenir une équipe de salariés qu’il vous faut rémunérer, et pas ”un petit peu” ou ”suivant les ventes”. Je ne détaille pas plus cet aspect qui parle de lui-même. – Sur le plan légal, les membres de votre équipe ont des droits sur leur travail, y compris celui de retirer ce travail du projet. C’est le propre du projet amateur : c’est la confiance qui soude l’ensemble. – Toujours sur le plan légal, les logiciels et outils que vous employez à la création de votre jeu ont bien souvent des contraintes particulières dans un cadre commercial... – Attirer une équipe en leur promettant une rémunération est une stratégie dangereuse parce qu’elle conduit souvent à des déceptions. Dans le cas de DeepVoid, j’ai considéré que vendre le jeu ou créer du contenu payant n’était pas envisageable. C’est d’autant plus compliqué que l’équipe est vaste, sauf si vous comptez travailler seul, je vous déconseille d’essayer de vendre votre jeu. Gwennaël ARBONA 5 Comment réaliser un jeu vidéo 3. Réaliser un jeu vidéo 3.1. DÉMARRER LE PROJET On reprend le cheminement commencé dans le chapitre précédent. Pour commencer, faites un plan de votre projet, un document de game design complet avec des concepts, des explications claires. Une fois cette étape complète, préparez une démo de votre jeu pour montrer ce que vous pouvez faire. C’est là que votre projet se lance, vous allez pouvoir recruter une équipe pour vous aider dans cette tâche ! L’idéal, c’est de montrer votre démo à un maximum de gens. Faites vous de la pub sur différents forums, ouvrez une page sur IndieDB ou sur des forums de jeu vidéo, parlez de votre projet. Dans le cas de DeepVoid, tout a commencé par une démonstration vidéo du jeu sur le Site du Zéro, qui a suffit à faire venir plusieurs personnes assez rapidement. 3.2. LE CHEF DE PROJET, IL SERT À QUOI ? On imagine tous le chef de projet dans son fauteuil, donner des ordres à toute l’équipe et coller les images du jeu sur Facebook. En réalité, ce qui se passe est un peu le contraire : quand vous gérez un projet, c’est vous qui allez passer énormément de temps à recevoir des demandes de l’équipe. Car le travail du leader, ici, n’est pas simplement de donner les consignes, c’est avant tout de mettre en place le cadre de travail pour son équipe. Comme dans la vraie vie ! Faisons le tour de ce qu’un chef de projet est amené à réaliser lui-même, en admettant que tous les postes techniques majeurs sont occupés par quelqu’un de présent et compétent, ce qui est déjà une chance. – Recruter de nouveaux membres est la plus évidente des tâches, mais elle s’accompagne du suivi de l’équipe : rester en contact avec tout le monde, gérer les absences, s’assurer que tout se passe bien. – A priori, on attend de vous l’expertise technologique sur le projet. C’est-à-dire que vous devez pouvoir comprendre le travail de tout le monde, voire aider l’équipe. Vous occupez donc les casquettes de développeur, admin réseau, graphiste, commercial, compositeur et même si vous ne faites que guider l’équipe, c’est clairement l’essentiel de votre emploi du temps. – Souvent, le game design est assuré par le leader du projet. C’est assez logique puisque vous avez probablement une idée assez claire de ce que vous voulez, mais ça représente un temps considérable, surtout dès qu’un problème se présente. Par exemple, dans DeepVoid, le ”spawn killing” n’était pas prévu, il a fallu revoir le level design tardivement. – De même, la communication autour du projet est une tâche qui prend du temps, qui exige du sérieux et qui ne se délègue pas facilement. Au moins au début, c’est donc également votre travail. – Votre jeu est un jeu multijoueurs ? L’architecture réseau sur ce sujet, quelle que soit la technologie, va exiger votre participation. La raison la plus évidente, c’est le coût des serveurs, mais également la coordination des développeurs et de l’administrateur de vos serveurs. – Parlons-en, du coût. A priori, ils sont restreints : pas de salaires, pas de frais majeurs. Vous avez en revanche besoin d’un site Web sérieux, éventuellements de serveurs de mise à jour. Peut-être même que vous utilisez des logiciels payants. Dans tous les cas, c’est pour vous, et même si les sommes restent faibles, n’espérez pas qu’un membre de l’équipe paye... – Enfin, les moyens étant toujours limités, vous avez en plus de tout ça besoin de travailler sur le point technique dans lequel vous êtes spécialisé. Gwennaël ARBONA 6 Comment réaliser un jeu vidéo 3.3. RECRUTER UNE ÉQUIPE Premier constat dans une équipe amateur : la plupart des membres de votre équipe ne seront pas impliqués. La proportion de membres inactifs varie suivant la taille de l’équipe, le domaine, la sélection que vous y faites, et bien sûr les circonstances. Ce qui est sûr, c’est que je n’imagine ni une équipe de 10 membres tous présents, ni une équipe qui n’évolue pas pendant plus de trois mois. Et on ne peut pas prévoir ça à l’avance, parfois ceux qui ont l’air les plus motivés sont ceux qui ne vous reparleront jamais et vice versa. Gérer une équipe est une tâche difficile, c’est un métier en soi. Impossible d’en parler ici sans y consacrer un livre, l’essentiel dans un tel projet est de recruter des gens de confiance, sérieux et impliqués. Le reste dépend de chacun. Avec le temps, j’ai relevé quelques règles : – les membres de votre famille et vos proches amis ne sont que rarement des équipiers efficaces ; – la plupart des candidats à un recrutement ne sont pas qualifiés ; – corollaire de la règle précédente, il y a toujours des candidats, même pour un projet pourri. Alors comment recruter ? C’est simple : réalisez un prototype sérieux et vendeur, et parlez-en sur des sites de référence sur le domaine, y compris à l’international. Par exemple, pour recruter un développeur UDK, udk-fr et les forums d’Epic Games sont des cibles de choix, tandis que CGHub abrite des artistes jusqu’au plus haut niveau. Un dernier mot sur le recrutement : tout le monde est toujours motivé pour vous rejoindre (voir les règles ci-dessus). Toujours ! Et, aussi incroyable que ça puisse paraı̂tre, il arrive que des gens candidatent à votre projet, bourrés de motivation, pour ne plus jamais donner signe de vie ensuite. Pour cette raison, le plus simple est de demander aux candidats un échantillon de leur boulot. Le minimum, a priori est de regarder leurs travaux passés pour évaluer ce qu’il en est, mais donner une tâche à réaliser comme épreuve d’essai est une excellente idée. Dans le cas de DeepVoid, pas moins de trois candidats sérieux se sont proposés, ont discuté avec nous du projet, ont accepté cette étape, promis de revenir très vite et... ne sont jamais revenus. Au moins, en fonctionnant ainsi, on est fixé sur le sujet avant de commencer sérieusement... Gwennaël ARBONA 7 Comment réaliser un jeu vidéo 3.4. GÉRER LE TEMPS C’est une question qui revient bien souvent : combien de temps ça prend de développer un jeu vidéo ? Tout le monde est d’accord pour dire que c’est très long, même les créateurs qui se lancent et qu’on entend dire qu’ils sont motivés ”pour des années” et que ça prendra ”le temps qu’il faudra”. Dans le cas de DeepVoid, il m’aura fallu un peu plus d’un an pour voir le projet arriver à un stade proche de la publication. Pendant cette année, les vacances, les week-ends, les soirées y passent. Pas tous les soirs et pas l’ensemble des vacances, bien sûr, ce n’est pas comme ça qu’il faut le comprendre, mais pas une semaine ne s’est passée sans qu’un peu de temps soit dépensé sur ce projet. Le vrai problème du temps, c’est la motivation. Même la vôtre va forcément faiblir un jour, que ça soit pour un soir, pour une semaine, pour un mois. On ne peut pas consacrer des centaines d’heures de travail à quelque chose sans s’en lasser à un moment, il faut donc en prendre conscience, varier les loisirs et avancer par étapes, avec des objectifs réalistes et à court terme. Se tenir à un planning a du bon. 3.5. L’ORGANISATION Souvent, dans les projets amateur, on trouve un peu le contraire de ce qu’il faudrait faire : pas de process pour la production, et des règles rigides pour faire bien là où il n’y en a pas besoin. Par exemple, on va voir des gens parler de réunions, on va voir des numéros de version, un site Web ultracomplet avant même que le projet soit lancé... Et à côté de ça un jeu développé en dépit du bon sens. Développer des niveaux avant même d’avoir un personnage fonctionnel n’est pas logique, par exemple. Commencez par l’essentiel : le gameplay. Figure 4 – Réalisation d’un niveau de DeepVoid : avant la production, le gameplay est testé De même, il est indispensable d’avoir une gestion de version en place. Pour le code, utiliser Git, Subversion ou un équivalent est une excellente solution, mais il faut faire de même pour le reste. Dans le cas du moteur Unreal, utilisé pour DeepVoid, l’intégration avec Perforce permet de synchroniser l’ensemble des ressources. Utilisez ces outils ! Gwennaël ARBONA 8 Comment réaliser un jeu vidéo 3.6. LES TECHNOLOGIES DeepVoid s’appuie sur le moteur Unreal et fait appel, de façon assez systématique, à des outils commerciaux. Mon raisonnement était simple : les pros utilisent ces technologies, faisons donc la même chose. Un jeu vidéo, c’est un travail qui fait appel à de nombreuses disciplines différentes. Programmation, design, modélisation 3D, musique et son, animation, interface, sécurité, déploiement, et j’en passe : si la plupart des jeux commerciaux affichent deux cent personnes au générique du jeu ce n’est pas un hasard ! Alors il faut se résoudre à utiliser des outils qui facilitent ce travail. Aujourd’hui, UDK, CryEngine et d’autres permettent à n’importe qui de se lancer dans le jeu vidéo avec des connaissances dans un seul de ces domaines, c’est une situation extraordinaire. Utilisez ces outils, on ne le dira pas assez ! Le maı̂tre mot, c’est de ne pas rajouter de la difficulté si on peut l’éviter. Les solutions commerciales sont souvent les plus efficaces, et ne sont pas toutes payantes. Figure 5 – Visualisation des lightmaps dans un niveau de DeepVoid La plupart des projets amateur travaillent sur des technologies plus ”geek”, en s’appuyant sur des logiciels libres. Beaucoup de développeurs sont convaincus que le meilleur choix est d’assembler des composants open-source autour d’un code C++, arguant que c’est une solution moins contraignante qu’un moteur de jeu. C’est effectivement vrai, mais l’expérience montre, même pour des jeux commerciaux, que c’est un mirage. La vraie difficulté, c’est rarement de faire quelque chose qui n’est pas prévu dans un moteur de jeu (même si bien sûr, ça arrive régulièrement) mais de faire quelque chose qui fonctionne. Si vous n’êtes toujours pas convaincus, regardez les projets indépendants à succès qui font appel à ces moteurs ! Gwennaël ARBONA 9 Comment réaliser un jeu vidéo 3.7. LA PRODUCTION GRAPHIQUE Le gros oeuvre du jeu vidéo, c’est bien la production du contenu. Interface graphique, personnages, animations, environnements, voilà de quoi vous occuper pendant des mois. C’est là que les concepts que vous avez rassemblé au début du projet vont vous aider ! Vous devez guider votre équipe artistique, définir le type de rendu que vous visez, le budget de performances suivant la technologie employée... C’est un travail lourd mais passionnant puisque vous allez voir votre jeu vidéo se construire peu à peu. Dans votre production, tâchez de fonctionner de la même façon que pour le projet en général : allez à l’essentiel, commencez par le plus simple et basique et à partir de cette base, faites avancer le travail. Par exemple, dans la réalisation d’un niveau, il faut commencer par un prototype cubique sans contenu travaillé. Une fois la structure du niveau validée, vous pouvez travailler sur l’aspect visuel, construire le niveau, puis continuer à l’améliorer jusqu’à ce que vous le jugiez terminé. Figure 6 – Concept art d’un niveau Gwennaël ARBONA 10 Comment réaliser un jeu vidéo Tenez-vous au courant de la façon dont les professionnels travaillent. Que ça soit le design modulaire, le sculpt, le process ”high to low” ou le shading, vous allez voir besoin de maı̂triser des process créatifs pour produire du contenu de qualité. Figure 7 – Résultat après production Une bonne façon de situer son niveau et de se tenir au courant de la technologie est de suivre les forums de professionnels. CGHub et Polycount, par exemple, sont des communautés dédiées au graphisme numérique, vous y trouverez de nombreux passionnés, amateurs ou non, qui présentent leurs créations. Faites de même pour le jeu vidéo avec des sites comme IndieDB et vous pourrez facilement comparer votre travail, ou tout simplement trouver de nouvelles idées. Gwennaël ARBONA 11 Comment réaliser un jeu vidéo 3.8. TESTEZ, TESTEZ, TESTEZ ! Habituellement, tout le monde est d’accord pour dire qu’il faut faire des essais. Mais les essais, c’est quoi ? Prenons l’exemple d’un jeu multijoueurs typique, avec un mode solo basique et des serveurs dédiés, et faisons la liste des situations les plus évidentes... – le joueur est en local, tout fonctionne sur son ordinateur ; – la partie se déroule en LAN, le jeu est réparti sur plusieurs machines, avec des temps de transmission très faibles, inférieurs à la milliseconde ; – la partie se déroule en multijoueurs sur Internet sur un serveur dédié, les temps de transmission dépassent 100ms ; – la partie se déroule en multijoueurs sur Internet avec un joueur qui héberge (peer-to-peer) et qui a donc à la fois un client et un serveur. Félicitations, pour chaque modification de votre code réseau, vous avez pas moins de quatre cas de figure complètement différents à tester, qui vont impliquer pas moins de trois machines de test. Vous pensez que les différences sont minimes ? Pour DeepVoid, quasiment la moitié des bugs connus concernent le réseau, malgré l’usage d’un moteur de jeu très complet et fiable de ce côté... Cette logique s’applique partout dans votre projet. Prenons par exemple l’installation de votre jeu chez le joueur, dans le cas le plus classique, c’est-à-dire sous Windows. A l’heure actuelle, quatre versions différente de cet OS sont couramment utilisées par des joueurs, et vous devrez malgré tout installer de nombreuses dépendances logicielles (des programmes que vous avez utilisé et que vous devez donc fournir avec le jeu pour qu’il fonctionne). A priori, vous aurez au minimum besoin d’installer DirectX et des binaires liés à votre compilateur, en plus de votre jeu... Toujours sur quatre versions d’un OS. On peut continuer pendant des heures sur ce sujet, le résumé est simple : vous devez absolument tout tester, à chaque version du jeu. Surtout, vous devez le faire au fur et à mesure du développement, à chaque nouvelle fonctionnalité, à chaque étape, et pas à la fin du projet. Gwennaël ARBONA 12 Comment réaliser un jeu vidéo 3.9. LE RÔLE DE LA COMMUNAUTÉ DeepVoid a commencé avec un concept communautaire dans lequel le jeu était co-réalisé par les membres du Site du Zéro. Au final, c’est un projet différent qui s’est fait, avec une équipe réduite et fermée qui a réalisé 100% du contenu du jeu. Aucun élément externe n’est présent, pas même les ressources fournies avec notre moteur de jeu. Le rôle de la communauté s’est donc réduit aux tests, aux avis, idées pour améliorer le jeu ou corriger des bugs. En revanche, si nous avons limité l’implication de la communauté, nous avons tenus à lui fournir notre travail. C’est ainsi que 4 séances d’essais publics, répartis sur des durées de 24h à un mois, ont été réalisées en invitant des joueurs enthousiastes. C’est aussi pour ça que nous avons tenu à publier des milliers de lignes de code sous une licence libre, des cours vidéos, des exemples, afin de permettre à chacun de se former sur ces technologies. Alors bien sûr, la communauté ce n’est pas toujours rose. C’est ainsi que nous avons été victimes d’une longue série d’attaques diverses de la part d’une autre équipe amateur, s’échelonnant du bug exploit aux tentatives d’intrusion en passant par le vol et la redistribution de notre travail. Plus tard, on saura que d’autres projets avait eu affaire à ces mêmes personnes, qui pillaient des ressources et décourageaient les équipes, de jeu en jeu... Conclusion à en tirer : il est difficile d’impliquer une communauté dans le développement d’un jeu vidéo, surtout quand ça implique de distribuer des prototypes. Par la suite, nous avons donc choisi d’exiger une inscription préalable avec des adresses emails, des coordonnées, un minimum de sélection et d’encadrement, des accès sécurisés et identifiés. C’est réellement indispensable. La communauté est également un facteur de complications quand le gameplay s’élabore. Pour une raison simple d’abord : tous les joueurs sont différents et leurs goûts en matière de jeu vidéo aussi. C’est donc impossible de satisfaire tout le monde ! Mais surtout, si votre projet est un tant soi peu original, le risque pris en écoutant trop les joueurs est de réaliser au final un jeu qui soit exactement ce à quoi les joueurs jouent déjà, et ça, même eux ne le souhaitent en réalité pas. Vous avez une idée, suivez-la. On m’a reproché de ne pas suivre toutes les propositions en arguant qu’un projet amateur ”est censé être à l’écoute”, position à laquelle je ne souscris pas. Faites le jeu que vous voulez faire, pas celui qu’on vous demande de faire. En revanche, la communauté a eu un rôle fantastique au moment du concours Indie Of The Year d’IndieDB. Nous avons eu près de 15000 visites sur le site en quelques semaines, avec des centaines de message d’encouragement, des conseils, des joueurs qui ont fait la promotion de notre jeu. C’est certainement mon meilleur souvenir de ce projet, et je remercie encore à tous ceux qui ont participé à ça ! Gwennaël ARBONA 13 Comment réaliser un jeu vidéo 4. 7 idées reçues sur la création d’un jeu Aux détours des forums, on trovue parfois de curieux a-priori sur le jeu vidéo. Tordons le coup à quelques-unes de ces idées reçues... 4.1. ”UN JEU VIDÉO, C’EST IMPOSSIBLE” Aujourd’hui, il y a des outils de développement adaptés qui permettent en quelques mois, à une équipe réduite de développer un FPS basique, comme un clone de Counter-Strike par exemple. Bien entendu, ça demande un travail acharné et des compétences solides en programmation, en design, en modélisation, en son et c’est la vraie difficulté : aucune solution technique ne fera le boulot à votre place. En revanche, pourquoi implémenter un énième moteur de rendu 3D de la planète ? C’est un problème ancien qui a déjà été résolu des centaines de fois. Le principe d’un moteur de jeu est de centraliser les problèmes les plus courants pour faciliter le travail : rendu 3D, code réseau, gestion du son, importation de contenu, création de niveaux... En partant de là, c’est à vous de créer votre jeu vidéo : simplement, au lieu d’assembler des bibliothèques plus ou moins complètes et compatibles, vous utilisez un environnement intégré. 4.2. ”UN JEU VIDÉO, C’EST FACILE, IL SUFFIT DE MOTIVATION” Malheureusement, c’est aussi faux que l’extrême précédent. Il faut des compétences tellement variées qu’il est essentiel de se regrouper pour créer un jeu 3D. Listons donc les postes critiques d’un tel projet, sur le plan technique : programmeur(s), modélisateur(s) 3D, level designer, artiste son / compositeur, webmaster... A ces compétences techniques, se rajoute la tâche difficile de gérer le projet. Un tel poste n’est pas concevable sans une expérience basique de tous les domaines cités : ça ne s’improvise pas, ce n’est pas le poste de celui qui ne sait rien faire, ce n’est pas le poste du glandeur, ce n’est pas non plus le chef qui décide de tout. C’est un poste difficile. 4.3. ”IL FAUT DES OUTILS PAYANTS POUR CRÉER UN JEU VIDÉO” Dans l’absolu, ce n’est pas complètement faux. La suite Adobe au grand complet peut se révéler un allié de poids, les logiciels 3D de grandes entreprises également. En revanche, surtout si vous débutez, sachez découvrir les solutions gratuites voire libres. Par exemple, il est parfaitement possible de développer un niveau de jeu vidéo moderne avec Blender et GIMP dans un moteur de jeu tel qu’UDK, qui est lui-même gratuit pour un usage non commercial. Gwennaël ARBONA 14 Comment réaliser un jeu vidéo 4.4. ”AVEC UN MOTEUR DE JEU, ON NE PROGRAMME PAS” C’est probablement le propos le plus courant sur les moteurs de jeu : c’est aussi le plus faux. Prenons l’exemple d’Unreal Engine ou UDK : son projet d’exemple est constitué d’environ 400 000 lignes de code. Si vous lisez ces lignes, il y a fort à parier que vous avez déjà programmé, mais quelle quantité de code avez-vous écrit dans votre vie ? Si vous êtes programmeur de métier, probablement plusieurs milliers ou dizaines de milliers... Imaginez dix fois cette quantité : oui, il faut réellement programmer avec un moteur de jeu, et pas qu’un peu. La même critique est souvent faite sur les langages employés dans ces moteurs, parfois considéré comme des scripts sans complexité technique. Il n’en est rien ! Ne voyez pas un moteur de jeu comme un logiciel pour créer votre jeu, voyez-le comme un environnement de développement, un laboratoire en quelque sorte, remplis d’outils pratiques. 4.5. ”LES MOTEURS DE JEU SONT LIMITÉS” Là encore, c’est une erreur courante. Vous avez, plutôt que des limitations, des choix techniques déjà faits à bas niveau qui ne vous laissent pas la liberté de les modifier. En revanche, ces choix n’interfèrent pas avec le gameplay, le développement du jeu vidéo en lui-même, pour plusieurs raisons. D’abord, un moteur de jeu est un environnement de développement et pas une machine à faire des jeux : il ne prend pas les décisions à votre place. Ensuite, le code d’un moteur ne s’attaque jamais au gameplay, ce n’est pas sa mission : il s’attaque à des problèmes de bas niveau et implémente des mécanismes basiques comme par exemple la notion de joueur, d’équipe, de score, mais sans jamais en fixer les règles : c’est à vous de les choisir et le moteur ne le fait pas pour vous. Plus généralement, le moteur s’arrête à relativement bas niveau. Si vous souhaitez faire de la classe ”Joueur” du moteur un véhicule ou un bâtiment, rien ne vous en empêche ! C’est le principe. Enfin, si vous vous sentez limité par un aspect du moteur, souvenez-vous que bien souvent il permet de faire appel à du code extérieur, par exemple si vous souhaitez gérer Kinect... En d’autres termes, ce qui est essentiel c’est de comprendre que vous aurez encore énormément de travail, même avec un moteur de jeu et rien qu’en programmation. Ce n’est pas une solution de facilité : c’est une solution réaliste. Certains tendent à catégoriser les moteurs de jeu comme un outil automatique pour faire un clone de Call of Duty. Ne vous y laissez surtout pas prendre, c’est une vision particulièrement erronée de la réalité. En particulier, un moteur comme UDK ou Unity ne vous force pas à faire un type de jeu particulier, la seule limite est d’être en 3D : que ça soit un jeu de course, un FPS, une simulation, c’est possible et pas moins adapté dans un cas que dans l’autre. Gwennaël ARBONA 15 Comment réaliser un jeu vidéo 4.6. ”LE MOTEUR DE JEU FOURNIT LE CONTENU, ON N’A PAS BESOIN D’EN CRÉER” Effectivement, un moteur tel qu’UDK propose une base de travail très conséquente et suffisante pour créer un jeu basique. Mais vous ne devez surtout pas vous en tenir là, ce n’est pas l’objectif ! Il faut voir ces éléments comme des démonstrations, des aides au développement pour créer votre propre contenu. Figure 8 – Le style visuel, c’est ça qui décide de la personnalité de votre jeu Un jeu vidéo, ce n’est pas juste un programme, c’est une œuvre artistique et ludique et vous devez être bien conscient qu’en utilisant des éléments créés par d’autres, vous enlevez toute âme à votre création. C’est bien dommage ! Prenez le temps de développer votre contenu, recrutez d’autres créateurs pour vous appuyer. Dans le cas de DeepVoid, l’intégralité du contenu visuel a été réalisé par l’équipe. Aucun élément extérieur n’a été admis, l’usage des ressources du moteur s’est restreint aux animations du personnage. C’est un choix qui entraı̂ne beaucoup de travail, mais qui permet aussi de réaliser un jeu de qualité. Gwennaël ARBONA 16 Comment réaliser un jeu vidéo 4.7. ”ON PEUT FAIRE AUSSI BIEN SANS MOTEUR DE JEU, EN FAISANT TOUT SOI-MÊME” C’est un discours ambitieux, et malheureusement irréaliste. En pratique, il faut réellement des années de développement pour créer un jeu vidéo si on ne s’appuie pas sur un environnement existant, et à ma connaissance les projets 3D amateur réalisés de la sorte ont un taux d’échec particulièrement dramatique. Le plus grand piège, c’est de vous imaginer que ça sera facile avec un moteur de jeu, et que pour avoir du challenge, il faut faire tout soi-même. C’est une erreur terrible, et souvent fatale à des projets qui autrement auraient pu fonctionner. Même avec un moteur, vous avez encore des mois de travail devant vous, à plusieurs. Souvent, les moteurs de jeu intègrent des solutions propriétaires, fermées et que vous ne trouverez pas ailleurs. Le choix de travailler avec vous appartient, mais leur statut de leader est bien souvent mérité : compression vidéo, génération de verdure, interfaces ou optimisation, ce genre de domaine d’expertise demande énormément de travail. Sachez mettre à profit un outil existant plutôt que de tout refaire vous-mêmes. Evidemment, les technologies comme Irrlicht ou OGRE ne sont pas inutiles. Elles permettent eux aussi, dans l’absolu, de réaliser un jeu vidéo et ont un très grand intérêt pédagogique. Il existe d’ailleurs quelques projets fonctionnels basés sur ces technologies, sans moteur de jeu complet. Mais il faut bien voir deux éléments distincts : l’aspect pédagogique de son travail, ce qu’on va apprendre et l’objectif, ce qu’on va réaliser au final. Ces deux aspects s’opposent dans une certaine mesure : on ne peut pas gagner sur l’un sans perdre sur l’autre, pour un temps donné. Quand on réalise un site Web, on peut faire les deux sans que ça prenne des années, mais dans le cas d’un jeu vidéo c’est une toute autre histoire. Si le résultat importe peu et qu’on veut apprendre, employer OGRE ou carrément OpenGL est une excellente idée, mais nuit considérablement aux chances de succès sur le plan du jeu lui-même tel qu’un joueur le percevra, ainsi qu’à sa qualité technique : rendu, performances, fiabilité... A vous de choisir votre objectif : n’espérez cependant pas concilier les deux. Gwennaël ARBONA 17 Comment réaliser un jeu vidéo 5. En résumé 5.1. COMMENT NE PAS RÉUSSIR UN PROJET DE FPS ? La provocation est volontaire : la vaste majorité des projets de ce type échouent. Le plus curieux, c’est qu’ils échouent absolument tous de la même façon : – une équipe lance son projet, typiquement avec 3 ou 4 membres ”passionnés” et ”motivés à fond” qui se donnent ”tout le temps qu’il faudra” pour réussir, avec un ou deux game designers ; – ils ont un site Web sur un hébergeur gratuit, un nom, un logo, un scénario, et souvent 3/4 objets 3D montrés dans un modeleur 3D ; – ils ont déjà choisi les solutions techniques, typiquement OGRE ou Irrlicht ; – ils lancent un recrutement pour embaucher un compositeur, des artistes 3D, etc ; – et 3 mois plus tard, le projet a disparu. Alors, c’est peut-être un peu prétentieux d’en tirer une généralité, tout n’est peut-être pas à jeter dans un tel cheminement. Ce qui est certain, c’est que c’est le scénario type, et que ce scénario a une forte tendance à échouer. Typiquement, les news s’espacent, les threads de forum s’oublient, plus personne n’entend parler du projet. Il est rare que le projet soit officiellement abandonné, ce qui d’ailleurs est bien dommage. Dommage pour l’équipe qui n’a sans doute pas tiré la leçon et s’est découragée, dommage pour les autres qui ne peuvent pas prendre exemple. On n’insistera jamais assez sur la proportion de projets qui échouent, ou du moins qui ne sont jamais jouables, finis, distribués au public. Dire que c’est le cas de 99% d’entre eux est probablement un euphémisme. Il ne faut pas abandonner pour autant, il faut simplement prendre conscience des problèmes et s’armer en conséquence. Gwennaël ARBONA 18 Comment réaliser un jeu vidéo 5.2. COMMENT RÉUSSIR UN PROJET DE FPS ? Pour le coup, c’est un avis complètement personnel que je vais exposer. Je l’espère éclairé, mais il faut plutôt le voir comme un exemple de quelque chose qui a marché plutôt que le seul moyen de réussir, qu’il n’est certainement pas. Reprenons l’histoire de DeepVoid, c’est en fait l’exact contraire de l’exemple précédent : – un développeur seul lance son projet, avec pour ambition de faire une simple ébauche ; – jusqu’à la moitié du développement, le projet n’a ni nom, ni logo, ni site Web, il n’aura jamais de scénario ou d’univers ; – le jeu s’appuie sur le moteur Unreal, via UDK, et est réalisé avec des outils comme Photohop, Flash, 3DS Max, Perforce ou Eclipse ; – le premier recrutement se fait à un moment où un prototype est déjà jouable en ligne ; – il faut plus d’un an de développement pour commencer à parler de publication, mais le projet aboutit, avec une ambition nettement revue à la hausse pendant le développement. En une phrase, ce que je recommande à n’importe quel développeur, c’est d’aller de l’avant en permanence. Si vous voulez quelque chose, faites-le vous-mêmes ! Peu importe que ça soit laid ou mal fait, faites-le. Si votre projet est intéressant, d’autres viendront pour le refaire proprement. Que ça soit pour du son, du FX, de l’interface ou du level design... N’attendez pas, agissez. Alors évidemment, ça implique de passer beaucoup de travail. Pour DeepVoid, il m’a fallu pratiquer quatre langages différents, apprendre Flash, Windows Server, et résoudre des problèmes aussi variés que le level design ou l’installation chez le joueur, avec une équipe répartie sur deux continents. Mais ça, ça fait partie du jeu. 5.3. CONCLUSION Vous vous lancez dans un travail difficile, mais passionnant. Au terme de ce document, vous avez (je l’espère) une vision un peu plus claire de ce qui vous attend. Il ne faut pas que ça vous démotive pour autant : comme je le dis plus haut, créer un jeu vidéo n’a jamais été aussi accessible. C’est une question de temps, d’organisation et de bonnes décisions techniques. Le maı̂tre mot pour avancer, c’est de communiquer. N’ayez pas peur de demander des critiques, des retours, des conseils. N’ayez pas peur de poster sur le forum d’un logiciel pour demander pourquoi votre solution ne fonctionne pas. Et surtout, n’ayez pas peur qu’on vous vole vos idées ! On vous les volera de toute façon si elles sont bonnes, et si vous avez suivi, vous devez commencer à voir que l’idée ne fait pas le résultat. Le mot de la fin ? Bon courage ! Les images employées dans ce document sont extraites du projet DeepVoid et ont été réalisées par l’équipe du jeu. Pour en savoir plus, visitez le site officiel sur http ://deepvoid.eu . Gwennaël ARBONA 19