En tant que développeur de jeux en herbe, c'est la plus grande question à laquelle vous devez répondre avant de commencer votre projet. Votre moteur de jeu affecte la façon dont vous construisez votre jeu, les types de problèmes que vous pouvez rencontrer et même le montant que vous gagnez.
Unité
Unité est le premier sur cette liste pour un certain nombre de raisons. C'est de loin le moteur le plus populaire. Vous constaterez que tout titre indépendant aléatoire fonctionne probablement sur Unity. Il est soutenu par une tonne de soutien de la communauté et est probablement l'un des plus faciles à apprendre. Cela lui donne un peu la réputation d'être le moteur des jeux 2D à petit budget, mais ce n'est pas tout à fait vrai. Unity est très accessible, il s'habitue donc à faire de bons jeux et des jeux moins bons. C'est au développeur de rendre le jeu bon, pas au moteur.
Unity adopte une approche très pratique de la conception des moteurs. Il utilise C #, un langage fortement typé qui est beaucoup plus digeste que C ++ (pour la plupart des gens). Le moteur gère les choses qui devraient être reléguées au moteur et évite de vous imposer un schéma. Les collisions, le rendu et la gestion du cycle de vie des objets sont tous gérés. Il vous reste à construire la plupart des autres éléments.
Vous devrez certainement apprendre le C # pour utiliser Unity. Bien qu'il existe quelques extensions de script visuel dans le magasin de ressources, elles ne sont pas aussi bien intégrées que les plans d'UE4. Une chose qui est gérée avec un graphique est le nouveau Graphique Shader fonction, qui vous permet d'écrire des fonctions de shader sans toucher au code.
En plus de cela, le magasin de ressources d'Unity est formidable et bien plus grand que tout autre moteur de jeu. Il existe de nombreux actifs gratuits que vous pouvez utiliser, ainsi que des actifs payants que vous pouvez acheter. Ceci est particulièrement utile si vous n'êtes pas très artiste et que vous souhaitez payer quelqu'un d'autre pour modéliser les choses pour vous. Vous trouverez probablement quelque chose d'approprié dans le magasin de ressources.
De même, le support de la communauté pour Unity est excellent. C’est l’un des moteurs les plus importants, en particulier parmi les développeurs indépendants. Vous trouverez de nombreux didacticiels sur la création de différents types de jeux, ainsi que des exemples prédéfinis dans le magasin de ressources.
Une chose qui n’est pas très bien gérée par Unity est le multijoueur. Leur bibliothèque UNet est compliquée et bientôt obsolète. Ils sont actuellement travailler sur une solution, mais dans l'état actuel des choses, le multijoueur intégré est assez compliqué.
Quel que soit votre cas d'utilisation, vous ne pouvez probablement pas vous tromper en choisissant Unity pour votre jeu. C'est gratuit si vous gagnez moins de 100 000 dollars par an, ce qui le rend idéal pour les développeurs indépendants. Si vous gagnez plus que cela, c'est 420 USD par an et 1 500 USD si vous gagnez plus de 200 000 USD.
Irréel
Unreal est le moteur du Fortnite d'Epic Game. Contrairement à l’approche pratique de Unity en matière de conception de moteurs, Unreal s’efforce de faire tout ce qui est en son pouvoir pour vous faciliter la tâche. Cela lui donne un peu la réputation d’être maladroit et difficile à apprendre, mais ce n’est pas tout à fait vrai.
Par exemple, Unreal propose un certain nombre de classes pour vous aider dans les tâches courantes, et vous aurez beaucoup plus de facilité si vous essayez de vous adapter à leur schéma. L'une de ces classes est «PlayerController», qui gère les actions des joueurs et est largement utilisée. Cette classe en particulier sera utile pour presque tous les jeux, mais d'autres classes telles que «Personnage» peuvent causer de la frustration à certaines personnes.
La classe Character est conçue autour de jeux de tir 3D à la première personne et vous oblige à utiliser un composant de collision de capsule et le système de mouvement de personnage intégré d'Unreal, qui ne conviendra certainement pas à tout et est ennuyeux à étendre. Mais, ce n'est ici que pour les gens qui seront entièrement satisfaits du mouvement de base. Si vous ne l’êtes pas, Character est un enfant de la classe «Pion» (utilisé pour l’objet joueur lui-même), vous pouvez donc utiliser cette classe à la place et gérer le mouvement comme vous le souhaitez.
Avec cela à l'écart, parlons de la meilleure fonctionnalité d'Unreal: Blueprints. Blueprints est un fantastique langage de script visuel qui vous permet de créer des jeux sans toucher au code. Unreal fonctionne sur C ++, et vous êtes certainement autorisé à utiliser les deux, mais les Blueprints sont maintenant suffisamment mûrs pour que la plupart des développeurs n'aient pas à toucher un éditeur de texte à moins qu'ils ne le souhaitent vraiment.
Voici à quoi ils ressemblent:
Bien qu'il y ait un peu de surcharge de performance par rapport au C ++ natif, ce n'est pas drastique, et vous ne le remarquerez que lorsque vous faites quelque chose que vous ne devriez pas faire de toute façon (comme exécuter d'énormes fonctions à chaque tick ou engendrer un milliard d'acteurs ).
Les plans ne conviennent pas à tout le monde, mais ils sont parfaits pour les personnes qui souhaitent créer des jeux sans beaucoup de connaissances en programmation. Il s'agit toujours de codage, et vous devrez toujours vous familiariser avec les concepts de base de la programmation pour en faire bon usage, mais ils sont beaucoup plus compréhensibles, d'autant plus que C ++ est la principale alternative.
Si vous travaillez en C ++, le code source complet du moteur est disponible gratuitement et vous êtes libre d'étendre le moteur comme bon vous semble.
Le multijoueur est bien géré et intégré au moteur dès le début. Les variables peuvent être définies pour se répliquer entre les clients, et tout ce qui hérite d'Actor répliquera le mouvement entre les clients. Les fonctions peuvent être définies pour s'exécuter sur le serveur, en multidiffusion vers tout le monde ou répliquées sur le client propriétaire dans le cas d'acteurs qui existent sur le serveur et le client.
Cette fonctionnalité est beaucoup plus de niche, mais elle est suffisamment cool pour que nous devions la mentionner. L'éditeur lui-même offre une prise en charge complète de la réalité virtuelle, ce qui vous permet de créer des niveaux avec vos mains dans un espace 3D, à condition que vous disposiez d'un casque VR.
En ce qui concerne les prix, Unreal est gratuit, mais a une redevance de 5% pour chaque vente après 3000 $ par trimestre. Si vous libérez sur Epic Games Store, ces frais de redevance sont annulés.
Godot
Godot est un moteur de jeu gratuit et open source. Il est conçu pour les jeux 2D et 3D et constitue une alternative décente à Unity et Unreal (les deux plus gros moteurs).
Godot prend en charge plusieurs langues. Il existe un langage de script visuel, une prise en charge C ++, une prise en charge C # et l'option de GodotScript, leur propre langage dont la syntaxe est similaire à Python.
La prise en charge 2D de Godot fonctionne en coordonnées de pixel, contrairement à Unity et Unreal qui utilisent des flottants pour représenter les positions. Les deux ont leurs avantages, mais les coordonnées de pixels absolues seront meilleures pour la plupart des jeux de pixel art. Les cartes et l'éclairage normaux sont intégrés au système 2D.
Le rendu 3D utilise une configuration de rendu physique, il ne manque donc pas trop derrière Unreal et Unity HDRP, et peut toujours être utilisé pour créer de beaux jeux 3D. Le langage shader est basé sur GLSL, il devrait donc être facile à utiliser.
Godot est entièrement multiplateforme, comme Unity et Unreal, avec la prise en charge d'iOS, Android, Windows, macOS et Linux, ainsi qu'une prise en charge Web avec HTML5 et WebAssembly.
Autres moteurs
Il existe de nombreux autres moteurs, en particulier ceux en 2D. Certains sont simplement des bibliothèques qui fournissent un rendu, comme L'AMOUR et PyGame. Si vous voulez vraiment juste un moyen de dessiner des éléments à l'écran et que vous ne vous souciez pas de grand-chose d'autre, ces types de moteurs peuvent être utiles.
GameMaker Studio et Cocos2D sont tous deux des moteurs 2D avec des éditeurs complets. Cependant, nous ne recommandons pas de les utiliser pour des projets plus complexes, en particulier lorsque les autres moteurs bénéficient d'un soutien et d'un soutien de la communauté beaucoup plus importants. Godot serait une bonne alternative aux jeux 2D.
Le seul autre gros moteur 3D disponible pour un usage public est CryEngine, qui est actuellement maintenu sous AWS Lumberyard.