Quel moteur de jeu choisir ?

Image Quel moteur de jeu choisir

Les logiciels de création de jeux vidéo se sont démocratisés au cours de ces dernières années. Ils permettent aux moins techniques d’entre nous de concevoir des jeux de façon simple et accessible. Ces logiciels s’appellent communément des moteurs de jeu.

Mais un moteur de jeu, c’est quoi ?

Un moteur de jeu désigne une ensemble de codes pré-écrit dont la structure logicielle incite son utilisateur à mettre en place une architecture spécifique pour concevoir un jeu. Un moteur est donc constitué de plusieurs bibliothèques logicielles appelées « Framework ». C’est le cas pour libGDX qui est composé d’OpenGl (pour la partie graphique), d’OpenAL (pour la partie sonore) et d’OpenCL (pour le traitement parallèle). Un moteur de jeu s’accompagne parfois d’une interface graphique. C’est le cas pour Unity, RPG Maker et bien d’autres.

Un moteur n’est pas obligatoire pour développer un jeu.
Toutefois, cet outil est vivement recommandé pour deux raisons :

  • Un moteur de jeu fait gagner énormément de temps. En effet, l’outil embarque un ensemble de bibliothèques gérant le rendu, l’animation, le son, la physique, les composants d’une interface utilisateur… Le développeur n’a donc pas à se soucier de l’implémentation du code de bas niveau. (Le bas niveau désigne un degré de programmation proche du langage machine. Sans abstraction). La structure logicielle étant aussi prédéfinie, pas besoin de réfléchir trop longtemps sur l’architecture à adopter.
  • Un moteur de jeu fournit de l’expertise. Les algorithmes des moteurs du marché sont optimisés pour développer des jeux avec de bonnes performances (Certains sur plusieurs plateformes). Ainsi, les méthodes pré-écrites sont très souvent étudiées pour être plus (ou au moins aussi) efficace que celles qu’un concepteur de jeu aurait pu écrire. (Toutefois, Il peut être intéressant de se renseigner sur les notions exploitées par les moteurs pour comprendre complètement comment les jeux fonctionnent.)

 

Son prix, ses fonctionnalités, sa capacité multiplateforme, son orientation 2D / 3D et le langage de programmation choisi sont autant de critères à prendre en compte pour décider du moteur de jeu à utiliser.

Quels sont les principaux moteurs de jeu du marché ?

Passons maintenant en revue les principaux logiciels de création de jeu (avec et sans interface graphique).

Unreal Engine

Unreal Engine est un moteur de jeu 3D gratuit, multiplateforme, développé par Epic Games. Il est reconnu pour ses performances et ses effets graphiques. En effet, le moteur est capable de générer des millions de particules dans un environnement composé de lumières dynamiques. Depuis la version 4.3, Unreal Engine dispose d’un système de création de jeu 2D et 2D/3D hybride appelé « Paper 2D ». La bibliothèque Quixel Megascan contient plus de 10 000 assets utilisable gratuitement dans Unreal Engine. Le logiciel est utilisé par de grands studios AAA. Entre autre, le jeu vidéo BioShock Infinite développé par Irrational games a été réalisé avec Unreal Engine 3.

Image du logiciel Unreal Engine.
Le logiciel Unreal Engine.

Développeur : Epic Games.
Langage : C++ (depuis Unreal Engine 4). Le langage précédemment utilisé s’appelait UnrealScript, abandonné aujourd’hui. UnrealScript se rapproche syntaxiquement du Java. Il a pour but d’être simple d’utilisation mais le langage est 20 fois plus lent que le C++.
Prix : Gratuit. 5% de Royalties à partir du moment où votre jeu dépasse 1 000 000 $ de revenus bruts ! (Autant dire qu’on a de la marge ^^) .
Jeux réalisés : La série des Bioshock, Alice madness return, Antichamber, XCOM 1 et 2, Outlast, SMITE, Life is Strange et bien sur Paragon, le MMO d’EpicGames.

CryEngine

CryEngine est un moteur de jeu 3D gratuit, multiplateforme, développé par Crytek. À la base utilisée pour développer la série Far Cry (et plus généralement les jeux de tir à la première personne), le logiciel aspire à devenir un moteur de jeu généraliste puissant et de plus en plus accessible.

Image du logiciel CryEngine
Le logiciel CryEngine.

Développeur : Crytek.
Langage : C++.
Prix : Gratuit.
Jeux réalisés : Far Cry, La série des Crysis, Evolve, Prey.

Unity

Unity est un logiciel de création de jeux vidéo 2D et 3D. Il offre un éditeur de niveau et un framework de développement. Unity dispose aussi d’un store d’assets, gratuits et payants, assez variés. La version gratuite (appelée « Personal ») vous permet de vendre vos produits. Toutefois, à partir de 100 000 € de revenu perçu par an par vos jeux, vous devez passer à une version payante.

Image du Logiciel Unity 3D
Le logiciel Unity 3D.

Développeur : Unity Technologies.
Langage : C#.
Prix : Gratuit tant que les revenus n’excèdent pas 100 000 € par an.
Jeux réalisés : Hearthstone, Super Mario Run, Furi, Firewatch, Keep talking and nobody explodes.

Godot

Nouveau sur le marché depuis janvier 2017, Godot est un moteur de jeu gratuit, libre, multiplateforme et prometteur. Doté d’une interface graphique, le logiciel est capable de concevoir des jeux 2D et 3D.
Quelques reproches cela dit : GDScript, le langage exploité par l’outil, est spécifique au logiciel et n’est pas encore bien connu. Des fonctionnalités présentes dans les moteurs concurrents (notamment les effets artistiques) manquent aussi à l’appel. Cependant, le logiciel continue de se développer et une implémentation C++ et C# devrait voir le jour prochainement.

Image du logiciel Godot.
Le logiciel Godot.

Développeur : La communauté de Godot Engine.
Langage : GDScript (syntaxe proche de Python).
Prix : gratuit (licence MIT).
Jeux réalisés : Godot est sorti en janvier 2017, attendons un peu !

RPG Maker

Conçu pour réaliser des RPG 2D au style japonais sans programmation, RPG Maker est idéal pour développer des jeux similaires aux anciens Final Fantasy. Avec un peu de développement, il est possible de réaliser un Zelda like comme ceux de la Game Boy Color. Le slogan du logiciel peut se traduire par « Enfantin d’utilisation, suffisamment puissant pour un développeur ». La dernière version, RPG Maker MV, permet d’importer des plugins.

Image du logiciel RPG Maker MV.
Le logiciel RPG Maker MV.

Développeur : Enterbrain
Langage : Ruby.
Prix : Payant. De $24.99 à $79.99 selon les versions. Version d’essai gratuite.
Jeux réalisés : To the Moon.

GameMaker

GameMaker est un moteur de jeu 2D multiplateforme permettant l’usage d’entités 3D. La version payante est nécessaire pour exporter facilement un jeu sur mobile, Ubuntu, Mac ou sur le web. Le logiciel dispose de son propre langage de programmation appelé GML (Game Maker Language).

Image du logiciel GameMaker.
Le logiciel GameMaker.

Développeur : YoYo Games.
Langage : GML (Game Maker Language).
Prix : Version gratuite (pour exporter sur windows) et version payante à partir de $149.99 (hors prix des modules d’exportation). Compter $449.98 pour exporter sur Android).
Jeux réalisés : Undertale, Hotline Miami, Nidhogg, Rivals of Aether, Spelunky.

Livres :

MonoGame

MonoGame est un framework 2D / 3D gratuit et open source qui reprend les classes de la bibliothèque abandonnée : Microsoft XNA. Elle est basée sur la bibliothèque Mono la rendant ainsi multiplate-forme.

Image du jeu Bastion développé par Supergiant Games avec MonoGame.
Image du jeu Bastion développé par Supergiant Games avec MonoGame.

Développeur : MonoGame Team.
Langage : C#.
Prix : Gratuit.
Jeux réalisés : Bastion, Fez, Terraria, TowerFall Ascension, Apotheon.

LibGDX

LibGDX est un framework open source multiplate-forme Desktop, Android, iOS et HTML5. Basé sur LWJGL qui est lui-même basé sur OpenGL, il offre des classes graphiques permettant de réaliser des jeux 2D et 3D.

Image du logiciel de création de projet LibGDX.
Le logiciel de création de projet LibGDX.

Développeur : Badlogic Games.
Langage : Java.
Prix : Gratuit.
Jeux réalisés : Les démos de Five Nights at Freddy’s et mon jeu : Lights.

Voir aussi…

Construct 2 : Moteur de jeu 2D multiplateforme basé sur HTML5 développé par Scirra. Version gratuite limitée.
Clickteam Fusion : Moteur de jeu 2D multiplateforme développé en France. Le principe du moteur repose sur le drag and drop et la création d’événements (à l’instar de Construct 2). Version gratuite limitée.
Xenko : Open source, Xenko s’impose comme le concurrent direct de Unity. Il implémente le langage C#.
jMonkeyEngine : Moteur de jeu 3D Java doté d’une interface graphique.
Blender Game Engine : Le moteur de jeu intégré au logiciel de modélisation et d’animation 3D : Blender. Il implémente le langage Python.
PyGame : PyGame est une bibliothèque Python libre multiplate-forme conçue à partir de la bibliothèque C : SDL.
M.U.G.E.N : moteur de jeu de combat 2D implémentant le langage C.
Dreams : À la frontière entre un moteur de jeu et un jeu vidéo, Dreams se présente comme un moyen ludique de s’initier au game design.

Conclusion.

Vous trouverez ci-dessous le récapitulatif de mon étude sur les moteurs de jeu principaux (cliquez sur l’image pour l’agrandir) :

Récapitulatif des Moteurs de Jeu.
Récapitulatif des Moteurs de Jeu.

Un moteur permet ainsi de combler vos lacunes. Il vous évite d’avoir à étudier complètement les composants d’un ordinateur et sa structure logicielle vous oriente vers l’architecture à adopter. Un moteur est optimisé, réutilisable et fait gagner du temps. Il n’y a donc aucune raison de ne pas utiliser de moteur de jeu.

Auteur : Thibaud

Je suis passionné de création de jeux d'aussi loin que je me souvienne. Diplôme d'Ingénieur en poche, j'étudie actuellement les éléments qui permettent de réaliser un bon jeu dans le but de concevoir mes prochains titres. J’espère ainsi échanger avec des passionnés et constituer une communauté francophone de Game Design.

18 réflexions sur « Quel moteur de jeu choisir ? »

    1. Effectivement, il semble que les démos gratuites de five night at freddy’s sont faites avec libgdx (j’ai vérifié dans les apps) mais les jeux complets sont réalisés avec Clickteam Fusion.
      Merci, c’est rectifié 🙂

  1. Bonjour,
    je souhaiterais créer un jeu mais je ne sais pas quel est le moteur le plus adapté.
    Ce moteur devra gérer l’intelligence artificielle le réseau.
    C’est un jeu de conquête.
    Mon jeu sera multijoueurs (tout le monde dans un univers) et sera un jeu de stratégie qui continuera quand on est absent ( la gestion sera alors prise par l’intelligence artificielle selon les paramètres que l’utilisateur aura choisi ).
    Merci de votre réponse,
    Paul

    1. Salut Paul,

      Pour la partie réseau, tous les moteurs de jeu décrits dans l’article disposent d’un module réseau, à part peut-être rpg maker.
      Après, au vu de l’architecture que tu décris, tu as besoin d’un serveur de jeu.

      L’intelligence artificielle et toutes les décisions prises par le jeu doivent être effectuées du côté de ton serveur de jeu (pour éviter la triche, entre autres).
      Il n’y a pas de moteur pour ça. Tu vas devoir coder ton propre serveur d’applications et souscrire un abonnement à un serveur dédié. (Pour te donner une idée, OVH propose des offres entre 60 et 115€~ par mois.)

      Bon courage !

  2. Merci pour votre réponse.
    Etant donné que ce n’est pas dans mes moyens (je suis collégien), je vais revenir au projet initial (j’ai eu l’idée de faire mon propre jeu car des camarades de classe m’on demandé de participer à leur projet de jeu, ce que je vais faire). Le jeu est assez compliqué à résumer mais concernant le logiciel le plus adapté, il n’y a aucun doute : CryENGINE . En revanche, je n’ai trouvé aucun tutoriel français. Connaissez-vous un tutoriel français complet (qui apprend toutes les fonctionnalités ou presque ) ? Merci

    1. En français sur CryENGINE, il n’y a pas grand-chose, effectivement. (Même si j’ai pu trouver quelques séries sur youtube en tapant « cry engine tuto fr ». À voir ce qu’ils valent…)

      La documentation la plus complète et la plus précise que tu puisses trouver est sur docs.cryengine.com mais c’est uniquement en anglais.
      De manière générale en informatique, la grande majorité de la doc est en anglais. Tu n’y échapperas pas donc autant t’y mettre tout de suite.

      Tu peux aussi te tourner vers les livres (toujours en anglais) :
      CryENGINE 3 Game Development: Beginner’s Guide
      Mastering CryENGINE
      CryENGINE Game Programming with C++, C#, and Lua

      Maintenant, si c’est votre premier projet en équipe et que vous ne maîtrisez pas encore bien l’anglais/la programmation, je vous conseille fortement de commencer par un petit jeu complet plutôt qu’un grand truc dont vous ne verrez jamais le bout. (Voir mon article : « Alors comme ça tu veux réaliser un jeu vidéo ?« .)

      Bon courage et bons développements !
      Thibaud.

    1. J’aurais tendance à répartir les tâches selon les domaines de compétence de chacun. Les échanges se font ainsi à la frontière des domaines d’expertise. (Exemple : le développeur communique à l’avance les dimensions des sprites au graphiste.)

      L’équation se complique lorsque plusieurs personnes maîtrisent le même domaine. Elle se complique encore plus lorsqu’une compétence manque à l’appel dans l’équipe, car il va falloir que les membres sortent de leur zone de confort.

      Je t’invite à te renseigner sur la méthode de management agile (scrum) ou waterfall même si aucune des deux ne semble être optimal pour développer des jeux. (Il n’y a pas de méthode magique, il n’y a qu’à voir l’état de l’industrie du jv pour s’en rendre compte…).

      Parmi les principes de travail en équipe qui s’appliquent à tous les membres du groupe, il y en a 3 que je considère primordiaux :
      – La bienveillance : clairement, on est pas là pour crier haut et fort qu’on est plus efficace que Jean-claude. Ni pointer du doigt les retards/erreurs des uns et des autres. Il faut partir du principe que le groupe fait de son mieux et garder une certaine forme de modestie/humilité. Il est du devoir de chacun de maintenir une bonne ambiance pour passer un bon moment. Ajouter un salon fun (déconnecté des questions relatives au jeu) au discord du projet peut-être une bonne idée par exemple.
      – Produire raisonnablement, en établissant une liste de 2 à 5 tâches par personne à réaliser sur deux semaines par exemple (selon les dispos de chacun). Dans la mesure du possible, sélectionner des tâches qui font progresser le MVP. Pendant ces deux semaines, les membres doivent continuer d’échanger et rester à l’écoute des questions.
      Le but n’est pas de faire les choses pour obtenir la reconnaissance des autres membres du groupe. Le but est de faire les choses pour vous et pour le jeu.
      – Maintenir la motivation : Il y aura des hauts et des bas et c’est complètement humain. Dans ces moments là, il faut savoir se remotiver entre nous. La pire chose qui puisse arriver est de se sentir oppressé par les obligations du projet car les membres n’auront plus qu’une envie : faire autre chose que de développer le jeu.

  3. Excellent résumé de 2017. Cela serait génial d’actualiser les informations en cette année 2020.

    Je pense à Unreal Engine qui devient gratuit sous 1 million de dollars de recettes par durée de vie d’un même jeu, de leur quixel megascan gratuit avec plus de 10.000 assets, etc.

    Je pense aussi à insérer Dreams de Playstation qui peut être une pertinente porte d’entrée ludique pour les enfants et grands enfants qui souhaitent s’initier avec du tout en un ergonomique et intuitif et collaboratif.

    1. Merci beaucoup Ambre pour ton retour ! En effet, cet article méritait un petit rafraichissement (voila qui est fait :)).

      J’ai pris en compte tes remarques sur Unreal Engine et j’ai ajouté une phrase sur Dreams dans la section « voir aussi ».

      1. Vous êtes génialissime. ^^ « Vers l’impeccable et au-delà ! »

        Parmi les documentations (articles et vidéos) du Net Fr sur le sujet des moteurs que j’ai lu et vu jusqu’ici, votre article est le plus complet tout en restant éloquent & pertinent. Et j’étends même cela à de nombreux articles du Net En.

        J’ai même commencé à lire d’autres articles de votre plume, comme celui sur le Cel-shading, le Document de Game Design, les Langages de Programmation.

        Je prospecte pour éventuellement me lancer dans l’aventure créative, et j’avoue que c’est un délice que de voir votre enthousiasme communicatif. Avez-vous créé des oeuvres interactives, ou participé à en créer ? Sous quels moteurs & modeleurs/animateurs ?

        1. Merci énormément ! Je suis content que mon site vous plaît (même si tous ces compliments me font développer un syndrome de l’imposteur ^^)

          J’ai commencé par faire quelques jeux flash en ActionScript 3 avant de développer Lights, en Java avec libGDX.

          Aujourd’hui, j’utilise essentiellement Unity et Blender. Il m’arrive (rarement) de poster mes défis du moment sur twitter ^^

          1. Ahahah Je vois que les biais cognitifs n’ont pas de secret pour vous. Vous n’avez pas que mis de la lumière dans votre jeu, mais aussi dans votre subconscient. Respect !

            Oui, je vois que l’activité sur votre site s’est estompé ces derniers mois. Pourtant je ne sens pas que vous ayez perdu le « flot » de la motivation. ^^

            Quand je vois
            • les avantages qu’ont Unreal Engine 4 et qu’auront Unreal Engine 5, je suis très « tenté » de commencer (et finir) par lui. Ceci dit je ne sais pas encore coder en C++, mais il y a le BluePrint comme pied à l’étrier plutôt engageant.
            • Après il y a Dreams qui est vraiment génial (pouvant être aboutir à une qualité visuelle époustouflante), mais encore faut-il avoir la console (les développeurs disent qu’ils porteront peut être le jeu sur PC si Sony est d’accord).
            • Unity a une boîte à outil un peu médiocre, c’est ce qui me chiffonne, malgré que le C# soit aussi encourageant que la portabilité multiplateforme très étendue.

            Autrement, vous avez le souhait de créer d’autres jeux (2D ou 3D) ? Il y a des jeux qui vous ont inspiré (touché au coeur) et qui vous donnent l’envie à votre tour de transmettre des messages ?

          2. Tu peux essayer de tester Unreal, Dreams et Unity. Amuse-toi à créer des petits trucs, ça peut t’aider à trouver celui qui est fait pour toi.

            Les jeux qui m’ont le plus marqué dernièrement sont Céleste, Life is Strange et Detroit Become Human. Avec des messages assez différents (la peur de l’echec pour Céleste, l’attachement dans Life is Strange et la tolérance pour Detroit…)
            Je souhaite (et je suis en train de) créer un jeu en 3D que j’ai en tête depuis un moment déjà :p

  4. Merveilleuse nouvelle que d’entendre cette annonce de projet. Je ne doute pas qu’il y aura du génie dans son ADN. ^^

    Ah je vois, tu aimes tout ce qui sort de l’ordinaire. C’est pareil pour me concernant, j’aime particulièrement tout ce qui est innovant et va jusqu’au bout de son concept. Vu que cela peut vous nourrir au niveau inspiration
    • récemment j’ai aimé certains aspects de « Pode », « A Short Hike », « Outer Wilds », « Baba Is You » ;
    • et plus anciennement de « SnakePass », « SnakeBird », « Blackhole » et « Out There Chronicles ep1&2 » (sur mobile) que vous devriez aimer (narration par FibreTigre, un type plein d’énergie vivante comme vous).
    * Le créateur de Celeste a participé à créer le jeu Offspring Fling ! (de Kyle Pulver), cela peut vous brancher car cela peut s’avérer assez technique.

    PS : A notre prochain échange sur un nouvel article. ^^

Répondre à Paul Annuler la réponse

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *