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

Un action-RPG en pixel-art

vendredi 31 mai 2013

Song of the Myrne - Nouveau journal de quêtes

Salut les gens !

Juste deux petites images du nouveau journal dont je vous parlais hier

Cliquez sur les images pour les voir en grand



Je vais probablement réutiliser ce système de signets dans le livre pour permettre de switcher entre le journal de quêtes et la feuille de personnage plus facilement.

J'ai aussi l'intention (un jour) de mettre le menu et les options dans le journal histoire d'uniformiser un peu l'interface. Je jetterai aussi un oeil à l'inventaire mais je ne pense pas qu'il y ait moyen de le faire tenir dans le journal.

Tutorial Unity3D: Construire ses propres outils - Partie 2

Salut les gens !

C'est parti pour la partie 2 de cette suite de tutoriaux.

Dans cette partie (qui sera courte) on va apprendre un truc tout con qui va peut-être changer votre vie puis on verra comment et pourquoi lancer une fonction d'un objet directement depuis l'éditeur, alors que le jeu ne tourne pas. Ça ira assez vite, il s'agit littéralement de deux lignes de code^^.

Organiser ses scripts



La première commande c'est @script AddComponentMenu ("Chemin du script")

Ça fait quoi ?

Ça vous permet d'ajouter un script à un objet sans forcément passer par le menu "Component/Scripts" qui peut vite devenir bordélique quand vous avez pleins de scripts différents.

Comment ça fonctionne ?

Il suffit de la placer dans votre script (avant les déclarations de fonctions par exemple). Concernant le chemin, il s'agit du chemin que vous suivrez pour atteindre le script, par exemple: "Scripts Triés/Vehicules"

A notez que vous devez aussi ajouter un nom, le nom de l'onglet final. Autrement dit, le nom sur lequel vous cliquerez pour ajouter votre script à l'objet. Le plus clair, pour moi, reste de ré-écrire le nom de votre script, tout simplement. Ça donnera donc, par exemple: @script AddComponentMenu ("Scripts Triés/PNJ/Dialogue Base")



Ça peux paraître bête mais l'air de rien, sur un script que vous ajoutez souvent à des objets, le fait de gagner 3-4 secondes parce qu'on ne doit pas chercher son script dans une grosse liste finit par vous faire gagner pas mal de temps sur la durée.

C'est aussi un bon moyen de ne pas oublier d'ajouter tel ou tel script quand vous créez un nouvel objet complexe.

A propos des commandes commençants par un @ je vous conseille vraiment de vous y intéresser, on y trouve quelques petites fonctions qui peuvent être très utiles. Comme @HideInInspector par exemple qui permet de ne pas afficher une variable publique dans l'inspector.

Heu, bah t'as qu'à mettre ta variable en private, espèce de gros noob.

Parfois un script externe doit accéder à cette variable et elle doit donc être publique, ce qui "pollue" votre inspector si vous n'ajoutez pas cette petite ligne au dessus du nom de la variable..


Jetez aussi un oeil à @ExecuteInEditMode.

Lancer une fonction d'un script hors runtime



On va maintenant s’intéresser à la ligne de code @ContextMenu("Nom")

Ça fait quoi ?

Cette commande permet de lancer une fonction depuis l'inspector.

Un exemple bien concret puisque je l'utilise dans mes jeux, c'est celui d'une porte. La porte peut être ouverte ou fermée. Concrètement ça va influencer son skin, diverses variables: "open", "locked" (parce qu'une porte ouverte ne sera pas fermée à clé en principe) et dans le cas d'un jeu en 2D, sa collisionBox.

Imaginons donc que je veuille placer en jeu une porte déjà ouverte. Si je le fais à la main je vais devoir modifier son skin, les variables (ce qui m'oblige à les afficher dans l'inspector alors que je pourrais l'éviter, voir les mettre en private) et la collisionBox. Lourd, pas vrai ?

Comment ça fonctionne alors ?

J'ai déjà codé les fonctions Open() et Close() que le jeu utilise durant le runtime quand le joueur "actionne" une porte. Pourquoi ne pas en tirer parti dans l'inspector pour m'éviter de perdre du temps. Pour ça j'ajoute simplement la ligne de code susmentionnée juste avant la déclaration de ma fonction.


Bien entendu vous n'êtes pas obligé de donner à votre ContextMenu le même nom qu'à votre fonction.

Et voilà le résultat:


Comme vous le voyez avec le "SetAsChangeZone", ça peut avoir pas mal d'usages. Par exemple vous pourriez ajouter les fonctions "SetFactionEnemi", "SetFactionNPC", "SetFactionEvilCreaturesOfTheDarkestNightSWAG" à votre classe de PNJ.

Conclusion



Voilà, ce sont toutes des petites astuces qui ne mangent pas de pain et qui peuvent vraiment vous faire gagner un temps précieux à force de vous faire économiser 2 secondes par-ci par-là.

Dans la prochaine partie, on verra comment vraiment modifier Unity en lui ajoutant des fenêtres et comment interagir avec votre scène depuis des scripts Editor.


jeudi 30 mai 2013

Song of the Myrne: quelques news


Salut les kids !

Quelques infos en vrac sur l'avancement de Song of the Myrne et ce sur quoi je travaille activement:

Les traductions



C'est une de mes priorités, j'aimerais sortir la démo bilingue aussi vite que possible, j'essaye de traduire quelques dialogues chaque jour (mais c'est vraiment LE truc que je déteste faire). Arnaud fait aussi des trads de son côté donc la démo devrait être prête d'ici quelques jours (no promises).

L'interface


Je pense avoir terminé tout ce qui est inventaire, craft, équipement (j'ai ajouté la portée des armes et des lances !), etc. Evidemment ça manque encore de contenu, mais ça, ça viendra progressivement. 

J'ai enfin codé les coffres synchronisés (j'en ai profité pour les redessiner), ça fait des mois que je dois le faire et ça m'a prit genre 10 minutes^^. Ce sont des coffres qui possèdent toujours le même contenu, peu importe où ils sont, comme les coffres de Resident Evil ou l'Ender Chest de Minecraft donc. Leur principale utilité est de stocker les poupées vaudoo (qui vous ressuscitent lorsque vous mourrez) pour ne pas les gaspiller mais j'imagine que ça pourra servir si vous avez l'âme d'un collectionneur.

Le coffre est à droite, le truc bleu/mauve

Toujours au niveau de l'interface, je m'attaque maintenant au journal des quêtes. La version actuelle s'actualise au cours des quêtes sans qu'on ne s'en rende compte et cette manière de fonctionner est assez pénible à coder. Je vais donc ajouter un système de notes:

En gros, le journal restera quasiment inchangé, excepté que votre perso prendra des notes en plus quand la quête avancera. Imaginons que vous enquêtiez sur un meurtre, vous aurez la page principale du journal vous résumant la quête et son objectif ("Trouver l'assassin") et en supplément vous aurez une page de notes, résumant les événements s'étant déroulés durant la quête. Genre "J'ai interrogé le sergent Legris, il m'a dit faire collection de chandeliers et de verres à moutarde". Il y aura un son et éventuellement une petite indication visuelle pour vous indiquer que la quête à été mise à jour.


Contenu


Voilà, globalement je suis assez content de l'interface, je la trouve relativement intuitive et pas moche. Je pense pouvoir bientôt reprendre le développement "normal" du jeu. Travailler sur de nouvelles zones, quêtes, etc...

J'essayerai de ne pas trop vous spoiler tout en continuant à vous tenir au courant de ce que je fais ;)


mercredi 29 mai 2013

Tutorial Unity3D: Construire ses propres outils - Intro et partie 1

Hello tout le monde !

Je démarre une nouvelle série de tutoriaux pour Unity3D. On va s’intéresser un peu à des fonctions plus avancées d'Unity. A savoir la modification d'Unity lui-même.

Si la lecture de ces billets peut être intéressante pour un débutant total je la recommande plutôt aux utilisateurs un peu plus avancés (quelques mois d'utilisation).

Voilà le planning de ce qu'on va voir (je modifierai sans doute cette liste au fur et à mesure des tutos^^):

  • Partie 1
    • Construire ses propres outils, pour qui ? Pourquoi?
  • Partie 2
    • Organiser ses scripts dans l'éditeur
    • Des fonctions propres à l'éditeur Unity dans nos scripts "normaux"
  • Partie 4
    • Créez des programmes externes pour nous aider dans la création de nos jeux
Les parties 1 et 4 ont pour but de vous motiver à bidouiller dans l'éditeur et a aller plus loin. Je compte aussi vous faire comprendre que créer ses propres outils de développement pour Unity n'est pas aussi difficile qu'il n'y parait et que ça vous fait gagner un temps précieux.

Tandis que dans les parties 2 et 3 on va clairement se salir les mains et voir un peu ce qu'on peux faire concrètement (spoiler: tout !)

Bon, c'est parti pour la partie 1 qui nous servira d'introduction !

Partie 1 - Construire ses propres outils


Pour qui ?


Avant de me lancer dans des modifications de l'éditeur Unity3D, je me disais que c'était un truc de pro. Genre pour les cinglés qui créent des plugins à 200 dollars pour permettre la modélisation 3D directement à l'intérieur d'Unity.

Mais en fait pas du tout !

Si vous savez utiliser Unity pour faire vos jeux, vous possédez déjà 90% de la connaissance nécessaire à la modification de son interface.

Alors, la modification d'Unity, pour qui? Pour tout le monde, du noob au professionnel aguerri vous devriez pouvoir tirer parti d'un petit tweak ici ou là. Voir carrément aller plus loin et vous lancer dans la création de plugins.

Pourquoi faire?


Et bien pour TOUT faire. Modifier l'interface ce n'est pas forcément ajouter Blender dedans, ça peut simplement être l'ajout d'un petit éditeur de map 2D, voir simplement lancer une fonction pour donner un nom unique à pleins d'objets en même temps.

Unity est extrêmement modulable, donc: the sky is the limit.

Heu, oui ok, mais bon, à quoi ça sert... concrètement ?

Concrètement ça sert à gagner du temps... beaucoup de temps. Ca ne parrait pas forcément évident quand on code un petit script en 1 heure pour nous permettre de gagner 2 secondes sur une action qu'on fait régulièrement. Mais deux secondes, plusieurs fois par heure, tous les jours, pendant toute l'année... ça fait beaucoup, et croyez moi, l'heure passée sur votre petit script vous sera rendue au centuple d'ici la fin de l'année (si vous ne lisez pas cet article un 31 décembre).

Vous voulez quelque chose d'encore plus concret ?


C'est l'éditeur que j'utilise pour créer mes levels sur Song of the Myrne et Myrne 6312.

Il me permet d'aligner la plupart des objets correctement et de créer des pièces, maisons, etc en quelques secondes contre plusieurs minutes sans l'éditeur.

Cet éditeur est bête comme tout et pourtant il me fait gagner plusieurs heures de travail par semaine.

Bon... Vous êtes motivés et vous voulez apprendre comment faire ce genre de petites modifications d'interface? Alors, rendez-vous dans la partie 2 de cette suite de tutos.


mardi 28 mai 2013

Song of the Myrne: Avancée du jour et vidéo de l'équipement


Salut tout le monde !

Je n'ai pas pu coder pendant quelques jours mais j'ai repris le travail sur SotM dès aujourd'hui.

J'ai continué à travailler sur l'équipement, ce qui m'a fait un peu chipoter à tout le jeu. L'équipement influence donc désormais le gameplay puisque les armures vous permettent de prendre moins de dégâts et une meilleure arme rendra vos coups plus puissants, logique.

J'ai ajouté un peu d'aléatoire dans les calculs de dégâts aussi. Rien de vraiment marquant pour l'instant vu que les valeurs sont toujours très basses, mais c'est déjà ça. J'envisage de multiplier tous les dégâts et donc la vie des mobs et du joueur par 3 ou 4 mais ça m'ennuie un peu vis à vis des cœurs qui représentent la vie du joueur. Je vais peut-être les remplacer par une barre de vie ou bien faire des quarts de cœurs. Ça me permettra d'ajouter des taux de critiques éventuellement.

C'est assez marrant de voir qu'une décision qui me semblait intelligente il  y'a 7 mois est en fait totalement débile. J'avais mis de petites valeurs de dégâts, de stats, etc... pour simplifier tout, mais au final ça rend l'équilibrage du jeu beaucoup plus compliqué et je dois tout changer...

Tant que je passais dans les skills j'en ai profité pour interdire au joueur de tirer à l'arc s'il n'a pas d'arc équipé. Ce petit changement de rien du tout fait repasser le jeu dans l'état "pas démoli" ^^. Donc à partir de demain ou après-demain je m'attaquerai aux traductions anglaises des dialogues pour sortir la version bilingue de la démo, dans laquelle on retrouvera tout ce dont je vous parle depuis quelques temps (équipement, chute des classes, etc).

Et comme je n'aurai donc plus grand chose à vous montrer pendant ce temps, je vous ai fait une petite vidéo pour vous montrer un truc cool ajouté aujourd'hui: un petit effet kikoolol quand on ramasse des objets (parce que c'était pas assez voyant et pas fluide du tout avant), j'en ai profité pour montrer ce que donne le craft et l'équipement.


dimanche 26 mai 2013

Quick Review: Rogue Legacy

Salut tout le monde !

Ça faisait longtemps que je n'en avais plus fait mais revoici une Quick Review. Et pas des moindres puisque je vais vous présenter très rapidement un jeu tout bonnement excellent:



En gros c'est un rogue-"lite", c'est à dire qu'il contient pas mal d'éléments de roguelike tout en étant fort différent malgré tout. C'est aussi ce qu'on appelle souvent un Metroidvania (en référence à Castlevania et Metroid), soit un plateformer en 2D où il n'y a (généralement) qu'un seul level dans lequel vous vous promènerez librement. Bien entendu certains passages nécessitent d'avoir telle ou telle capacité pour avancer (par exemple le double-saut pour atteindre une partie du niveau en hauteur).

"Bon bah tout compte fait je vais passer par un autre chemin..."

Rogue Legacy est donc tout ça à la fois. On retrouve le concept de levels aléatoires cher aux roguelikes puisque le château dans lequel se passe le jeu et ses alentours changeront à chaque fois que vous mourrez et bien entendu la mort est permanente.

Mais vous ne perdrez pas tout pour autant puisque le jeu innove avec un concept plutôt unique et très sympa: la lignée ("Legacy" signifie "héritage" en anglais). A chaque début de partie, vous choisissez un personnage parmi les trois qui vous sont proposés, ils possèdent différents traits influençant plus ou moins le gameplay: petit, grand, dyslexique, daltonien (mon préféré^^),...

La sélection de personnage. Ce perso atteint du syndrome de Tourette jurera à chaque prise de coup^^

Puis vous pouvez ensuite acheter de l'équipement (que vous gardez après la mort) et des améliorations, elles aussi permanentes: vie en plus, double-saut, etc...

Les améliorations de stats. Liste non-exhaustive, de nouvelles options se débloquent au fur et à mesure du jeu

Bref le jeu est très complet à ce niveau là. Le reste rapidement et en vrac:

  • Une direction artistique au poil
Que ce soit la musique, les graphismes, la fluidités des animations, etc, tout est parfait ! C'est vraiment un magnifique jeu que nous livre le studio "Cellar Door".

  • C'est dur ! ...mais

Malgré une difficulté plutôt élevée (on survit généralement moins de 5 minutes au début^^), le jeu vous permet d'évoluer à votre rythme puisque vous pouvez toujours acheter des améliorations... Enfin, si vous n'êtes pas trop nul quand-même^^.

Certains défis spéciaux permettent de débloquer de nouvelles capacités... Généralement l'échec vous laissera un gout amer de sang dans la bouche.

Vous perdez tout votre or à chaque début de partie: en gros vous dépensez votre héritage puis donnez ce qu'il reste à Charon pour pouvoir entrer dans le château  Le jeu précise d'ailleurs que vous laissez votre famille dans la misère :D

  • Plein d'humour avec de vrais morceaux de scénario dedans
Le jeu est plutôt marrant, que ce soit dans les rares dialogues (pour peu que votre personnage ne soit pas dyslexique aussi... true story), la difficulté parfois complètement absurde, les traits de caractères tous plus débiles les uns que les autres en tout simplement dans le design général.

Il y a aussi une petite trame principale qu'on suivra au travers de journaux laissés par un précédant chevalier.

  • C'est assez varié
Bon, moins dans la démo que j'ai essayée mais les développeurs promettent qu'il y a plus de contenu dans la version finale (la démo est un peu répétitive sur la fin). Chaque chevalier possède plus ou moins son propre style de jeu (selon ses attributs, son attaque spéciale et sa classe) et il y a toutes sortes de salles différentes.

Ce perso est daltonien, il ne voit pas les couleurs... (à droite c'est Charon qui va me voler mon argent^^)

Conclusionage


J'attendais ce jeu depuis quelques jours et jouer à la démo n'a fait que confirmer ce que je savais déjà: il est excellent !

Si vous êtes fan des Castlevania ou de bons jeux en général, n'hésitez pas une seule seconde et foncez le pré-commander à cette adresse.

Il vous en coûtera 10 dollars (soit 5 de moins que lorsque il sortira) et vous aurez l'OST avec. Elle est vraiment sympathique. Vous aurez le jeu en version DRM-free ainsi qu'une clé Steam.

Le jeu sortira dès qu'il sera accepté sur Steam via Greenlight, donc n'hésitez surtout pas a aller voter pour lui ici. Plus vite que ça, je VEUX y jouer !

L'écran de mort du personnage, indiquant les créatures tuées

Si vous êtes du genre à ne jamais acheter avant d'avoir testé (et vous avez bien raison), la démo peut être trouvée sur le site officiel (même lien que pour l'achat), elle contient une zone de jeu (le château)  avec un boss (+ des mini boss en tous genres), et vous donnera un très bon aperçu du jeu (donc pas d'excuse pour le pirater, bande de voyous).

Amusez-vous bien ;)


jeudi 23 mai 2013

Song of the Myrne: Image du jour: Sorcier badass

Salut les gens !

Aujourd'hui je n'ai rien de très intéressant à vous montrer, je suis principalement occupé à ajouter plein d'objets en jeu.

Du coup une petite image du mage en mode badass, parce que les mages guerriers y'a pas plus stylés (mais la plupart des jeux ne permettent pas ce style de jeu T_T ).

Cliquez pour le voir en grand
Je vais sans doute ajouter les épaulières comme pièce d'équipement à part enitère, j'aimerais qu'il y en ait une en premier plan, devant la tête du perso, et une derrière, ce qui n'est pas possible à faire quand elles font simplement partie de l'armure de torse.

Demain je vais probablement tweaker un peu tout le système de combat pour qu'il prenne en compte la valeur d'armure/puissance de l'arme, faire que lancer certains skills ne soit pas possible sans un certain type d'arme (en gros les tirs de flèches et coups au corps à corps) et tenter d'équilibrer un peu tout ça avec plein de calculs de dégâts, yay ! :S

Aussi, je me suis un peu amusé avec la caméra pour tester un truc:

SotM en 3D^^

Je vous rassure c'était juste pour le délire (et pour la science !), je ne compte pas refaire tout le jeu comme ça (d'autant plus que c'est tout aliasé) :D

J'étais assez surpris de voir que la plupart des mécanismes du jeu fonctionnent à merveille comme ça. Ça veut dire que je n'aurai pas à tout refaire lorsque je ferai un jeu en 3D (sans doute après SotM et après avoir bien peaufiné Myrne 6312).

Voilà voilà. A la prochaine pour de nouvelles aventuuuuures ! (je dois toujours faire une petite conclusion + résultats du LD).