Lumberyard + Amazon GameLift + Twitch: de nouveaux services de jeux sur AWS

Par:
fredericmazue

jeu, 13/10/2016 - 12:05

Créer des jeux au niveau mondial est un processus long, complexe et onéreux. Le public s’avère être particulièrement exigeant, il recherche des jeux intéressants, communautaires et qui fonctionnent sur ordinateurs, consoles et plateformes mobiles. A cause du délai inhérent au processus de développement et de distribution d’un jeu, la réussite ou l’échec d’un jeu est souvent déterminé par le jour de lancement, lorsque des centaines de milliers voire de millions de joueurs se connectent et essaient le jeu.

En amont, le processus de développement doit se montrer à la hauteur du défi. Les créateurs de jeux doivent faire partie d’une équipe composée de concepteurs qui maitrisent le story-telling, la conception de jeux, la physique, la logique de la conception, la création sonore, les graphiques, les effets visuels et l’animation. S’il s’agit d’un jeu en ligne; l’équipe doit également posséder des compétences dans la montée en charge, le stockage en ligne, la gestion et la communication en réseau, et bien sûr la sécurité.

Avec un temps de création et de développement qui peut aller de 18 à 36 mois, les jeux actuels représentent aussi un enjeu financier que de réputation pour le studio en charge. Chaque nouveau jeu peut être une réussite ou un échec total.

Les nouveaux services de jeux d’AWS

AWS dispose désormais de nouveaux produits conçus pour les développeurs de jeux professionnels qui construisent des jeux multiplateformes, connectés au cloud. Nous avons commencé par des moteurs éprouvés et des outils de développement de pointe, auquel nous avons ajouté notre propre code et intégré l’ensemble à notre plateforme vidéo et communautaire Twitch en y incorporant également des accès aux services AWS de messagerie, de gestion des identités et de stockage. Voici les différents services :

Lumberyard – Un moteur de jeux et un environnement de développement conçu pour les éditeurs professionnels. Associant des technologies éprouvées comme CryEngine, Double Helix et AWS ; Lumberyard simplifie et rationnalise le développement de jeux. En tant que moteur de jeux, il supporte le développement de jeux autonomes en 3D et connectés au cloud, fournissant un support de gestion du contenu, de création de personnages, d’Al, de support sonore et bien plus encore. En ce qui concerne le développement, l’environnement de Lumberyard permet de concevoir des environnements internes et externes « from scratch ». Le développeur de jeu peut donc profiter de workflows de contenu intégré et d’« asset pipeline », du contenu pour les jeux éditables avec Photoshop, Maya, ou 3ds Max pour modifier l’ensemble des éléments et les incorporer ensuite dans l’environnement de développement. Il est possible de programmer le jeu de manière classique en utilisant C++ ou Visual Studio (notamment l’accès à AWS SDK pour C++) ou d’utiliser l’outil Flow Graph et le nouveau Cloud Canvas pour créer des fonctionnalités de jeu via l’outil visuel d'écriture de script.

Amazon GameLift –Les jeux récents disposent souvent d’un serveur ou d’un composant en backend qui s’adapte en fonction du nombre de sessions actives. Amazon GameLift permet de déployer et gérer la montée en charge des serveurs des jeux multi-joueurs pour les jeux créés avec Lumberyard. Il suffit de télécharger l’image du serveur de jeu sur AWS et déployer celle-ci dans une flotte d’instances EC2 qui s’adapte en fonction du nombre de joueurs qui se connectent et jouent. Le principal avantage est qu’il n’est pas nécessaire de gérer la construction, la montée en charge, l’exécution et le suivi de la flotte de serveurs. Il suffit de s’acquitter d’un abonnement quotidien par utilisateur actif et des frais standards appliqués par AWS pour les instances Amazon EC2, le stockage Amazon EBS et la bande passante de transfert de données réellement utilisés.

Intégration Twitch – Les joueurs sont désormais particulièrement connectés. Quand ils ne jouent pas, ils se connectent et interagissent avec d’autres joueurs et adeptes de jeux sur Twitch. Les joueurs professionnels et les amateurs montrent leur talent sur cette plateforme, s’attirant une large base de fans. Pour consolider cette tendance et entretenir des relations plus fortes, les jeux créés avec Lumberyard pourront tirer profit des deux nouvelles fonctionnalités d’intégration de Twitch. Twitch ChatPlay permet de créer des jeux qui répondent à des mots clés dans le chat Twitch. Par exemple, le public peut voter pour que le joueur adopte un parcours précis. Twitch JoinIn permet à un diffuseur d’inviter un membre dans le jeu grâce au canal de discussion.

Ces services comme beaucoup de produits AWS sont conçus pour vous permettre de vous concentrer sur la valeur ajoutée et le côté créatif de vos jeux. Fournir des délais réduits et une itération facile ont particulièrement été pris en compte, permettant ainsi de parfaire le gameplay jusqu’à ce qu’il atteigne le niveau de divertissement et d’intérêt désiré.

Services de support – Nous lançons également un panel d’options de support notamment un forum consacré à Lumberyard et un ensemble de tutoriels (texte et vidéo). Divers niveaux de support AWS payants sont également disponibles.

Développer avec Lumberyard

Lumberyard est la principale nouveauté. Il est conçu pour les développeurs professionnels et supporte le développement des jeux multiplateformes de hautes qualités. Les environnements de support suivants sont disponibles :

  • Windows – Vista, Windows 7, 8, and 10.
  • Console – PlayStation 4 and Xbox One.

Des supports pour des appareils mobiles et des casques VR sont en préparation et devraient être disponibles dans quelques mois.

L’environnement de développement de Lumberyard s’exécute sur les ordinateurs ou portables Windows. Il faut disposer d’un processeur quad-core rapide, de 8GO de mémoire au minimum, de 200 GO d’espace disque de libre, d’une carte graphique de pointe d’une mémoire de 2 GO ou plus et d’une compatibilité directx 11. Visual Studio 2013 Update 4 (ou une version plus récente) et les packs Visual C++ Redistributables pour Visual Studio 2013 sont également nécessaires.

Le fichier ZIP Lumberyard contient le code, les templates, les contenus et les fichiers de configuration pour Lumberyard Editor. Il inclut également les exécutables et le code source pour le moteur de jeux de Lumberyard. Il est possible d’utiliser le moteur tel quel, d’approfondir le code source, le personnaliser afin de créer un jeu encore plus inédit. Le fichier zip possède aussi le Lumberyard Launcher. Ce logiciel garantit une installation et configuration appropriées de Lumberyard, des exécutables tiers, des SDKs, des outils et des plugins.

Lumberyard Editor contient le jeu en cours de développement et un ensemble d’outils pour éditer les contenus du jeu.

Lumberyard Editor dispose d’un ensemble d’outils d’édition dont Asset Browser, Layer Editor, LOD Generator, Texture Browser, Material Editor, Geppetto (outils de création de personnage et d’animation) Mannequin Editor, Flow Graph (programmation visuelle), AI Debugger, Track View Editor, Audio Controls Editor, Terrain Editor, Terrain Texture Layers Editor, Particle Editor, Time of Day Editor, Sun Trajectory Tool, Composition Editor, un Database View, et UI Editor. Tous les éditeurs (et bien plus) sont accessibles en haut de la barre d’outils.

Afin de permettre à l’utilisateur d’ajouter des fonctionnalités au jeu de manière sélective et modulaire, Lumberyard utilise Gems, un système de conditionnement de code. Il suffit d’activer les Gems souhaités et ils seront créés et inclus dans le code du jeu fini de manière automatique. Lumberyard inclus Gems, pour accéder à AWS, Boids (pour le flocking), des effets météorologiques réalistes, un accès à Gamelift, des propriétés physiques - pluie, neige, tornades - des interfaces utilisateurs, des fonctionnalités multi-joueurs, et une collection de paysages naturels (pour des paysages de forêts réalistes).

Coder avec Flow Graph et Cloud Canvas

En général, lors de la création de jeux, des développeurs spécialisés prennent en charge l’ensemble des éléments logique du jeu, souvent en C++ et avec le temps de traitement habituel pour un cycle ‘éditer/compiler/exécuter’. Cette option est toujours disponible mais il également possible d’utiliser Lua et Flow Graph.

Flow Graph est un système de cryptage visuel, moderne et simple qui permet d’implémenter une logique de jeu complexe sans écrire ou modifier un code. Il est possible d’utiliser une bibliothèque de nœuds prédéfinis pour mettre en place le gameplay, contrôler le son, et gérer les effets.

Les Flow graphs se composent de nœuds et de liens : un seul niveau peut contenir de multiples graphiques et ils peuvent tous être actifs en même temps. Les nœuds représentent les entités ou actions du jeu. Les liens connectent la sortie d’un nœud à l’entrée d’un autre et les entrées sont définies par un type (Booléen ; Float, Int, String, Vector, etc). Les ports de sortie peuvent être connectés à un port d’entrée de n’importe quel type ; une conversion de type automatique est effectuée (si possible).

Il existe plus de 30 types de nœuds distincts, ainsi qu’un outil (Cloud Canvas) qui permet d’accéder à de nombreux services AWS. Cela comprend deux nœuds proposant un accès à Amazon Simple Queue Service (SQS), quatre nœuds proposant un accès à Amazon Simple Notification Service (SNS), sept nœuds qui offrent un accès en écriture à Amazon DynamoDB, dont un comportant une fonctionnalité AWS Lambda et une autre pour gérer les identifiants des joueurs grâce à Amazon Cognito. Toutes les connexions du jeu à AWS s’effectuent par le biais d’AWS Identity and Access Management (IAM) configurable dans Cloud Canvas.

DailyGiftLambda: Noeud comprenant une fonctionnalité Lambda

Flow Graph utilise Lambda et DynamoDB pour implémenter une fonctionnalité “Daily Gift”:

Pour plus d’informations, consulter la documentation Cloud Canvas dans le guide d’utilisation Lumberyard.

Déployer avec Amazon GameLift

Amazon GameLift : Pour un environnement d’exécution évolutif basé sur le cloud.

Il peut héberger différents types de jeux multi-joueurs, connectés et synchronisés régulièrement, notamment des jeux de tir à la première personne, des jeux de survie et orientés sandbox, des jeux de course, de sport, et des jeux MOBA (arène de bataille en ligne multijoueur).

Après la création du serveur dédié à la logique, il suffit de la migrer sur Amazon GameLift. Elle sera convertie en AMI (Amazon Machine Image) basée sur Windows en quelques minutes. Une fois que l’AMI est prête, il est possible de créer une flotte Amazon GameLift (ou une nouvelle version d’une ancienne), la diriger sur l’AMI et le backend sera prêt.

Il est possible de voir les flottes, les sessions de jeux qui s’exécutent sur chaque flotte sur Amazon GameLift Console:

Le code Flow Graph peut utiliser le GameLift Gem pour créer une session Amazon Gamelift et commencer le service de la session.

Pour plus d’informations, consulter la documentation Amazon GameLift

Intégration Twitch

Les jeux peuvent également s’intégrer à Twitch via Twitch ChatPlay et Twitch JoinIn.

Il est possible de créer des jeux qui répondent aux mots clés entrés dans un canal Twitch. Par exemple, le Flow Graph ci-dessous répond aux mots clés : rouge, jaune, bleu, vert, orange et violet.

Tarif et disponibilité

Lumberyard et Amazon GameLift sont déjà disponibles.

Il est possible de créer et exécuter des jeux connectés et indépendants sans frais grâce à Lumberyard. L’utilisateur paie les frais pour les appels effectués aux services AWS en utilisant l’utilisateur IAM configuré dans Cloud Canvas ou par le biais des appels utilisant le kit SDK AWS pour C++, ainsi que les frais d’utilisation de GameLift.

Jeff Barr
Amazon Web Services