eigd#14 - présentation unity
Post on 18-Jul-2015
461 Views
Preview:
TRANSCRIPT
Créer un jeu multiplate-forme
avec Unity
Le jeu
• Edge of Eternity : J-RPG multiplate-forme
• Equipe de 4 personnes: 1 Programmeur,
2 Artistes, 1 Musicien
• Combinaison du gameplay des J-RPG
Old-School avec les innovations modernes de gameplay
Choisir un moteur
Problématiques :
• Ressources de programmation limitées
• Ressources artistiques limitées
• Le genre RPG requiert de gérer une quantité importante de données
• Portage console le plus économique possible
Le challenger : Solution UDK
Avantages :
• Post-processing très flatteur
• Bonnes performances même avec des scènes complexes
• Système Blueprint pour créer rapidement des petites routines
Inconvénients :
• Langage spécifique (UnrealScript) avec une API très limitée
• Impossibilité d’étendre l’éditeur
• Ergonomie complexe à prendre en main et peu « artist-friendly »
• Modèle économique royalties (25% share)
Solution Unity
Avantages :
• API très complète et langage de programmation C# ou JavaScript
• Plugins natifs et extensibilité complète de l’éditeur
• Ergonomie efficace et outils adaptés pour les artistes (Terrain, Lightmapping)
• Approche par « GameObject » permettant de prototyper rapidement
• Export multiplateformes « One-Click »
Inconvénients :
• Rendu très coûteux pour afficher la même chose que sur l’UDK
• Peu optimisé pour les grandes scènes
Unity ?
• Pro vs Gratuit : Plus de fonctionnalités
• Prix : 1500$ ou 75$/mois + 1500$ ou 75$/mois par plateformes
• Les versions consoles sont gratuites (nécessite d’être approuvé par le constructeur avant)
• Exporte sur : PC / Mac / Linux / PS4 / PS3 / PSVita / Xbox One / Xbox 360 / Wii U / iOS / Android / BlackBerry10 / Windows Phone / Windows Store / HTML5 WebGL
Unity ?
• API complète avec .NET (C#, JS) complétée par l’API Unity
• Rendu moderne avec le Deferred Rendering, DirectX11 Tesselation, Physically Based Shading, etc …
• De nombreux outils embarqués comme : Terrain, Particules, Pathfinding, Lightmapping
• IDE embarqué : Monodevelop mais vous pouvez utiliser Visual Studio
Création des prototypes (Prototype 1)
• Sources de données hardcodées
pour un prototypage rapide
• L’approche par GameObject
d’Unity permet d’obtenir un
prototype en moins de quelques
heures
• Est-ce que le jeu est fun ?
Prototyper rapidement permet
de vérifier l’intérêt même du
gameplay
Création des prototypes (Prototype 2)
• Intégration du premier travail
graphique, l’intégration est
réalisée par les artistes grâce au
workflow Projet / Scene « artist
friendly » d’Unity.
• Création des premiers outils
pour avoir des sources de
données génériques plutôt que
hardcodées
Outil embarqué : Terrain
• L’outil terrain est très puissant et « artist friendly »
• Le rendu du terrain peut être amélioré en ajoutant des shaders personnalisés
• Gestion de la topologie par Heightmapping (Pas de voxels)
• Arbres et végétations avec SpeedTree sur Unity 5
Outil embarqué : Mecanim
• Machine à états pour les animations
• Transitions et mélanges d’animations
• Evènements déclenchables directement depuis les animations en direction du code
Extension de l’éditeur : Base de données objets
• Les outils embarqués sont puissants mais ne répondent pas aux besoins spécifiques de certains
genres de jeux
• Création d’outils personnalisés avec les classes d’Unity (EditorWindow, CustomInspector)
• Serialization XML grâce au framework .NET pour le format des données
Extension de l’éditeur : Outil Nodal
• Création d’un outil répondant au besoin de réussir à créer un jeu complexe avec un effectif réduit
• Gestion de tous les aspects du jeu (Sorts, Cutscenes, Dialogues, Events)
• Permet aux artistes de créer du contenu sans intervention de programmeurs
Outils de l’Asset Store
• Les outils de l’Asset Store sont puissants mais ne remplacent pas les outils propres aux projets.
• Généralement pratiques d’utilisation et puissants, les créateurs sont souvent réactifs pour régler les bugs éventuels.
• Permet aux créateurs de jeux de se focaliser sur la création de leurs jeux sans réinventer la roue
Playtests et Iterations
• Les playtests permettent de
vérifier que chaque nouvelle
fonctionnalité apporte du fun au
gameplay
• Les retours permettent d’ajouter
de nouvelles fonctionnalités au
jeu et à améliorer l’ergonomie
• L’amélioration par les retours
requiert souvent de modifier du
code critique, l’approche par
GameObject d’Unity permet de
minimiser l’impact des
modifications
Portage Console : Le cas Xbox One
• Unity Xbox One fonctionne beaucoup mieux sur Unity 5 que sur Unity 4 (Fog, Performances, etc …)
• Le réseau utilise un protocole particulier d’authentification nécessitant des adaptations pour les fonctionnalités réseau
• Beaucoup de fonctions indisponibles par rapport à l’API disponible sur PC
• Presque un One Click Export ?
Portage console : Le cas Xbox One
• Incompatibilité de Shaders ! (Pas de fixed function shaders, instructions non supportées, limites arithmétiques d’instructions, etc …)
Portage Console : Bilan Xbox One
• Deux semaines pour le portage
• Mise à jour des shaders pour respecter les contraintes de l’API
• Optimisation du code pour moins utiliser le stockage (accès au disque dur de
la console lent) et mettre en mémoire de nombreuses données (cache)
Le jeu : Pré-Alpha
Le jeu : Pré-Alpha
Le jeu : Pré-Alpha
Le jeu : Pré-Alpha
Merci !
• https://facebook.com/EoeGame
• https://twitter.com/EoeGame
• https://facebook.com/midgarstudio
• https://twitter.com/MidgarStudio
• contact@midgar-studio.com
ZELER MAURY Jérémy : Programmeur / Gérant (Midgar Studio)@zelerj
top related