Song of the Myrne

Un RPG au style rétro et plein d'humour sur lequel je travaille.

Myrne 6312

Un shooter en vue du haut et en coop, développé en 72h dans le cadre du 26e Ludum Dare

Song of the Myrne: What Lies Beneath

Une petite aventure en parallèle de Song of the Myrne

mardi 28 juillet 2015

Myrne: Beyond - Noix de coco !


Hello tout le monde.

Aujourd'hui et hier j'ai énormément avancé sur Beyond.

Comme je vous l’annonçais il y a quelques jours dans un petit billet récapitulatif de l'avancée générale du jeu (que je vous conseille de lire^^), le jeu commence à former un tout cohérent et fonctionnel et c'est vraiment cool de bosser dessus sans avoir l'impression que tout reste à faire, qu'on ne le finira jamais, et en jonglant entre 500 programmes différents pour remplir le moindre mètre carré de terrain^^ (avant de tout recommencer parce que le résultat n'est pas satisfaisant).

Bref, ce que j'ai fait durant ces quelques jours :

Les armures


J'ai mis la touche finale (sans compter les petits ajustements qui viendront petit à petit) au système d'armures.

Je ne sais pas pourquoi mais je ne l'avais pas encore fait jusqu'ici. C'est à dire que tout fonctionnait, le jeu donnait pas mal de chiffres, le poids fonctionnait aussi, l'équipement se détériorait... mais concrètement au moment de prendre un coup bah y'avait aucune réduction...

Mais c'est maintenant chose faite ! Du coup équilibrer le jeu est nettement plus facile d'un coup... J'aurais du faire ça plus tôt^^.

C'est quoi cette histoire de poids d'équipement ?
Les pièces d'armures équipées ont un poids afin d'éviter les archers en plates :)

Quoi ?! Mais on est pas libre de faire son perso comme on veut ? C'est nul !
Pas de panique, si ça vous botte vous pourrez bien entendu mettre des points en force pour que votre mage porte une grosse armure. Mais je voulais un moyen de "punir" le port d'armure lourde pour éviter que certaines armures soient purement meilleures que d'autres.

En principe ça se fera aussi via les compétences puisque vos stats de base (que vous pourrez augmenter à chaque level up) limiteront leur niveau maximum. Donc par exemple si vous n'avez que 10 points en dextérité (la valeur de départ), vous ne pourrez pas augmenter votre compétence Archerie plus haut que 10.

J'ai presque terminé la première zone de jeu


C'est à dire le bateau (intérieur et extérieur) puis la zone suivante où vous lancerez vos premières noix de coco à la tête de vos ennemis (hé oui).

Il reste encore des détails à régler à gauche et à droite (un dialogue, la cabine du capitaine,...) mais globalement c'est complet. Du coup j'ai pu jouer un peu au jeu pendant plus que 15 secondes et c'est vraiment fun^^

Lancer des noix de coco est bien plus marrant que prévu...

Faire cette map m'a pris grosso modo deux "jours". Ce n'est pas une très grande map donc les autres prendront sans doute plus de temps (surtout qu'une plage c'est très plat). Je suis vraiment content de ce timing parce que la plage donne bien sans avoir demandé trop de boulot, je pense que j'ai trouvé la bonne manière de bosser les extérieurs.

L'interface


Je suis un peu repassé dessus.

Jusqu'ici l'équipement était décrit par des icônes, ce qui n'est pas super clair (...mais il faut reconnaître que ça fait joli).

Du coup j'ai ajouté un petit descriptif à côté de l'icône (on pourra le désactiver via les options en principe).

J'ai aussi déplacé la fenêtre de description de l'objet vers le milieur de l'écran pour éviter les torticolis

La prise en main était parfois un soucis sur What Lies Beneath mais je compte bien améliorer ce point dans Beyond (histoire de ne plus poster 5 gifs par jour sur les forums Steam pour expliquer aux gens qu'ils doivent remettre leur skill "Attaque de base" dans la barre de raccourcis et non pas leur arme^^').

La vision des PNJ


Les monstres pourront maintenant vous voir même si vous n'êtes pas à la même hauteur qu'eux, trop fou :D

J'avais codé leur ligne de vue un peu n'importe comment, du coup j'ai bien pris le temps de tout re-coder proprement. Au passage j'en ai profité pour augmenter la hauteur à laquelle ils peuvent vous mettre des coups. Se percher pour les frapper tranquille est un peu plus chaud qu'avant.

Je ne suis pas encore satisfait à 100% du truc par contre, je vais probablement apprendre aux PNJs à sauter pour vous rejoindre, à un moment. Ça parait idiot à faire, mais en vrai pas tellement, parce que j'utilise le système de pathfinding d'Unity qui permet aux mobs de trouver un chemin jusqu'à vous, même si vous êtes 3 pièces plus loin plutôt que de se cogner dans tous les murs. Du coup les mobs et PNJs évoluent plus ou moins sur des rails (en vrai une surface qu'on appelle un navmesh) et je vais probablement devoir leur apprendre à sortir de ces rails et gérer leur comportement lorsqu'ils ne sont pas dessus.

Donc tout un nouveau pan de l'IA ainsi que la gestion quitter/rejoindre le navmesh (c'est pas aussi simple que juste placer le PNJ dessus^^).

Ça annonce pas mal de travail donc on verra ce que ça donnera. L'IA est déjà très satisfaisante actuellement donc ce n'est pas du tout une priorité. Pour le moment je m’attelle surtout à développer les maps et les quêtes pour avoir un jeu jouable et pouvoir filer des copies de test aussi tôt que possible (ne vous excitez pas, c'est vraiment pas pour tout de suite :S).

Et pleins de petits trucs


Quelques nouveaux mobs, des objets, dialogues,...

Et surtout, SURTOUT ! La noix de coco dont je suis très fier, ce qui me ferait presque questionner mon choix de carrière^^

Oh boy !

Allez, à la prochaine pour d'autres aventuuuuuures !

Hiarrr !


vendredi 24 juillet 2015

Myrne: Beyond - Hiarrr !


Salut les lecteurs !

Un mois depuis le dernier billet^^. Mais ne vous en faites pas, je ne suis pas encore mort.

Alors, quoi de neuf sur Beyond ?
Un paquet de trucs^^

Le développement avance progressivement mais je ne peux pas vraiment vous faire un compte-rendu au jour par jour comme je le faisais pour What Lies Beneath parce que c'est serait vraiment de la redite :S

Donc je vais profiter de ce billet pour faire le point des derniers mois.

En bref, ça avance. Il y a 36 000 détails qui sont ajoutés/améliorés à chaque fois que je touche au projet. Aujourd'hui par exemple j'ai pas mal bossé sur l'eau (mouvement des vagues, changement de la vue et de la physique une fois sous l'eau,...), hier j'ai bossé sur les collisions de la caméra à la 3e personne et j'ai bien avancé sur l'extérieur du bateau dont l'image est plus bas. Cette caméra est une véritable crasse et je commence a jeter un oeil du côté de plugins qui géreraient ça à ma place^^'.

Cliquez pour voir en plus grand ou cliquez carrément là pour une meilleure qualité
Les fameuses vagues

Pendant ce mois j'ai aussi essayé de bosser sur les niveaux et c'était pas une partie de plaisir :S

Autant j'arrivais à faire des extérieurs assez cools, autant des maps ouvertes comme ça sont ingérables niveau spawn de monstre et limitations du joueur, comme pour l'empêcher d'accéder à une certaine zone sans passer par un tunnel-donjon avant, par exemple.

Du coup je suis retourné à la planche à idées pour les extérieurs du jeu. D'abord je me suis dit que je pourrais faire des îles volantes reliées entre elles par des ponts ou quoi (j'ai même testé des jumpers à la Unreal Tournament mais c'était un peu trop n'importe quoi :D). Mais au final c'était pas terrible et faire les île sous Magica Voxel est une véritable plaie.

Au final je suis revenu sur ce que je sais faire à la base, des maps à la WLB^^.

Cliquez sur les images pour les voir en grand

Des niveaux pas trop grands mais ouverts, avec des murs de végétations/montagnes pour vous bloquer, le tout se passant sur une île pour que l’océan délimite le tout (cette fois on pourra nager par contre, voilà de quoi ajouter quelques challenges dans les donjons).

C'est une disposition que j'aime assez bien parce que ça permet de faire facilement un jeu de base (rappelez-vous des premières versions jouables de WLB: c'était juste un village, un donjon et le chemin vers notre maison) puis d'ensuite étendre ce jeu via des mises à jour gratuites qui apportent vraiment beaucoup (les nouveaux boss de WLB, les nouvelles maps, les quêtes secondaires, etc...).

Du coup j'ai ré-écrit le pitch du jeu aussi (ça m'arrive à peu près tous les mois :D). Les morceaux des îles volantes que j'avais faites se retrouveront bien entendu dans le jeu aussi donc je n'ai pas perdu mon temps pendant que je testais des concepts d'extérieurs.

Et bref, j'ai commencé à bosser sur le début du jeu et ça progresse bien.

On commence dans un bateau

En gros, après ça je dois créer 5-6 maps similaires à celles de WLB (qui en avait 2 dans sa première version release: notre maison et la forêt), un village et 3-4 donjons. WLB n'offrait qu'un donjon en première release mais il était assez grand et les donjons que je vais faire ici seront plus petits. Donc si on considère qu'un étage du donjon principal de WLB = un donjon de Beyond. Bah ça fait qu'il y avait à peu près 3-4 donjons aussi dans WLB 1.0.

Ces donjons-ci seront sans doute plus variés parce que la 3D offre vraiment plein de nouvelles possibilitées (des archers planqués en hauteur qui vous pourrissent la vie, des parties de donjons inondées, un peu de parkour...). Au final je pense que le jeu sera très similaire à un WLB 3D, j'espère que vous ne m'en voudrez pas trop de ne pas innover plus que ça, je ne peux malheureusement pas trop me le permettre avec le passage à la 3D qui l'air de rien ajoute beaucoup de travail supplémentaire.

J'ai plein d'idées plus originales pour après la sortie du jeu. Je préfère ne pas faire trop ambitieux pour commencer, on a vu ce que ça avait donné lorsque je travaillais sur Song of the Myrne (pas WLB)^^.

La sortie n'est donc pas pour tout de suite^^.

L'intérieur du bateau pirate

Niveau features tout commence à plutôt bien tourner. J'ai appris aux PNJ a attaquer à distance l'autre jour et je suis très satisfait de ces mobs.
Comme toujours il reste des tonnes et des tonnes de petits "détails" à régler à gauche et à droite (animation de nage, réglages de caméras, créations d'icônes pour tous les objets,...) et c'est un des trucs qui prend le plus de temps.

Au niveau contenu c'est là qu'il reste la blinde à faire. Il faut plus de mobs (ça prend une éternité à faire), plus d'armes, d'armures, etc... Je passe aussi pas mal de temps à toujours créer de nouveaux meubles et objets (c'est ce que je préfère faire) pour que chaque map ait une ambiance unique.
Il y aura aussi toute la partie dialogues et écriture diverses.

Voilà voilà, comme ça vous voyez un peu où en est le développement concrètement.

A la prochaine !

samedi 4 juillet 2015

Créer un bon tutorial dans votre jeu-vidéo


Salut les gens, il fait chaud et c'est pas facile de travailler. Du coup je vais plutôt vous partager un truc auquel je pensais hier.

Qu'est-ce qui fait un bon tutorial dans un jeu-vidéo ?

Quelques précisions avant de commencer


Je vais principalement me concentrer sur les jeux "d'aventures" (que ce soit des FPS, des RPG, point'n'click,...). Si vous prévoyez de faire un puzzle game ou un clone de Tetris, il y a de forte chance que mes conseils ne vous servent à rien (mais quand-même un peu).

Par tutorial j'entends non seulement l'explication au joueur des concepts du jeu mais aussi la présentation de l'univers, donc on en parlera un peu.

Je vais vous présenter "mes" idées à partir d'un exemple que je vais décortiquer, pour que tout soit bien clair.

Vous êtes prêts ? Alors on y va.

Un bon tuto



Je sais, je vous en parle souvent... Une fois encore je vais vous saouler à propos de... Morrowind ! C'est un RPG open-world dans lequel vous êtes totalement libre.

Ce jeu propose un des meilleurs tutos auxquels il m'ait été donné d'être confronté et j'ai en fait mis pas mal d'années pour me rendre compte que le début était un tutorial.

Et ça, c'est la base d'un bon tuto: le joueur ne dois pas sentir qu'il est dans un tutorial.

Allez, on va suivre ça étape par étape et voir pourquoi il est si bon.

Ne brusquons pas le joueur



Quand le joueur débarque dans votre jeu, il ne connait rien. Et c'est dans la nature humaine de ne pas aimer être en position de faiblesse. Il est donc extrêmement important de ménager le joueur et de ne pas l'écraser sous des informations inutiles dont il n'aura besoin que bien plus tard.

Si vous ne faites pas ça, il risque de se sentir stupide et être frustré ("je ne comprend rien à ce jeu") et quittera simplement le jeu en se disant "bon bah j'y rejouerai plus tard"... Ce qu'il ne fera jamais^^.

Voyons comment les devs de Morrowind on choisi d'introduire leur jeu (ce n'est pas sale).

Vous commencez dans la cale d'un bateau, en face d'un PNJ (Jiub) qui vous parle: "Nous sommes arrivés en Morrowind". Vous ne pouvez pas encore bouger mais vous pouvez regardez autour de vous.

Parfait ! *clap clap, 10/10.



C'est un avis personnel et je ne suis pas certain que tous les game designers le partageront mais je pense qu'il est extrêmement important de placer le joueur directement dans son personnage plutôt que de lancer 40 cinématiques en début du jeu (bon, techniquement, il y a une cinématique de début dans Morrowind mais on nous parle en "tu" et puisque c'est un rêve que notre personnage fait, je considère qu'on est déjà dans la peau du perso même sans être aux commandes).

Je trouve ça important car ça permet aussi de régler les options du jeu (vidéo, sensibilité de la souris, etc...) dès le début et de voir directement s'il y a un soucis technique (bug d'affichage ou quoi).

Cette courte phase est aussi l'occasion de nous donner un peu d'infos sur l'univers dans lequel on va évoluer: "Nous sommes arrivés en Morrowind". C'est toujours mieux de donner l'info au joueur par le biais de personnages plutôt que par une cinématique ou pire, du texte. Le joueur a plus de chance de prêter attention à ce que vous lui dites puisqu'il est dans le perso et c'est plus immersif.

Jiub vous fait rapidement la causette avant de s'interrompre. "Silence, voilà le garde".

Une fois encore on nous donne de manière subtile des infos sur notre personnage et l'univers. On est donc un prisonnier. Je ne vous le dirai plus mais vous remarquerez dans la suite que c'est typique de cet excellent tuto, on vous donne les infos sur le monde petit à petit, pour bien vous laisser le temps de digérer.

Le garde vous demande de le suivre. Tadaaa ! Vous pouvez maintenant marcher ! Un peu plus loin il s'arrête devant une échelle surplombée d'une trappe. "Montez sur le pont et blablabla".

Encore une bonne leçon pour votre tuto. Cette courte phase n'a l'air de rien mais le jeu vient de vous apprendre de manière totalement immersive à vous déplacer et à interagir avec les objets (ici la trappe). Je parle d’immersion car on a choisi de ne pas vous donner l'info directement. Dans un jeu moderne (où les tutos ont tendance à nous prendre pour un con et à nous noyer sous le texte), il y a de fortes chances pour que le jeu se soit mis en pause et qu'une fenêtre soit apparue pour vous dire "Utilisez les touches Z, S, Q et D pour vous déplacer", "Appuyez sur 'E' pour ouvrir la trappe"...

Mais ici non. On vous dit simplement aller, suis mois, puis ouvre cette trappe. Ça peut paraître moins bien que de dire au joueur sur quelle touche appuyer mais ce qu'on y gagne c'est qu'on ne sort pas du personnage. On ne te sors pas de la fiction pour te dire "tu est dans un jeu-vidéo, utilise ton clavier".

Bien contrôler le joueur avant de le livrer à lui-même



L'astuce c'est que tout ça se passe dans un espace confiné avec aucune autre interaction possible. En principe le joueur n'aura aucun mal a effectuer ces actions simples. On s'assure aussi qu'il maîtrisera les concepts de base (marcher, utiliser) dans la prochaine section puisqu'il est impossible d'y accéder sans maîtriser ses concepts (là où un tuto uniquement sous forme de texte échouera lamentablement).

Une fois sur le pont du bateau, vous n'avez pas 36 endroits où aller, un garde sur le quai vous attends (et bloque le passage). Des murs invisibles vous empêchent de sauter du bateau et de partir n'importe où. Je ne suis pas fan du concept de mur invisible mais c'est le seul endroit du jeu où il y en aura, on pardonnera donc ça^^. Vous parlez au garde (apprentissage: la touche action permet de parler) et créez votre personnage.

Rien de spécial à dire ici, c'est juste la création du perso. Ça peut se faire de plusieurs manières pour s'adapter au niveau du joueur (si vous découvrez le jeu, vous pouvez prendre une classe pré-faite).

On vous demande ensuite de vous rendre au bureau de recensement. Pas difficile c'est le seule endroit où vous pouvez vous rendre. Vous entrez dans le bâtiment et...

Vous êtes libre, pour la première fois. Un tout petit peu libre... Ce qui m'amène à un aspect du tuto Morrowind vraiment génial.

Ça vous aura peut-être frappé en me lisant mais je vous ait dit plus haut que Morrowind était un jeu à monde ouvert dans lequel on est très libre. Hors depuis le début du tuto vous êtes sur rails... C'est pourri, non ?

Ben en fait pas vraiment. Déjà si c'est long à lire ici, tout ça se passe en 5 min grand max en jeu (sauf la création de perso si vous êtes perfectionniste comme moi^^). Mais surtout c'est un truc important lorsque l'on traite du monde ouvert. Si vous lâchez votre joueur au milieu du monde vous allez vraiment galérer pour lui apprendre quoi que ce soit. En fait vous seriez probablement obligé de recourir à des fenêtres de texte et vous auriez du malà vérifier que le joueur a bien compris un truc avant de passer au suivant.

Même si Arcanum est un jeu génial, la première fois que j'y ait joué je n'ai pas été capable de jouer plus de 5 minutes parce que le jeu nous lâche littéralement au milieu des bois sans aucune piste (ou presque) d'où aller. C'est bien plus tard (en années) que je l'ai relancé et ait réussi à franchir le cap du "pas de tutorial".



Donc même si ça peut paraître un peu nul, c'est important de confiner le joueur dans des espaces clos et de le forcer à faire ce que vous attendez de lui avant de passer à la zone suivante. Rappelez-vous juste comme je l'ai dit au début de ménager le joueur, n'exigez pas de lui de faire des actions complexes qu'il ne devra maitriser qu'à la fin du jeu... Vous aurez tout le jeu pour lui apprendre ça, concentrez-vous sur la base.

Le but est de lâcher le joueur aussi vite que possible (tout en s'assurant qu'il maîtrise ce que vous lui avez appris). Gardez toujours en tête qu'un tuto, aussi bon soit-il est ennuyant. Un bon tuto doit être court. Quitte à refaire une voir plusieurs petites phases de tutos avancés plus tard dans le jeu.

Dans le bureau de recensement. On vous apprend encore des trucs sur votre situation: vous avez été libéré sur demande de l'empereur. Et là vous commencez à comprendre que Morrowind est en fait inspirée de l'empire romain. Le PNJ à qui vous devez parler achève la création de perso (elle est coupée en deux pour permettre au joueur de souffler, encore un bon point pour le jeu) puis vous apprend à ramasser un objet (un papier reprenant vos infos de perso).

Comme j'ai dit, vous êtes libre dans cette pièce. Et en principe tout joueur de RPG va donc commencer à looter tout ce qu'il voit... et se faire engueuler et confisquer la marchandise par le garde de la pièce.

Le jeu vient encore de vous apprendre un truc, subtilement et sans casser l'immersion. Le vol dans le jeu est puni. Les devs du jeu ont choisi de mettre cette pièce avec ce garde spécial (il ne vous arrête pas, pas d'amende, pas de bain de sang^^) plutôt que de vous laisser apprendre ça à la dure dans "le monde réel du jeu". Je le redis, c'est une très bonne idée d'utiliser des espaces confinés et contrôlés (par vous, le développeur du jeu) pour apprendre des trucs au joueurs.

Étendre le champs d'action



Vous l'aurez peut-être remarqué, mais le tuto de Morrowind, bien que très linéaire, ouvre progressivement la zone de jeu. Il n'y a pas si longtemps, vous ne pouviez pas bouger, puis vous avez pu marcher dans la cale sans interactions possibles... Puis vous êtes montés sur le pont où on vous a montré le monde mais sans vous laissez y gambader... Pour enfin vous vous retrouvez dans une pièce où vous pouvez interagir avec divers objets mais sous le contrôle de PNJs.

Muni de votre ordre de libération, vous passez dans la pièce suivante. La zone de jeu s'élargit encore. Cette zone est constituée de deux pièces, la folie furieuse^^. Ici pas de PNJ, vous êtes libre de prendre tout ce que vous voulez, notamment votre première arme, et le jeu vous apprend quelques nouveaux trucs comme crocheter un coffre verrouillé. Ces actions deviennent plus complexe donc il y a tout de même une pause avec fenêtre de texte mais c'est très concis et simple, on ne vous noie pas sous l'info.

Dans la pièce suivante (après une petite sortie dans une cour extérieure pour varier les environnements) vous donnez l'ordre de libération à un mec, qui vous donne un paquet pour Caius Cossades (et plein d'infos sur le monde), un PNJ important du jeu. Vous sortez et CA Y EST ! Cette fois vous êtes vraiment libre d'aller où vous le souhaitez et de faire ce que vous voulez !

Ah ouf, ce tuto est enfin fini alors !

Heu... Pas vraiment^^

Le tuto après le tuto



C'est ici que le génie du jeu commence. Je vous disais au début que j'ai mis du temps à comprendre que le tuto de Morrowind en était un... Et vous avez du vous dire que j'étais stupide, tout ce qu'on a fait jusqu’ici, bien qu’immersif et non insultant envers l'intelligence du joueur (important^^) sentait quand-même le tuto.

Mais maintenant qu'on est totalement libre, c'est là qu'on ne se rend plus compte de l'aspect tutorial de la suite des événements. C'est reparti^^.

Vous êtes dans le petit village de Seyda Nihyn et il vous reste plein de trucs à apprendre. Le contrôle et l'espace confiné c'est bien pour vous, développeur. Mais pas top pour le joueur. Les mecs qui ont fait Morrowind l'ont bien compris et ils ont décidé de vous lâcher dans la nature.

Mais ça ne veut pas dire qu'ils vous ont abandonné à votre sort. Ce premier village n'en a pas l'air mais il fait toujours partie du tutorial.

Premièrement on doit se poser une question cruciale: est-on vraiment libre ?

Oui... et non !


En fait ce petit village a une situation particulière sur la carte. D'un côté on est sur la côte, ce qui retire pas mal de directions possibles où aller. On est aussi au milieu de marais, ce qui décourage un peu l'exploration sauvage. Il n'y a qu'une route et on se retrouvera rapidement devant un panneau nous parlant de Balmora... Ça tombe bien, c'est là qu'on nous a dit de livrer le paquet.

Mais le village lui-même a encore des trucs à nous apprendre. On y fera notre première quête qui va nous apprendre entre autre à attendre x temps, on y visitera notre premier magasin, on aura des choix de dialogues, des PNJ nous proposent déjà de l'entrainement contre quelques pièces,... Tout ça dans un tout petit village donc le joueur n'est pas perdu.

On part ensuite pour Balmora. On peut considérer que le tuto prend fin lorsque l'on quitte Seyda Nihyn mais je considère qu'il continue jusqu'à Balmora. Arrivé là-bas vous remettez le paquet (ce qui vous demande un peu de recherche pour trouver Caius) et Caius vous parle des guildes (on peut rejoidre plusieurs guildes dans le jeu: guilde des mages, des guerriers...) qui sont un excellent moyen de se lancer dans le jeu.

Caius vous donne aussi votre première vraie quête... Mais on vous a conseillé d'aller rejoindre une guilde, c'est important ! Car lorsque vous faites sa quête. Vous allez rapidement vous faire DE-MO-LIRE par un ennemi qui surveille l'entrée des ruines où il faut aller.

J'estime que le tuto prend fin à ce moment là. Les développeurs vous poussent du nid, assez brutalement pour bien vous faire comprendre que le "je te tiens par la main" c'est fini. On vous a donné quelques pistes mais vous êtes à présent réellement libre et vous avez toutes les clés en main pour vous amuser sans prise de tête.

On conclut ?



C'était long, hein ?^^

Ce qu'il faut retenir d'un bon tuto :


  • L'immersion est importante. Un joueur ne sera pas trop dérangé par un tutorial du moment que vous ne rendez pas évident le fait que c'est un tuto. Placez le aux commandes le plus rapidement possible, évitez les cinématiques ou textes d'intro trop longs.
  • Soyez bref, allez droit au but. Un tutorial trop long va décourager le joueur. Certaines personnes n'ont le temps de jouer qu'une heure ou deux de temps en temps, ne leur volez pas ce temps libre en faisant un tuto d'une heure. Je vous parle de Morrowind et pas d'Oblivion et Skyrim pour une bonne raison. Leurs tutos sont longs et ennuyants...
  • Gardez le joueur sous contrôle. Veillez à ce qu'il maîtrise ce que vous lui avez appris avant de passer au truc suivant. Je vous conseille pour ça d'utiliser des petits espaces où les possibilités d’interactions sont limitées à ce que vous apprenez au joueur.
  • Ménagez le joueur. Faites des pauses au milieu de votre tuto pour le laisser digérer l'info.
  • Donnez-lui de plus en plus de liberté. Être enfermé dans un tuto n'est pas très agréable mais c'est nécessaire, ouvrez l'environnement et les possibilités d'action petit à petit.
  • N'apprenez pas d'actions trop complexes et présentement inutiles au joueur. Surcharger votre tutorial est une très mauvaise idée. Au pire, aménagez une seconde phase de tuto plus loin dans le jeu pour apprendre les actions complexes. Si le joueur se sent écrasé par tout ce qu'il doit apprendre, il ne va pas s'amuser.
Et voilà ! J'espère que ça vous aidera et que plus jamais... PLUS JAMAIS, je n'aurai à subir un tuto comme celui de The Witcher 2 ! J'écrirai peut-être un billet bonus pour vous parler des mauvais tutos et voir ce qu'il faut éviter.

Beaucoup de développeurs ont tendance à laisser le tutorial de côté et à l'ajouter à l'arrache lorsqu’ils ont fini leur jeu. C'est une très mauvaise décision. C'est certain que ce n'est pas la partie du jeu la plus passionnante à créer, mais c'est la première chose que verront les joueurs lorsqu'ils lanceront une partie. Comme pour tout, la première impression est extrêmement importante et ça serait une erreur de ne pas soigner son tutorial.

En attendant, amusez-vous bien et développez de bons jeux :)


vendredi 26 juin 2015

Myrne: Beyond - Cuisiner


Salut les lecteurs !

Quelques news à propos de Beyond aujourd'hui. Pour le moment je travaille à un bon rythme sur le jeu (et ouais, c'est les vacances^^).

Du coup j'ai pu "terminer" la sauvegarde. J'en suis pas encore super satisfait mais on peut passer d'un niveau à un autre, bouger des objets, en prendre dans un level, les déposer dans un autre... sans que ça ne pose problème ou que les trucs soient réinitialisés/dédoublés/etc...

Donc c'est plutôt cool.

J'ai aussi ajouté un genre de journal de quête en jeu et j'ai pris à peu près 500 ans pour l'animer^^ (et c'est encore un peu brusque comme animation). Vous verrez ça dans la vidéo un peu plus bas.

J'ai aussi commencé à réfléchir au crafting.

Comme je l'ai probablement déjà écrit quelque part sur ce blog, j'aimerais bien éviter autant que possible les interactions avec des menus pour plus d'immersion.

Bon, je suis pas un gros fifou donc s'il faut vraiment un menu pour un truc, je préfère en mettre un plutôt que de mettre un système soi disant immersif qui est au final juste pénible et lent à utiliser... Ce qui fait que je dois pas mal réfléchir sur comment je vais implémenter le crafting^^.

Voilà ce que ça donnera pour la cuisine en tout cas :



En principe tout ce qui est création simple et destruction d'objets devraient consister à lancer un truc sur/dans un autre machin^^.

Par exemple lancer un bâton sur une machine à scier le bois pourrait vous donner du bois. Je vais juste devoir trouver un moyen pour que le résultat de l'opération soit clair pour le joueur.

Pour la création d'objets par contre je devrai sans doute utiliser un menu, je ne sais pas encore.

Enfin, je pense que le crafting sera moins important/fréquent que dans What Lies Beneath. On verra^^.

Bref, c'est tout pour aujourd'hui. A la prochaine !

mercredi 3 juin 2015

Myrne: Beyond - Les news "un peu nulles mais en fait non" du jour


Salut les lecteurs !

Aujourd'hui j'ai fait une grosse, grosse, avancée dans le développement du jeu...

J'aimerais vous montrer plein d'images, de vidéos et de trucs cool, vous faire comprendre à quel point c'est génial et à quel point c'est un vrai soulagement d'enfin avoir trouvé une solution facile à ce problème qui me stresse depuis quasiment le tout début du projet mais...

...Mais cette avancée est un peu nulle en fait vue du côté utilisateur... Bref, c'est une news technique aujourd'hui donc si vous n'êtes pas intéressés par ce genre de billets, retenez juste que j'ai travaillé sur la sauvegarde et partez donc regarder Kung Fury pendant que je raconte ma vie ;)

Voilà quand-même de quoi étancher votre soif d'images inédites (kinda) ^^

Pour ceux qui restent, la sauvegarde !

C'est un soucis assez épineux sur lequel je réfléchis depuis un moment. Comment gérer le chargement d'une sauvegarde quand le joueur a amené des objets d'un niveau dans un autre ? Comment rendre son équipement au joueur lors du chargement d'une partie ?

Ben quoi, tu l'as pas déjà fait pour What Lies Beneath ?

Oui et non. Dans What Lies Beneath, je pense vous en avoir déjà parlé mais les objets sont simplement représentés par des chaines de caractères, ou des mots si vous préférez ("epeeFer", "bouclierBois",...). Ce qui les rend assez simples à gérer puisque du coup sauvegarder et charger l'inventaire du joueur consiste simplement à écrire ces mots dans un fichier, puis lorsqu'on charge une partie, lire le fichier et écrire les mots dans l'inventaire du joueur.

Mais dans Beyond, un objet est beaucoup plus complexe que ça puisque~

Bah c'est débile, t'aurais du utiliser le même système que dans WLB !

Hé non^^. Ce qu'on gagne en simplicité dans WLB, on le perd en complexité et en flexibilité. Dans WLB, une épée en fer ne sera jamais différente d'une autre. Comme je l'ai dit, le jeu ne retiens que "epeeFer". Lorsqu'on la ramasse sur le corps encore chaud froid d'un squelette et qu'on jette un oeil à ses stats, le jeu va regarder dans un script tout ce qui concerne "epeeFer": son image, sa puissance, son nom, le jeu de mot vaseux lui servant de description, etc...

Bref, dans What Lies Beneath, les objets sont figés, ils n'ont pas vraiment d'existence physique en dehors de l'interface et des effets qu'ils ont sur les stats de notre perso. C'est donc extrêmement simple de les "transporter" d'une scène à une autre (un coffre ne contient par exemple qu'une liste de mots, qu'on va effacer si on le loot).

Mais dans Beyond, on a besoin que certains objets soient uniques, sans s'amuser à ré-écrire une liste de caractéristiques pour chacune de ses formes. Courage, je vais m'expliquer^^. Pour reprendre l'exemple de notre épée en fer, dans Beyond, le stuff a une durabilité. Notre épée va s’abîmer en combat, puis on va la réparer, ce qui va baisser sa durabilité totale mais l'empêcher de se casser tout de suite, etc... Les objets n'ont plus des valeurs figées qu'on peut aller lire dans une liste, ils sont dynamiques.

Imaginez que je veuille créer une épée en fer un peu spéciale. C'est celle de notre père. Elle est en tous points identique à une épée en fer normale, sauf qu'au lieu de s’appeler "Epée en fer", elle s'appelle "Epée de papa".

Dans WLB, je devrais éditer ma liste d'objets, copier/coller tout ce qui concerne "epeeFer" dans un nouveau truc "epeeFerPapa" juste pour changer le nom (bon en vrai je m'y prendrais un peu différemment mais vous voyez l'idée: pour chaque épée un tout petit peu différente, je devrais aller éditer un script, recompiler le projet, etc...). Imaginez le bordel absolu si je commence à ajouter la possibilité d'enchanter son équipement, sa durabilité comme dans Beyond, etc...

Bref, dans Beyond, il n'y a pas de listes décrivant un objet, les infos sont directement écrites dans l'objet.

Cliquez pour voir en grand


Ça permet de faire pleiiiin de chouettes choses, et ça rend l'ajout d'objets en jeu beaucoup plus rapide et agréable :)

...et ça rend la sauvegarde difficile, apparemment...

Oui. On ne peut donc plus se contenter d'écrire des mots dans un fichier... On va écrire toutes les stats des objets du joueur dans un fichier. Ce n'est pas très difficile à faire, c'est exactement la même chose pour la sauvegarde des stats, skills, etc dans WLB.

Avec juste un soucis... Comment va-t-on faire pour que l'objet apparaisse en jeu ? C'est ça la vraie "difficulté" (bon en vrai c'était facile mais il a fallu apprendre comment faire^^). En gros, comment savoir au moment où on recharge la partie, quel préfab (modèle d'objet, une épée en fer, par exemple^^) on doit spawner pour ensuite lui appliquer les caractéristiques enregistrées (genre le fait que l'objet soit à moitié pété contrairement au modèle par défaut ou qu'il ait une description différente) avant de la mettre dans l'inventaire du joueur ?

Il y a deux solutions :

La première, la plus classique dans la manière dont on travaille avec Unity, serait de garder une liste de tous les objets pouvant être manipulés par le joueur... Et ensuite lier cet objet (ce préfab) à quelque chose qu'on écrirait dans notre fichier de sauvegarde... Comme... un mot !

Ça voudrait dire donner un nom unique à chacun de mes objets, comme "epeeFerPapa" puis établir dans un script que l'objet "epeeFerPapa" est lié au prefab de l'épée en fer... Hé mais ! Mais c'est pas ce qu'on voulait éviter ?!

Si si^^. Ça fonctionnerait mais ça serait (presque) aussi contraignant que tenir à jour la liste des objets de What Lies Beneath ! Heureusement il y a une deuxième solution, sinon je n'écrirais pas ce billet ;)

On va apprendre à l'objet quel est le préfab (qui est en fait un fichier) qui lui est lié. Et lorsqu'on sauvegardera toutes les infos sur l'objet, on va sauvegarder ce nom de fichier avec les autres infos (puissance, nom, description,...).

Problème réglé !

Au moment où on charge la partie, on lit les infos de l'inventaire du player. Pour chaque objet on trouve le nom de son prefab (de fichier) on charge ce prefab dans le monde puis on a plus qu'à lui appliquer toutes ses caractéristiques et à le mettre dans l'inventaire. Yay!

La seule contrainte c'est d'écrire le nom du fichier dans l'objet, ce qui se résume à un copier/coller vite fait. C'est mieux que de tenir une liste de tous les objets existants à jour, pas vrai ?^^

Mais euh, au final c'est si terrible d'utiliser une liste comme dans WLB ?

OUI ! WLB est devenu un gros projet avec le temps, le temps de compilation (temps pour que je puisse lancer le jeu dans l'éditeur après avoir modifié un script) est assez conséquent et c'est vraiment pénible de devoir patienter plusieurs dizaines de secondes sans pouvoir rien faire simplement parce que j'ai corrigé une faute d’orthographe dans la description d'un objet.

A force d'ajouter des objets, la fameuse liste est aussi devenue très très grosse, ce qui pose des soucis lorsque je veux compiler le jeu en version navigateur web (pour The Sorcerer donc).

Enfin, du fait que tout soit hardcodé dans un script, ça ne laisse aucune place au modding. Je ne pense pas que Beyond sera moddable, mais cette manière de gérer les objets est un premier pas dans cette direction, un jour mes jeux seront moddables, c'est promis^^

Conclusion



Et voilà. Il reste encore pas mal de travail pour que la sauvegarde soit opérationnelle mais l'étape la plus difficile est passée et c'est un vrai soulagement pour moi :)

Désolé pour ce billet très technique, je pense qu'il y en aura encore pas mal vu qu'il reste pas mal à faire au niveau du core du jeu.

Je crée un peu de contenu aussi pendant ce temps là mais je suis arrivé à un point où il et difficile de progresser sans implémenter des changements de scène corrects (si je passe d'une carte à une autre, je dois éviter que les objets ramassés par le joueurs réapparaissent, que les PNJ reprennent leur dialogue à zéro comme si on ne leur avait jamais parlé, etc...).


vendredi 22 mai 2015

Myrne: Beyond - Nouvelle interface utilisateur


Hello les lecteurs !

Un billet plein de petits détails aujourd'hui pour vous montrer un peu ce que j'ai fait ces derniers temps. Si vous n'aimez pas lire, jetez quand-même un petit coup d'oeil à l'image de l'interface, plus bas, avant de partir^^.

J'ai principalement continué à implémenter les compétences et le fonctionnement du leveling. Tout semble maintenant fonctionner correctement (un ennemi ne prend plus plein de dégâts parce qu'on lui a mis un coup d'armure à grosse valeur d'armure^^) et j'ai commencé à travailler sur les types d'armures.

Quand on se fait taper, nos compétences augmentent maintenant selon le type d'armure(s) qu'on porte. Si vous avez pour habitude de vous promener avec des pièces d'un peu tout type d'armure, vos compétences augmenteront un peu dans tout. Si par contre vous ne portez essentiellement que de l'armure légère, cette compétence augmentera beaucoup plus vite, logique.

Le choix de la compétence qui augmente se fait via un random. Le jeu prend une de vos pièces d'armure au hasard et augmente la compétence associée à cette pièce (la pièce principale, le torse, a toujours plus de chance d'être choisie). C'est également cette pièce qui perd un point de durabilité (rappel: votre stuff ne durera pas éternellement). L'idée c'est qu'on considère que c'est là que l'ennemi vous a touché.

En principe je pense ajouter une limite de poids de l'équipement que vous pouvez porter. Vu que je ne compte pas limiter l'inventaire j'ai du trouver un moyen de "donner un coût" à l'utilisation d'armures lourdes.

Bref, tout ce pavé ennuyant pour vous montrer la nouvelle interface :)

Jusqu'ici elle faisait un peu sci-fi parce que c'était la direction prise par le jeu à la base. Vu qu'on reste finalement dans de la fantasy classique, retour au brun ;)

Vu que toute la transparence partout rendait souvent la lecture de l'interface difficile, j'ai aussi ajouté des images de fond aux éléments de l'interface. C'était super chiant à faire mais je voulais un truc un peu plus joli que ce que je faisais jusqu'ici (dans What Lies Beneath par exemple). Et je pense que c'est réussi^^.

J'ai pioché des idées à droite et à gauche et j'ai finalement accouché de ceci :

Cliquez pour voir en grand
Tadaa !

Elle changera sans doute encore pas mal au niveau de l'arrangement et du contenu durant le développement j'imagine (elle ne supporte pas du tout le changement de résolution en ce moment) mais je crois que le style graphique s'approche de la version définitive.

Conclusion

Le fonctionnement du personnage, les dégats, etc... avancent bien. Le tout me semble cohérent et équilibré (on verra avec le temps^^) et en principe la montée en puissance de votre perso devrait se faire de manière assez progressive. Je voulais éviter un système comme celui de WLB où on sent une grosse différence avant/après quand on monte de niveau.

Rassurez-vous, si tout ce système semble passif, vous aurez votre mot à dire au moment du level up. Vous aurez des points (5?) à répartir dans les stats de base (force, dex, agilité, magie, et peut-être d'autres plus tard...).

Ses stats influencent le jeu directement évidemment (force augmente les dégâts de votre massue préférée,...) mais aussi les compétences qui sont liées à cette stat. Par exemple, avec une dextérité de 10 comme sur ce screenshot, vous ne serez pas capable d'augmenter votre tir à l'arc au delà de 10.

dimanche 17 mai 2015

Myrne: Beyond - Yay, des news!


Salut les lecteurs !

Ça fait longtemps. Je suis passé par une agréable petite phase de "je n'ai aucune idée de ce que je suis en train de faire, c'est stressant, jouons plutôt à GTA et à Dark Souls 2 à la place de travailler".

Heureusement, modifier l'éditeur de dialogues pour qu'il fonctionne avec le "nouveau" système de dialogues de Beyond (vous ne devriez pas vraiment voir de différence avec les dialogues de WLB mais dans les coulisses, ça fonctionne mieux^^) m'a un peu remis sur les rails (je vois mieux l'avancement du jeu).

J'ai continué a bosser sur divers trucs importants (le fonctionnement du leveling) et moins importants genre le sang.

J'aimais bien l'effet des persos qui se brisent en petits triangles à la mort mais ça a tendance a planter je ne sais pas trop pourquoi (c'était pas mon script, je suis pas très à l'aise quand il s'agit de toucher à de la géométrie en code^^). Du coup j'ai plutôt remplacé ça par des petits cubes rouges (pour les créatures qui saignent rouge en tout cas) qui giclent partout, ce qui donne assez bien. Puis un jeu Myrne sans un peu de gore, ce n'est pas un jeu Myrne^^. Les petits triangles sont toujours utilisés lorsqu'une arme ou projectile se brise.

En parlant d'effets visuels, j'ai changé les effets de feu pour qu'ils respectent beaucoup mieux l’aspect graphique du jeu.



J'ai continué à bosser sur l'équipement, pour le moment il ne fonctionne pas mais il s'affiche sur le perso et on peut voir l’allure de son héros dans la fenêtre d'inventaire. J'ajouterai sans doute une caméra à la 3e personne à un moment.

Et je crois que c'est à peu près tout ce qui est digne d’intérêt (je ne vais pas vous parler de portes ou des trucs copiés/collés depuis Song of the Myrne^^).

Je vous laisse voir tout ça dans cette vidéo.


A la prochaine !