Bienvenue !

Le but de ce blog est multiple :

- servir de pense-bête où je centralise mes idées pour la création d'un jeu de type RPG et de son univers en 3D.
- d'album souvenir de l'évolution du projet.
- de moyen de présenter mon évolution et ma démarche d'apprentissage d'Unity tout au long de ce cas pratique.


Scriptable Object (SO)

 


Après de longue recherche sur comment mettre en place une architecture modulaire et après vu la façon utilisée par Roundbeargame en utilisant les scriptable object mais toutefois, son tuto super intéressant quand même, s'applique malheureusement à un jeu 2,5D donc impliquant uniquement des dépacements dans un même plan. Désirant voir comment appliqer ça à la 3D 3ème peronne j'ai donc continuer ma recherche de documentation  sur ce sujet.


Pour rendre des object globaux utilisables partout j'ai commencé naturellement par la technique du singleton que l'on retrouve un peu partout, mais cf la vidéo ci dessus, les singleton engendre de nombreux problèmes notament de dépendance et idéalement il faudrait s'en passer.

Mes périgranations m'on fait découvrir le premier Open project d'unity qui se trouve être le développement open source d'un jeu d'aventure à la 3ème personne. Leur philosophie étant d'utiliser au maximum les scriptable object, je suis donc parti pour étudier leur solution en détail qui se trouve être modulaire comme je le souhaite.



Les scriptable object sont des asset comme un prefab par exemple qui contiennent des données, ils ne peuvent être accroché à un gameobject comme pourrait l'être un script Monobehaviour mais  sont accessible durant l'exécution et surtout ne perde pas leur valeur modifiée lors de l'exécution  quand on stop celle-ci. 

L'idée est de décomposer les choses en scriptable object et que chacun prennent en charge des données . Ainsi ils jouent un peu le rôle de brique légo que l'on peut alors utilisée pour alimenter des script monobehaviour générique qui vont les utiliser. Ainsi les script sont commun et générique et les différences  ou du moins ce qui est variable est géré par les scriptable objets. 

par exemple : un SO  contiendrait les différentes varibles qui caractérise mon personnage dont par exemple sa vitesse. pour géré son mouvement un script monobehaviour placé sur le personnage utiliserait les données (la vitesse)  du SO du personnage. si je veux faire de même pour un PNJ je n'ai qu'à créer un SO spécifique avec les données du PNJ. Ajouté le même script qui gère son mouvement sur le PNJ mais associé cette fois le script Au SO du PNJ que je vient de créer. 

Voici une autre vidéo qui présente bien l'intérêt des SO notamment pour la gestion de pnj ou comme pour créer un jeu de carte type heartstone par exemple.  

Commentaires