J’apprends à utiliser Unity et le C# pour créer mon jeu, et je suis des tutoriels sur internet pour y arriver. L’autre jour , j’ai appris que le net était coupé depuis plusieurs heures, alors que je continuais à coder sans même m’en être soucié . Je me sers de moins en moins d’internet pour apprendre, j’arrive maintenant à coder par mes propres moyens juste en me servant de la documentation officielle et de mes acquis ! *AutoCongrats*

J’ai donc créé un magasin dans mon jeu, une boutique qui permet d’acheter des items pour faciliter la progression. En gros, vous accumulez de la monnaie en progressant dans l’aventure, qui peut être dépensée dans la boutique. Plusieurs items, comme des armes et des points de vie seront disponibles ! Et même des licornes !! Ces items peuvent aussi être obtenus au cours de l’aventure, par un système très basique de loot aléatoire : à la destruction d’un ennemi, un nombre aléatoire est généré. Si celui ci est supérieur à la statistique Chance du joueur, un des objets placé dans la liste d’items à dropper est instancié et apparaît à l’écran. Les Objets ont pour l’instant les mêmes statistiques, mais j’espère pousser le système de Loot plus loin.

Mais pourquoi le magasin est-il nécessaire si nous pouvons tout trouver en jeu ? Cela découle d’un choix de GamePlay important, et de l’orientation que prend mon développement (j’y reviendrai). Lorsque le joueur meurt, il perd toutes ses augmentations ! Sauf, son argent et sa progression dans le jeu. La difficulté dépendra en partie de l’arsenal de notre héroïne toute de plumes vêtue, mais augmente quand même d’un niveau à l’autre. Il sera donc impératif de passer par la case Shopping, ou retourner dans des niveaux plus ou moins généreux en bonus :). L’intérêt du magasin est aussi de pouvoir acheter une arme plus puissante, ou d’augmenter une statistique pour se faciliter la suite. L’équilibre sera un point central de toutes les mécaniques misent en place, donc j’espère vraiment pouvoir vous montrer quelque chose de très concret prochainement. Mais bon, quand je vois la quantité de travail que j’abats et toutes les choses sur lesquels je reviens par soucis d’optimisation … Je comprends maintenant pourquoi certains jeux mettent autant de temps à sortir …
Pour revenir sommairement au code du magasin, il faut réfléchir optimisation et flemme. Le magasin est sommairement composé d’éléments que je dois réutiliser au maximum. J’ai commencé par créer une Class ItemShop. les Items du shopping sont définis par : un nom (objectName), un prix (cost), un « programme » (methodName), et une description (loreText). Je pense le modifier et rajouter l’apparence aussi. Cette class va être réutilisée pour définir chaque items de mon shop. Tous les items auront le même code, et ces quelques variables me suffiront à acheter des objets différents avec un seul code : le ShopSystem !

Il faut le voir comme un super intendant : le ShopSystem est appelé quand le ShopTrigger est cliqué (un objet est cliqué) pour l’achat : il affiche la fenêtre d’achat qui va chercher le nom de l’objet, sa methode, son prix, sa description (vous vous souvenez de la Class ItemShop ? C’est ici qu’elle est utilisée). Si l’argent du joueur est supérieur à la valeur de l’objet, alors l’objet peut être acheté. Il apparaît alors dans la fenêtre des bonus actifs 🙂 Essayer d’acheter un objet qu’on a déjà n’est pas possible, mais qui sait ce qu’il peut se passer … Le FeedBack est primordial : si le joueur ne voit pas clairement que l’item est dans son inventaire, il risque de se lasser très vite ! Et ça je veux pas !
J’éspère que vous devenez un peu curieux de voir ce que ça devient, Stay Tuned et à plus tard !
J’aime beaucoup votre blog. Un plaisir de venir flâner sur vos pages. Une belle découverte. blog très intéressant. Je reviendrai m’y poser. N’hésitez pas à visiter mon univers. Au plaisir
J’aimeJ’aime