Faire un Zelda Like sur RM2003 !

Démarré par RPG Fusion, 23 Février 2015 à 16:55

0 Membres et 1 Invité sur ce sujet

Bonjour à tous !
(Eh oui, je suis de retour pour vous casser les pieds :3)

Comme vous l'avez sans doute remarqué depuis une éternité, mais faire un Zelda Like sur RPG Maker 2003 c'est... long ! Et chiant aussi.

Bref, la raison pour laquelle je me présente vers vous aujourd'hui, c'est que je cherche de l'aide pour arriver à faire les meilleurs événements possible pour réussir mon prochain The Legend of Zelda sur RM2003. Et ça va pas être de la tarte ! :p

Pour commencer, nous allons faire l'event plus utile de tous... L'épée. ^^

Déjà, ce qu'il faut savoir, c'est que les animation se font avec les systèmes de base de RPG Maker, en 10 images chacune, représentant donc 0.3 seconde.
Pour le moment, j'ai fais la partie animation qui est fonctionnelle, ça n'a pas été compliqué du tout. Mais maintenant il faut faire la partie attaque.
Tout d'abord, au moment où on appuis sur la touche de l'épée, on active un interrupteur qui va donc activer l'event d'attaque.

Voici mon script pour le moment :
<>Variable Épée X = Coordonnées X du héros
<>Variable Épée Y = Coordonnées Y du héros
<>Si le héros est tourné vers le haut
  <>Variable Épée X + 1
  <>Attendre 0.0 sec
  <>Variable Épée Y + 1
  <>Attendre 0.1 sec
  <>Variable Épée X - 1
  <>Attendre 0.1 sec
  <>Variable Épée X - 1
  <>Attendre 0.1 sec
  <>Variable Épée Y -1


Par exemple, pour ce morceau de code, il n'y a aucune réaction sur le monstre.
Pouvez-vous me dire si je me suis trompé quelque part ?
Merci d'avance :)

T'as pensé à faire tes vérifs entre chaque "déplacement" de ta hitbox ?
( Donc après chaque changement des variables Épée X ou Épée Y )


Par contre, si je peux me permettre, tu devrais essayer de faire un système de déplacement par pixel ( et tout ce qui va avec bien sur ), parce que bon, un Zelda Cases/Cases, c'est moyen quoi :/.

Un déplacement pixel par pixel sur RM03 c'est impossible, ou alors difficilement réalisable et ça apporterai probablement des bugs avec le reste des actions et évènements.
Anciennement iArcadia / Zora Rouge

24 Février 2015 à 20:55 #3 Dernière édition: 24 Février 2015 à 22:55 par Mack
Euh ...
C'est clairement possible, et pas forcement ultra dur à faire en faite ^^".

En gros, tu gères l'affichage de ton héros par Pictures, mais tu gardes toujours le héros de RM sous ton héros en pictures ( mais avec un character invisible ), pour garder les contacts "basiquent".
Après tu peux toujours refaire un vrai système de hitbox, mais là oui je suis d'accord ça sera beaucoup plus la merde pour pas grand chose.

EDIT :
http://www.mediafire.com/download/pshoohl5rqbdm6n/Zelda2k3.rar
( L'animation de frappe n'est pas de moi, elle de de AznChipmunk de rpgmaker.net
X pour attaquer, Espace pour rentrer dans les maisons )
Au final ce qui m'aura pris le plus de temps c'est de permettre de copier coller les buissons comme un gros sac sans avoir besoin de changer quoi que ce soit \o/.
Pour les mobs, je verrais peut être demain pour comment en faire.

Comme iArcadia, je pense que partir sur un déplacement plus fluide que le case par case proposé de base par RM03 n'est pas la première priorité ; je crains aussi que ça rajoute dès le départ une couche qui n'est pas nécessaire pour se lancer dans un moteur de Zelda amateur avec RM03...

Concernant l'épée, ça me semble être un bon début d'évènement, mais c'est normal qu'il n'y ai aucune réaction du côté du montre, car rien ne lui dit de réagir face à une épée pour l'instant. Une fois que tu sais qu'un coup d'épée est en train d'être donné, il faut vérifier si un monstre (ou tout autre objet susceptible d'être impacté par un coup d'épée : buisson, interrupteur, etc) se trouve aux même coordonnées que celle du coup d'épée.

Je ne sais pas quelle est ou quelle sont les meilleurs techniques pour tester si c'est le cas avec RM03 ; les interrupteurs et les variables étant globaux si je ne m'abuse, tu dois pouvoir automatiquement tester l'impact pour chaque élément touchable dans l'évènement correspondant (je suppose qu'un évènement a accès à sa position sur la carte, non ?).

Cependant, il me semble que celle solution simple (qui a l'avantage de permettre un copier-coller relativement aisé des évènements qui sont des cibles potentielles d'un coup d'épée) a deux gros défauts : cela nécessite d'avoir ces évènements en mode "évènement parallèle" (pour tester "en permanence" si l'interrupteur d'un coup d'épée est activité, et si oui agir en conséquence), et je ne suis pas certain que cela soit bénéfique pour les performances du jeu dès que le nombre d'évents est multiplié sur une même carte...

Une autre solution peut-être plus performante mais moins pratique à mettre en place serait d'avoir un seul évènement (par carte tout du moins), qui gère automatiquement ce genre de chose. C'est probablement plus performant car ça limite le nombre d'évènements en mode "événement parallèle" (un seul test de coup d'épée lancé par cycle au lieu d'un plus grand nombre), mais c'est plus ennuyeux à maintenir car il faut mettre à jour cet évènement, qui condense la réaction de tous les éléments susceptibles d'être impacté par un coup d'épée...

N'ayant plus RM03 d'installé depuis belle lurette, je suis curieux de savoir comment tu as procédé pour l'épée dans ton exemple, Mack :).

    







28 Février 2015 à 17:19 #5 Dernière édition: 28 Février 2015 à 17:52 par Mack
Bah, de toute façon, ton évent ennemi il sera en mode Processus Parallèle.
Enfin, tu peux le faire autrement, mais bon, c'est beaucoup plus chiant, pour trois fois rien.
Et dès que tu vas vouloir lui gérer des truc spéciaux ( genre, un mouvement particulier, lui faire faire des actions spéciales ... ), si tu créais un évent générale qui s'en occupe, ça va vraiment être la merde.


Bah, pour mon système, j'ai juste utilisé 8 variables qui représentent les coordonnées XY des quatre angles d'un carré :

En bleu X1/Y1, en jaune X2/Y1, en vert X1/Y2, et en bleu clair X2/Y2.
Pour me facilité la tache, parce que sinon c'est vraiment beaucoup le caca, j'ai choisis de prendre un carré de 12*12.
Le problème de prendre une zone trop grande ( donc plus grand que 16*16 ), c'est qu'il y a un risque de voir certains évents ne pas être touché par la hitbox.
( Encore que, je pense qu'en faisant des inégalités au lieux des égalités ça pourrait être mieux. CF (*) )
Selon la direction du joueur, et la frame de l'animation, je déplace la boite aux bonnes coordonnées.
Après, sur les évents qui peuvent se prendre un coup sur la tronche, j'ai récupérer les coordonnées des quatre angles, j'ai divisé par 16 ( puisque les coordonnées des 4 angles sont aux pixels de l'écran, puisque moi j'ai fait mon système aux pixels. ), puis je compare aux coordonnées de l'évents courant.

Ça ressemble à ça :


Pour la dernière condition, les variables 53,54 c'est les coordonnées du mob.
J'ai choisis d'utiliser toute les variables aux dessus des 999 pour les mobs :
En gros, je stocke l'id du mob, j'y rajoute 1000 et cette variable correspond au HP du mob.
( En gros, je tape l'évent d'id 30, la variable 1030 contient sa vie. )
J'ai fait pareil pour les frames invulnérabilités.

Un petit exemple :

C'est absolument pas à jour, je vais essayer de refaire un Gif.
( En gros depuis ce Gif, j'ai rajouté un mob, le sprint, et l'interface. En plus de coordonnées toute la partie graphique xD )

Je ferais peut être un vrai tuto pour expliquer tout ça.

EDIT :


La plupart des graphismes sont pas de moi, j'ai piqué l'animation de heal à MasterVlad ( du jeu Almost Real Kioku ), toute les animations de personnages sont du projet ABS de AznChipmunk.
Et les animations de Zelda sont piqué au projet Zelda Gate of Shadow.

Je pense que la prochaine étape, c'est soit un Arc, soit les bombes, soit le menu.
( Ou alors voir pour faire un système de cinématique, là vu que le perso est en picture, impossible faire des cinématiques. )

Bonjour tout le monde.
Tout d'abord, merci pour vos réponses et pour ceux qui m'ont apportés de l'aide  :mrgreen:
J'ai bien travaillé sur le moteur de jeu ces derniers temps et j'ai préparé une petite vidéo de mon avancé.
Vous pourrez notamment y voir un système de roulade que je ne juge pas terminé et si vous savez comment je peux faire mon système de roulade de manière plus réaliste, je suis ouvert :)

On y voit forcément le système d'épée, avec les collisions qui fonctionne. J'ai encore du travail sur le système à l'épée mais il a bien avancé depuis. Je vous montrerais bientôt un combat avec un monstre pour vous montrer les progrès du système. Mais ce qui est sûr, c'est que les collisions fonctionne à peu près.

Sinon, un peu hors sujet mais si des personnes veulent réaliser ce projet avec moi, je suis totalement d'accord ^^

Voici le lien de la vidéo : http://youtu.be/tG6bQA-kKMo

A bientôt ^^