Amazon Lumberyard

Amazon Lumberyard

Game Engine

_________________________________________________________________________________

Sommaire

I – Introduction générale :

A – Qu’est-ce qu’un ‘Game Engine’ (Moteur de jeu) ?

B – Les spécificités d’un Game Engine

C – Différents exemples et utilisations générales

II – Qu’est ce que le Amazon Lumberyard ?

A – Présentation générale du moteur (Histoire..)

B – Son utilisation basique

C - Ses spécificités avec exemples

III – Conclusion

Pour commencer, une introduction générale de ce qu’est un moteur de jeu (Game Engine) s’impose.

 

Comme le nom l’indique, un ‘moteur’ de jeu est ce qui permet au jeu de tourner. Cela pourrait s’arrêter la mais c’est bien plus compliqué que ça.

En clair, c’est un ensemble de composants logiciels qui effectue différent calculs (géométrie, physique, visuels, audio..) utilisés dans les jeux vidéos, d’où la suite de son nom.

 

Les moteurs de jeux ont beaucoup évolué au fil des années, et on peut dire que les plus modernes sont très impressionnant. On peut dire que les moteurs de jeux agissent comme le moteur d’une voiture, sans un moteur de jeu, il n’y a pas vraiment de ‘jeu’. C’est de la qu’on en viens au spécificités de ceux-ci.

 

Dans un moteur de jeu, il y a aussi d’autres types de moteurs, comme un moteur 3D qui peut être créées spécialement pour le moteur de jeu, ou réutilisé (Unity, Frosbite 2, Unreal Engine..) si le jeu est en 3D, moteur de son (Open AL, Direct Sound).. Un peu pour chaque composant nécessaire à la création du jeu en question.

Exemple de différents composants d’un moteur de jeu 3D sous Linux

Utilisant OpenGL, des librairies, des interfaces, un ‘moteur’ 3D (Mesa 3D)

Mais il faut s’avoir aussi qu’aujourd’hui, un moteur de jeu est aussi en lui-même (généralement aujourd’hui) une interface intelligente qui permet aux développeurs d’une équipe de ne plus s’attarder sur des problèmes informatiques mais plutôt au déroulement du jeu en lui-même, de ses éléments interne (Gameplay, ou contenu général).

 

Par exemple, voilà à quoi ressemble l’interface de Unity :

On peut ici interagir avec l’interface pour arriver à ses fins, en utilisant des scripts, différents fichiers et les options disponible pour créer ce que l’on veut dans le moteur de jeu.

Il y a des moteurs de jeux plus adaptés pour un certain type de jeu, différentes ambitions, adaptés pour différents types de langages, des moteurs qui disposent de différentes spécifications comme des différents rendus, intelligence artificielle poussée, une modularité par rapport au langage utilisé, différents effets visuels.. etc. Et ils sont en constant évolution pour être le plus pratique, efficace et optimisé possible suivant le projet abordé.

Mais plus un moteur de jeu est ‘puissant’, plus il consomme les ressources de l’ordinateur du client, alors avec le temps, plus les moteurs seront évolués et puissants, plus il faudra que les développeurs optimisent le jeu en question qui l’utilise et les composants des ordinateurs devront être beaucoup plus performant.

Les moteurs sont aussi très utiles puisqu’ils offrent souvent des possibilités de visualisation en Real Time (Temps réel) pour des modifications encore plus précises par rapport aux attentes des développeurs.

 

C’est maintenant qu’on va s’intéresser à un moteur en particulier, qui a été créer à partir d’un autre moteur de jeu. Le moteur de jeu Amazon Lumberyard.

C’est un moteur de jeu très poussé qui est dérivé du célèbre CryEngine, utilisé par Crytek et qui a été utilisé pour créer des jeux révolutionnaires tel que la série des Crysis, la série des Far Cry, Evolve, à l’époque de l’évolution des technologies utilisées dans les jeux-vidéos.

Encore une fois, d’où son nom l’indique, il s’agit du moteur de jeu d’Amazon, qui peut être utilisé pour créer des jeux sur PC mais aussi sur consoles.

Tout comme Unity, Unreal Engine et de nombreux autres moteurs, il dispose d’une interface graphique (avec un petit tutoriel d’utilisation au-dessous de l’image) :

A - Entity Outliner (Surligneur d’entité) – Le surligneur d’entité répertorie les entités de composant incluses dans le niveau actuel.

B - Asset Browser (Chercheur d’assets) – Le chercheur d’assets affiche les assets (objets 3D) du projet dans une arborescence qui reflète le répertoire d'assets.

C - Perspective – La fenêtre d'affichage 3D présente l'environnement de jeu et permet de consulter, de créer et d'interagir avec les assets.

D - Entity Inspector (Inspecteur d’entité) – Le volet droit est défini par défaut sur la vue de l’Inspecteur d’entité, qui permet d'ajouter des composants et des entités, ainsi que de modifier leurs paramètres et leurs propriétés.

E - Top Toolbar (Barre d’outils du haut) – La barre d'outils supérieure offre un accès rapide aux fonctions les plus communément utilisées. On peut personnaliser la barre d'outils.

F – Console – La fenêtre de console permet de saisir les commandes pour modifier les paramètres du jeu ou exécuter des fonctionnalités, telles que la connexion à un serveur ou l'interdiction d'un joueur. La fenêtre de console affiche également des avertissements et des erreurs pour le niveau de jeu, telles que des textures et des modèles manquantes. On peut accéder à la console pendant le jeu (Real Time) en appuyant sur la touche tilde (~).

G - Bottom Toolbar (Barre d’outils du bas) – On peut utiliser le bouton ‘Go to position’ (Aller à la position) dans la barre d'outils inférieure pour naviguer jusqu'à un emplacement X, Y et Z précis dans la fenêtre d'affichage. Pour se déplacer jusqu'à un point au-dessus du terrain, On peut définir des valeurs X, Y et Z sur 1024, 1024 et 34, respectivement.

Grâce à ce genre de moteur, nous pouvons créer nos propres univers, des plus complexe soit-il avec les différentes interactions disponibles pour le développeur.

Malheureusement, il est très déconseillé de l’utiliser pour les jeux qui demandent trop de ressource et de complexité par rapport à son utilisation.

C’est malheureusement ce qu’a fait Cloud Imperium Games en utilisant le moteur Amazon Lumberyard pour développer leur jeu depuis 2016.

Mais le code source du moteur de jeu et sa gratuité permet une modification du moteur très poussé qui permet aux studios d’adapté son utilisation de façon plutôt avancée en le modifiant eux même et créant de nouvelles spécificités.

Encore, grâce à cela, CIG (Cloud Imperium Games) à pu adapter le moteur de jeu au projet et ont pour but de créer un jeu de Simulation Open-World MMOFPS qui se passe dans un univers plongé 930 ans dans le futur (2949 – date qui change au passage des années dans la vie réel).

Un projet colossal qui a été lancé en fin 2012 et qui a subi beaucoup de jugements de la part de nombreuses personnes, à cause d’erreurs passées et de mauvais marketing. En revanche, il faut noter que le changement de moteur en 2016 a constitué un retournement de situation pour le jeu, qui après 2 ans de développement acharné en refaisant tout de 0 avec le Amazon Lumberyard, a permis de bien le faire avancer, malgré la lenteur du projet à la base.

Voilà des images du jeu Star Citizen qui utilise le Amazon Lumberyard, non ce ne sont pas des cinématiques ou des rendus pré-fait mais bien des rendus en Real Time, du jeu en lui-même à son état actuel. Comme prouvé par ces images, le moteur du Amazon Lumberyard est extrêmement puissant visuellement, mais il y a beaucoup d’autres choses importantes.

Le Amazon Lumberyard permet aussi de rajouter des effets audio et sonores directement, avec des possibilités de modification de la source sonore/audio sans modifier la logique du jeu.

Interface de l’ajout et gestion des sons

Le moteur gère aussi l’utilisation d’Intelligence Artificielle et permet leur simulation.

Il dispose aussi d’un système de création et animation de personnages 3D qui fonctionne grâce à l’usage de ‘nodes’ pour une représentation et logique visuel des modifications faites.

Interface de l’éditeur d’animation

Il y a aussi un système de création de séquence cinématiques qui agissent en temps réel avec l’univers dans lesquels vous les implantées, grâce à de nombreux scripts que le développeur créer et ajoute, il y a une infinité de possibilités.

Récemment, il y a eu une compatibilité avec la Réalité Virtuelle qui a été ajouté au Amazon Lumberyard, qui permet aux développeurs d’ajouter la possibilité d’utiliser un casque de réalité virtuelle dans leur jeu, une avancée technologique non négligeable pour ceux qui veulent une immersion poussée.

Mais ce qui est bien, c’est qu’il y a beaucoup d’exemples déjà mis en place dans le moteur de jeu qui permet aux moins expérimentés d’avoir déjà une base pour commencer une scène de toute sorte, par exemple, la tranche d’exemple ‘InstantVR’, qui permet d’avoir instantanément certains éléments déjà créer pour la VR, comme la mise en œuvre des controlleurs VR avec un modèle 3D qui va avec, la téléportation avec un système de ‘zone valide’ pour savoir où le joueur peut ou non se téléporter et la génération d’une zone de navigation de départ.

Pour cela, il faut aller dans le ‘chercheur d’assets’ mentionné précédemment, trouver l’exemple dans VirtualRealityProject/slices/instantvr.slice, le faire glisser dans la fenêtre d’affichage et appuyer sur ‘VR Preview’, très simple et efficace.

 

 

L’éditeur dispose aussi d’un système de création de niveau et d’effet d’environnement intuitif et intelligent pour facilités le travail aux développeurs, avec des sous-éditeurs différents pour les textures, les formes, de végétations, de nuages ou autre assets..

 

Sur la gauche, on peut voir qu’on peut peindre et modifier le terrain et sur la droite c’est une interface pour créer des nuages avec tous les paramètres nécessaires, vraiment complet.

 

Un des gros avantages de Lumberyard c’est qu’il n’y a pas de ‘lightmaps’ (Texture de lumières), tout est automatique. Donc plus simple à rajouter des lumières dans le jeu en question. Tout est dynamique au niveau de l’éclairage.

 

 

Et bien d’autres outils sont disponibles dans le moteur de jeu en lui-même, avec une utilisation encore plus poussée pour permettre énormément de choses.

 

Il y a aussi d’autres outils qui ne sont pas inclus dans l’éditeur principale mais qui sont aussi utilisés dans le développement de jeux vidéo comme :

  • L’utilisation du ‘Asset Pipeline’ et des fichiers d’assets pour convertir les assets en données prêtes à l’emploi spécifiques à chaque plateforme.
  • La création de jeux Android et iOS
  • La gestion des projets de jeu avec Lmbr.exe
  • La création de jeux MacOS
  • La création d’exécutables Lumberyard pour Linux
  • Un configurateur de project (Project Configurator)
  • Un système de profilage, test et débogage des projets de jeu
  • Ou l’utilisation du système de build Waf.

 

Encore une image du jeu Star Citizen qui utilise le Amazon Lumberyard, avec beaucoup de détails visuels dans l’image

 

 

En conclusion, on peut dire que le Amazon Lumberyard est un bon moteur de jeu, gratuit, performant et puissant qui peut être améliorer grâce à des plugins externes ou si les développeurs veulent l’adapté de l’intérieur en changeant eux même le moteur, mais qui n’est pas si facile d’utilisation pour autant.

Il est cependant automatisé pour la plupart des composants, de façon qu’un simple clic puisse générer ce que l’on demande, très utile pour des créations de scènes rapide et efficaces.

En revanche, le moteur est jeune et n’a pas été beaucoup utilisé pour la création de jeu, il reste à voir s’il marche aussi bien que ça dans le futur, ou s’il devra céder sa place à un moteur de jeu encore plus performant mais ce n’est pas une question à se poser puisque les moteurs de jeu évoluent tout le temps et il en existe beaucoup qui sont adaptés à absolument tous les types de jeux disponibles.

C’est à partir de là qu’on peut se poser la question, qu’est-ce qui fait qu’un moteur de jeu est performant, puissant ou utile pour certains types de jeux et pas d’autres ?

 

 

Sources :

Images de Star Citizen : *Images de la communauté francophone du jeu, à usage publique*

 

https://docs.aws.amazon.com/fr_fr/lumberyard/latest/userguide/lumberyard-editor-interface.html

https://docs.aws.amazon.com/fr_fr/lumberyard/latest/userguide/lumberyard-intro.html

https://searchaws.techtarget.com/definition/Amazon-Lumberyard

https://aws.amazon.com/fr/lumberyard/

https://en.wikipedia.org/wiki/3D_modeling

https://en.wikipedia.org/wiki/Amazon_Lumberyard

https://docs.aws.amazon.com/fr_fr/lumberyard/latest/userguide/lumberyard-components.html

https://www.clubic.com/mag/jeux-video/actualite-795214-amazon-moteur-jeu-video-lumberyard.html

https://fr.wikipedia.org/wiki/Moteur_de_jeu

https://fr.wikipedia.org/wiki/Moteur_3D

https://fr.wikipedia.org/wiki/Unity_(moteur_de_jeu)

https://fr.wikipedia.org/wiki/CryEngine

https://en.wikipedia.org/wiki/Star_Citizen

https://docs.aws.amazon.com/fr_fr/lumberyard/latest/userguide/cinematics-intro.html

https://docs.aws.amazon.com/fr_fr/lumberyard/latest/userguide/char-intro.html

https://docs.aws.amazon.com/fr_fr/lumberyard/latest/userguide/audio-intro.html

https://docs.aws.amazon.com/fr_fr/lumberyard/latest/userguide/ai-intro.html

https://docs.aws.amazon.com/fr_fr/lumberyard/latest/userguide/audio-atl-editor.html

Lumberyard Basics – Lighting: https://www.youtube.com/watch?v=icmyxgHmRr0

https://fr.wikipedia.org/wiki/Lightmap

 

Laisser un commentaire

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