Un examen minutieux de Project Anarchy

Mike Fleischauer

Traducteur

Alexandre Laurent

Havok a récemment publié une première version de Project Anarchy, son nouvel outil de création de jeux vidéo. Faisons le tour de celui-ci afin de découvrir ce que le logiciel vaut vraiment.

Commentez

- Titre : Un examen minutieux de Project Anarchy

- Auteur : Mike Fleischauer

- Traducteur : Alexandre Laurent

- Parution : 30 juillet 2013

- Mise à jour : 30 juillet 2013

- Licence : Copyright ® 2013 Mike Fleischauer. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- Navigation

- II. Introduction

- III. Démarrage et fichiers d'aides

- IV. Documentation et ressources d'apprentissage

- V. vForge

- VI. Édition de scripts et débogage

- VII. Terrain

- VIII. Systèmes de particules

- IX. Intégration de la physique

- X. Aide pour mobiles

- XI. Shaders

- XII. Havok AI

- XIII. Havok Animation Tool

- XIV. Les autres outils

- XIV-A. Havok Visual Debugger

- XIV-B. vFontGenerator

- XIV-C. vSceneViewer

- XIV-D. vModelViewer

- XIV-E. vAnimTool

- XV. Outils pour le pipeline graphique

- XVI. Conclusion

- XVII. Remerciements

- Navigation

Navigation

Sommaire

Tutoriel suivant : Hello World

II - Introduction

Maintenant que Project Anarchy est sorti, j'ai décidé de regarder ce qu'il vous propose. Si vous n'en avez jamais entendu parler, Project Anarchy est une collection d'outils de développement de jeux vidéo d'Havok distribuée gratuitement pour les développeurs d'applications mobiles. Dans cet article, nous allons regarder quels sont ces outils. Pour commencer, allez sur la page de téléchargement et téléchargez l'installateur. Le fichier alors récupéré ne fait que transférer l'installateur complet, le logiciel au complet est beaucoup plus imposant et atteint tout juste 5 Go.

Lorsque j'ai commencé cet article, je pensais qu'il serait court… j'avais tort. Disons, ce logiciel propose énormément d'outils. Cet article tentera de vous donner une assez bonne idée sur ce à quoi Project Anarchy vous donne accès et devrait aussi vous donner une idée sur ses capacités.

III - Démarrage et fichiers d'aides

Après avoir installé l'outil, vous devriez avoir une structure comme celle-ci :

Une chose importante qu'il faut garder à l'esprit : pour développer pour iOS vous avez besoin d'un Mac et vous devez télécharger un autre fichier. Aussi, il est important de noter que la majorité des outils de Project Anarchy ne s'exécutent pas sous OS X. Clairement, vous devez avoir une machine sous Windows et Mac si vous souhaitez développer pour iOS. C'est plutôt normal pour le moment.

Project Anarchy n'est pas la seule chose que vous devez installer. Pour développer pour Android sous Windows, vous devez installer le SDK Android, son NDK, Visual Studio 2010 ou plus récent (la version Express fonctionne, mais ne fournit pas le débogueur pour Android), ainsi que le JDK Java 1.6. Notez aussi que la version 1.6 n'est pas la dernière version en date ! Il semble qu'une grande partie des outils de développeurs nécessitent Java 6 au lieu de la version 7. Si vous développez pour iOS, vous avez besoin d'installer Xcode et le SDK iOS. Il y une documentation décrivant comment démarrer avec Android et iOS, guidant en détail le processus.

IV - Documentation et ressources d'apprentissage

La documentation intégrée dans Project Anarchy se résume en un mot : impressionnante. Une grande partie est installée en local. Les répertoires qui intéresseront immédiatement la plupart des développeurs se trouvent dans \Docs\Vision\windows, \Docs\Vision\android, \Docs\Vision\ios, bien que les dossiers semblent contenir des versions légèrement modifiées des mêmes documents ! Ainsi, si vous voulez libérer 600 Mo de votre installation, vous pouvez sûrement commencer par là. Le fichier VisionEngine_Documentation_platformname.chm est l'index maître, rassemblant tous les documents. Project Anarchy inclut les documentations suivantes :

Vous pouvez voir ici un ensemble de documentations assez complet. Le guide de démarrage (« Startup Guide ») est l'endroit le plus logique pour commencer. Il vous donne un aperçu des différents outils, une introduction au langage de script Lua, etc. Le truc le plus cool de tous est peut-être l'inclusion d'un projet d'exemple complet avec lequel vous pouvez jouer. Ces ressources sont référencées de nombreuses fois dans la documentation. Il y a une tonne de ressources pour commencer, spécialement intéressantes si vous n'avez pas accès à Maya ou 3DS Max.

En plus de la documentation installée en local, une série de tutoriels vidéo couvrent vForge, Animation et les bases du script. La qualité des vidéos varie énormément de très bonne à… aucune. Il y a aussi une série de leçons, que vous pouvez comparer à des tutoriels à destination des écoles. La série des leçons est liée au projet d'exemple que vous pouvez télécharger (lien direct, 100 Mo). De plus, ils ont créé une page de questions/réponses du style de StackOverflow ainsi qu'un forum remarquablement actif pour un récent projet.

Pour résumer, les informations disponibles sont franchement bonnes. Cela dit, je me suis un peu plongé dans la documentation et c'est le bazar. La documentation est bien écrite et généralement utile, mais elle possède quelques sérieux problèmes d'héritage, ce qui est évident pour des produits dérivants de ceux d'Havok et qui sont sur le marché depuis un long moment. Par exemple, j'ai trouvé des détails de configuration pour Metrowerks Codewarrior… un compilateur qui doit être plus vieux que certains des lecteurs lisant cet article ! Donc, il y a énormément de documentation, mais trouver les parties qui vous intéressent peut être un défi en soi. Toutefois, c'est beaucoup mieux que ce que j'espérais et c'est un SDK ayant un bon support et très bien documenté. On remarque qu'ils ont privilégié la documentation et l'expérience des nouveaux utilisateurs.

V - vForge

À bien des égards, vForge EST Project Anarchy, tout comme Unity Studio est Unity. C'est là que vous créez vos niveaux, écrivez vos scripts, créez vos panoramas, etc. En gros, c'est la glu maintenant tous les morceaux ensemble.

Voici vForge avec le projet de RPG chargé et la scène de l'arène ouverte. À votre intention, le projet de RPG est disponible dans le dossier \Data\Vision\Samples\Engine\RPG.

Vous pouvez naviguer dans la scène à l'aide de la souris. Dirigez-vous en la déplaçant, le bouton gauche pour se déplacer dans la direction où vous regardez, le bouton droit pour changer cette direction. Vous pouvez aussi configurer l'outil pour utiliser les touches WASD pour la navigation si c'est ce que vous préférez. Le menu où vous pouvez apercevoir (« Default Layout »), vous permet de régler la mise en page entre les différents éléments que vous voulez voir dans vForge, comme l'édition de scripts, les systèmes de particules, etc. Vous pouvez aussi définir votre propre mise en page personnalisée ou utiliser la majorité des panneaux indépendamment, ce qui est pratique sur une configuration possédant plusieurs écrans.

Dans la vue moteur (« Engine View ») vous pouvez placer les éléments dans la scène. Voici un exemple. J'ai instancié un modèle de boss à partir de l'onglet du créateur de formes (« Shape Creators ») en le glissant/déposant dans la vue moteur.

Appuyez sur l'icône de lecture dans la barre d'outils de la vue moteur et votre jeu démarrera avec l'interface utilisateur et le reste (et les animations, évidemment) :

Donc, vForge est l'endroit où vous placez vos objets du jeu, mais nous ne faisons que gratter la surface. Il y a un nombre ahurissant d'outils implantés dedans… voyez par vous-même :

Nous allons jeter un coup d'œil rapide sur certains d'entre eux.

VI - Édition de scripts et débogage

Par exemple, l'ouverture du panneau de script laisse apparaître une nouvelle fenêtre pour le script. Voici celui du boss :

Comme vous pouvez le voir, l'éditeur de scripts possède un support complet d'IntelliSense, enfin, si ce n'était pas un terme enregistré par Microsoft. Quel est le terme non enregistré… indicateur de code ? Peu importe… il l'a et nous l'aimons. Il n'est pas aussi détaillé que ce que vous avez sous Visual Studio, mais il aide énormément. Ce truc ? L'icône sur la droite apporte aussi de l'aide suivant le contexte. Sélectionnez le nom d'une fonction et cliquez sur le bouton pour ouvrir l'aide de référence pour l'entrée qu'il a trouvée. Pratique.

Chacun de ces panneaux flottants peut être arrimé dans l'éditeur principal. Ici, le panneau de script arrimé en dessous de la vue moteur :

L'éditeur de scripts semble très simple, mais il possède un grand ensemble de fonctionnalités cachées à l'intérieur. Par exemple, il y a une bibliothèque complète d'extraits de code :

En plus de l'éditeur de script, vForge propose un débogueur de scripts :

contenant tous les composants auxquels vous pouvez vous attendre : points d'arrêt, moniteurs, inspection de type, il vous permet aussi de vous connecter à un périphérique distant pour le déboguer.

Peut-être le plus cool de tous, en cliquant sur le débogueur en surbrillance, vous pouvez appeler le profileur :

permettant ainsi de trouver les goulots d'étranglement dans votre code.

VII - Terrain

La création d'un terrain dans vForge est immédiate. Dans le créateur de formes, glissez/déplacez simplement un terrain sur votre scène :

Une boîte de dialogue s'affichera :

Ensuite, il ne reste plus qu'à configurer le terrain :

Aussitôt voici notre panorama en utilisant les paramètres par défaut et une texture de sable :

Maintenant, ouvrez l'éditeur de terrain dans lequel vous pouvez surélever, diminuer, adoucir, peindre, etc., votre terrain. Sélectionnez l'outil et maintenez pressée la touche Maj ou Ctrl et cliquez sur le bouton de la souris pour peindre.

Après avoir batifolé quelques minutes :

Évidemment, je ne fais que m'amuser et utiliser qu'une fraction des outils. Vous pouvez peindre des objets directement sur le terrain, dessiner des billboards (textures qui sont toujours affichées face à l'utilisateur, pratique pour l'herbe et des effets similaires) mais aussi configurer une skybox incluant des cycles jour/nuit.

En réalité, il y a des boîtes de dialogue pour éditer le ciel :

L'édition de la durée d'un jour, avec l'effet associé, le temps du coucher et du lever du soleil :

Il y a aussi des boîtes de dialogue pour la configuration du brouillard et des effets de posttraitement (effet de lueur et tone mapping, deux paramètres que vous choisissez lors de la création du projet). En conclusion, les outils d'édition du terrain sont assez complets.

VIII - Systèmes de particules

Bien sûr, les systèmes de particules constituent une dense partie des outils modernes et évidemment, vForge inclut une série d'outils pour travailler sur la création des systèmes de particules. Dans le formulaire de l'éditeur de particules :

C'est l'une des choses dans lesquelles j'ai toujours été mauvais, je vais donc me conforter avec les modèles de base que l'on trouve lors de la création d'un nouvel effet de particules :

L'éditeur a en réalité une centaine de paramètres différents pour vos systèmes de particules. Si vous en créez un et que vous le configurez, vous pouvez appuyer sur le bouton de lecture et observer les changements en temps réel.

IX - Intégration de la physique

Comme vous pouvez le voir, Havok Physics est aussi directement intégré dans vForge :

Bien sûr, cela n'est qu'une partie de l'équation… la partie principale. Vous allez devoir rajouter la physique dans votre scène. Cela se fait par l'utilisation de composants (« components »). Ajoutez une entité à la scène, définissez son type de modèle puis vous pouvez ajouter un composant simplement. Dans ce cas, j'ai ajouté une entité avec un modèle de balle.

Ici, j'ai sélectionné l'entité puis ajouté le contrôleur corps solide de Havok(« Havok Rigid Body »). Comme vous pouvez le voir, vous pouvez jouer sur un grand nombre de paramètres pour le corps solide :

Bien sûr, les corps solides ne sont pas l'unique option lorsque l'on parle de physique. Vous pouvez ajouter des contraintes (dans le « Shape Creators »), par exemple une contrainte de terrain à l'objet terrain, ce qui permettra à la balle d'interagir avec le terrain.

X - Aide pour mobiles

Le développement pour mobiles possède ses propres difficultés : deux particulièrement, auxquelles Project Anarchy possède une bonne solution.

Le premier problème courant est le cycle de déploiement. Généralement, vous créez (sur Android) un APK qui contient votre application et toutes ses données empaquetées dans un seul fichier. Et qu'arrive-t-il lorsque vous changez un petit nombre de choses que vous voulez tester sur le périphérique ? Eh bien, vous créez un nouveau fichier APK et vous le déployez. Plus votre application grandit, plus cela devient ennuyant.

C'est là qu'arrive vFileServe, pouvant être exécuté soit dans vForge, soit comme application indépendante.

Fondamentalement, il agit comme un système de fichiers virtuel. Vous déployez une application sur votre périphérique (en utilisant le bouton de préparation des périphériques [« Prepare Devices »]), qui synchronise alors les fichiers entre le périphérique et vFileServe grâce au sans-fil. Cela permet d'effectuer des modifications et de les tester rapidement sur le périphérique cible.

Le second problème courant avec le développement mobile est l'émulation des contrôles. En particulier, le multi-touch et les mouvements du périphérique sont difficiles à reproduire sur PC. Pour cela Havok fournit le plugin vRemoteInput qui vous permet d'utiliser un périphérique mobile pour contrôler vForge. Par contre, cela s'active par le code, je n'ai donc rien à vous montrer à l'aide d'une capture d'écran. Essentiellement, lorsqu'il est activé et que vous entrez dans le mode « Play », votre jeu peut être contrôlé à l'aide de l'écran tactile et des capteurs de mouvements de votre périphérique.

XI - Shaders

Project Anarchy possède un ensemble d'outils complets pour gérer les shaders. Le premier et le plus simple à utiliser est Visual Shader Editor :

Cet outil vous permet de créer des shaders en liant les éléments et les opérations ensemble. Pour ceux qui préfèrent un accès direct à leurs shaders, il y a aussi un éditeur :

En plus de cela, il y a des panneaux pour créer et gérer les bibliothèques de shaders, les inspecteurs de propriétés et plus encore.

XII - Havok AI

L'intelligence artificielle est une grosse partie de la programmation de jeux vidéo et les utilisateurs doivent souvent créer la leur. Ce n'est pas comme cela chez Havok, Project Anarchy inclut la suite Havok AI. C'est une combinaison d'outils intégrés dans vForge, mais aussi autant de fonctions liées à l'intelligence artificielle disponibles pour le programmeur.

Voici le paramétrage global de l'intelligence artificielle :

Dans vForge, vous avez la possibilité de définir vos modèles de navigation, consistant en une géométrie définissant les portions accessibles dans votre jeu :

Vous avez aussi la possibilité de créer des chemins (courbes de Bézier) à suivre, déclencher et autre pour l'intelligence artificielle. La majorité de Havok AI semble être du côté du développeur en proposant un grand nombre de fonctions pour des choses comme déterminer le meilleur chemin, etc. Je dois regarder plus en détail Havok AI plus tard.

XIII - Havok Animation Tool

Ceci est une autre application à part entière, apparemment pour créer des machines à états d'animation, donc pour essentiellement « jouabiliser » vos animations rigides. Oui, je pense que j'ai inventé ce mot. La vérité est que je ne suis pas un « animateur », donc cela est en dehors de mon domaine d'expertise… Peu importe, voici Havok Animation Tool exécutant un des exemples inclus (qui se trouve dans C:\Users\Mike\Documents\Havok\Havok Animation Tool 2013.1.0.0-r1\GameAssets\Hero sur mon PC). Vous pouvez contrôler les animations du personnage avec une manette de jeu.

Encore une fois… ce n'est pas mon domaine, donc je ne connais que très peu de choses sur cet outil. Je crois que c'était une grande partie d'un outil connu sous le nom de Havok Behaviour.

XIV - Les autres outils

Il y a encore d'autres outils faisant partie de Project Anarchy.

XIV-A - Havok Visual Debugger

L'un d'entre eux est le Visual Debugger :

Ce que dit Havok sur l'outil :

Le Havok™ Visual Debugger (VDB) est un outil pratique pour surveiller la représentation physique d'une scène en temps réel. En regardant les objets physiques dans le débogueur visuel, vous pouvez rapidement situer les erreurs potentielles, qui n'auraient pas pu être vues en observant la scène seulement dans vForge.

XIV-B - vFontGenerator

Pour créer les fichiers bitmaps de police.

XIV-C - vSceneViewer

vSceneViewer pour visualiser les scènes (en dehors de vForge) :

XIV-D - vModelViewer

vModelViewer : le nom indique sa fonction, pour visualiser les fichiers modèles de Project Anarchy :

XIV-E - vAnimTool

vAnimTool : vous pouvez charger un modèle et un fichier d'animation afin de les prévisualiser et d'éditer les séquences d'animation :

XV - Outils pour le pipeline graphique

Il y a des plugins pour Maya et Max pour exporter du contenu 3D. Je ne les ai pas installés, donc je ne peux que montrer la capture prise de la documentation :

Que se passe-t-il si vous n'avez pas Max ou Maya ? Vous êtes alors malchanceux. Il y a une version d'évaluation de trente jours entièrement fonctionnelle, mais à moins que vous ne soyez étudiant, elle vous affichera un prix de 5 000 $ à la fin de l'évaluation.

Heureusement, ce n'est qu'un problème temporaire. Voici une citation des réponses du site de Project Anarchy :

Suivant les retours de la communauté, nous travaillons et testons actuellement un importeur FBX. Nous réalisons que beaucoup d'utilisateurs dans la communauté utilisent d'autres outils et que l'importeur de fichier FBX aidera ces utilisateurs à intégrer leurs ressources.

Une fois que l'importeur sera disponible vous serez alors capable d'utiliser des outils comme Blender, Cheetah, Poser/Daz, Silo, etc. Essentiellement tous les outils qui exportent en FBX, ce qui inclut à peu près toutes les applications modernes.

XVI - Conclusion

Il y a une tonne de fonctionnalités regroupées dans ce moteur et cela n'est qu'en regardant du côté des outils. Bien sûr, il y a des dizaines de dizaines de bibliothèques sous le capot. Dans le futur, je vais regarder plus attentivement la manière de les utiliser tous ensemble. Dites-moi ce que vous voulez que je couvre.

Je dois dire, je suis beaucoup plus impressionné que je ne pensais l'être. Je pensais que cela serait un ensemble d'outils mal documentés rassemblés avec une documentation minime. En réalité, c'est un cohésif et puissant paquet qui couvre au moins toutes les bases. Ils ont certainement piqué mon intérêt. Bon boulot Havok.

XVII - Remerciements

Cet article est une traduction autorisée de l'article paru sur Game From Scratch. Je remercie chaleureusement Mike Fleischauer de nous avoir permis de le traduire.

Je tiens à remercier dourouc05 et Winjerome pour leur relecture lors de la traduction de cet article, ainsi que ClaudeLELOUP et zoom61 pour leur relecture orthographique.

Navigation

Sommaire

Tutoriel suivant : Hello World