[résolu] Map gigantesque

Démarré par pyromancer, 13 Février 2009 à 04:47

0 Membres et 1 Invité sur ce sujet

13 Février 2009 à 04:47 Dernière édition: 15 Février 2009 à 19:21 par yoshi04
Bonjour, en trafiquand par ci et par la, j'ai trouvé comment augmenter la taille maximum des maps rm2k3 a 999 X 999. C'est énorme. Tout a coup, j'ai pensé a un systeme de jeu plutot interesant, qui ferait que tout le jeu(du moin une bonne partie)se deroulerait sur une seule map(exterieur). Ce serais interessant pour inclure plusieurs evenements. Je voudrais savoir si cette idée serais réalisable avec un jeu de type zelda, compte tenu du fait que tout les décors ne tiendrais jamais dans un seul chipset. Merci a tous!  :)

Plein d'events + map gigantesque = consommation mémoire pas possible.

A moins que ton public de joueurs ne soit réduit à ceux ayant un PC de la NASA, ton idée me parait assez bancale :p

L'idée en elle-même est assez saugrenue... Si c'était si facile et si utile, on aurait plein de jeux qui le font. Et autant avec RPG Maker c'est mort, autant si tu codais toi-même ton jeu tu pourrais arriver à "simuler" une seule map en pré-chargeant et en gérant tout ça comme il faut, mais au final l'intérêt reste assez limité, surtout pour un jeu de type Zelda, au pire ça améliore peut-être l'expérience utilisateur mais l'utilisateur en question s'en fout peut-être pas mal...

    Il n'y a pas d'avantages à avoir une map gigantesque, qui risque de ralentir le jeu. Ce ne serait pas optimisé^^'.

     Je suppose que ce qui t'intéresse dans l'idée de "map gigantesque", c'est le fait de pouvoir se balader sur une grande map sans jamais croiser de transitions d'écran (comme les maps extérieurs des jeux Pokémon^^). C'est tout à fait possible à faire avec plusieurs maps, il faut simplement faire en sorte que l'utilisateur ne se rende pas compte du changement de map. Sous RPG Maker en l'occurence, il suffit de bien organiser ses maps et d'enlever les transitions par défaut :). Après, il faut juste faire attention aux évènements qui peuvent disparaître lors d'une transition^^.

Je plussoie tout ce qui à été dit jusqu'à présent par rapport à l'optimisation du jeu. Ca risque de laguer complètement surtout sur RPG Maker

De toute manière, même au niveau gestion ca risque d'être chiant à manipuler une carte. Et pas que dans ce domaine: de nos jours, le succès d'un vrai projet, c'est la modularité et la souplesse. Et c'est pas en faisant une grande map que tu arriveras à avoir une souplesse. :)

Ok merci beaucouo de vos réponses. En effet, je voulais une map géante pour pouvoir réduire au maximum les trasitions. Ynanome, ton idée m'intéresse beaucoup. Quelqu'un pourrais m'éclairer un peu sur ce qu'il veut dire?

Justement les transitions dans Zelda ca roxe :mrgreen:

Citation de: pyromancer - four_power le 13 Février 2009 à 15:45
Ok merci beaucouo de vos réponses. En effet, je voulais une map géante pour pouvoir réduire au maximum les trasitions. Ynanome, ton idée m'intéresse beaucoup. Quelqu'un pourrais m'éclairer un peu sur ce qu'il veut dire?

Son idée rejoint ce que je disais, c'est-à-dire que tu peux très bien simuler la notion d'une grande map tout en ayant des maps de tailles réduites. Comme si tu assemblais les pièces d'un puzzle pour former un ensemble. Le joueur lui ne "voit" rien, il pense se promener sur une grande map, sans transitions, alors qu'en réalité quand il s'approche du bord d'une map, la suivante est déjà chargée pour être affichée et parcourue. Par contre, il faut bien faire attention à la gestion des events sous RPG Maker en faisant ça...

Plutot intéressant comme systeme...Mais comment faire un systeme aussi complexe sur rm2k3?

Sur ces version-ci je n'ai pas d'idées. par contre, sur XP est sans doute VX, il est possible avec du RUBY de non seulement supprimer les transitions, mais aussi de gérer les "téléportations" sur tous les côtés des maps automatiquement :).

    







     Je vais essayer d'expliquer: voici déjà une petite image qui montre comment ça peut se passer.

Le point rouge représente un point de téléport, aussi si le héros marche dessus sur la map 1, il est téléporté sur le même point à la map 2. Il faut cependant prévoir des parties communes aux maps, car le héros peut voir ce qu'il y a devant lui. Plus précisément, le héros voit 10 cases à sa droite, 9 à sa gauche, 7 en haut et 7 en bas. Ce sont les "marges communes" minimales à respecter. Il n'y a pas besoin de faire plus, et dans mon exemple j'ai d'ailleurs fait trop de parties communes :ninja:. Ca ne change rien, mais j'aurai pu en faire moins ;).

    La troisième map en bas, c'est en quelque sorte la map telle que le percevra le joueur, en effet, en étant téléporté de cette manière il ne se sera même pas rendu compte qu'il a changé d'endroit^^.

    Je n'ai pas l'habitude d'utiliser ce système, mais ce n'est pas difficile, après ça devient un réflexe de laisser des marges communes. Il ne faut pas s'embêter à recopier les parties communes case par case, l'outil "copier/coller" est là pour ça :P.

    Voilà. Pour que ça marche, il faut aussi supprimer les transitions. Soit tu les modifies dans la base de données, onglet "système", "transitions lors des téléportations", soit tu les modifies via un évènement (l'action s'appelle "modifier les transitions d'écran", je crois). Il suffit alors de mettre "sans transition" pour la transition de départ et "instantanée" pour celle d'arrivée :).

    Ce système permet l'illusion de map gigantesques.  Il y en a un autre, où le joueur perçoit les différentes maps, mais où les transitions "relient" les maps les unes aux autres. C'est le système de transition à la Zelda. Au bord droit de la map, par exemple, il suffit de mettre un évènement de téléport en ayant au préalable changer la transition pour une transition "écran vers la droite" :).

J'ai essayer de reproduire ton systeme, je vois bien l'effet de "laisser la map derierre" fait par les 7 cases de marge, mais il y a toujours un temps avant l'arrivée, un temps de 1-2 secondes qui ne fait pas réaliste.

     Etrange, chez moi ça fonctionne parfaitement. es-tu sûr d'avoir laissé suffisamment de marge? As-tu bien mis "sans transition" pour le début et "instantané" pour la fin? Il me semble que si on met "instantané" aux deux, il y a un léger temps de décalage.

    Mais apparemment ça doit venir de tes évènements. Ca ne peut qu'être ça si le temps est aussi long que 1-2 secondes. As-tu essayé de reproduire le système sur des cartes sans évènement? Voire même sans évènements communs, si jamais tu as un switch qui te permet de les désactiver :).

14 Février 2009 à 21:13 #13 Dernière édition: 14 Février 2009 à 21:24 par pyromancer - four_power
Oui, j'ai fait un nouveau projet, 2 map, j'ai copié-collé les 7 cases sur l'autre map et j'ai fait les events de téléport, et j'ai ajouté sans transition et instantané aussi... :unsure:

EDIT:Tien, ca marche, la transition est rapide, mais ca fait bizarre. J'ai l'impression qu'il y a un lag mais que je continue d'avancer, comme si s'était une seule map mais qu'il y avait un teleport qui m'amenait 7 case plus loin, sur la meme map.

     Si tu continues d'avancer c'est qu'à mon avais il n'y a pas de lag. Cette impression de lag est sans doute due à un mauvais placement des téléports. Contrairement aux téléports habituels, il ne faut pas placer le lieu d'arrivée une case plus loin mais bel et bien sur la même case (mais sur l'autre map^^'). Si ce n'est pas ça, je ne vois pas.

    Pour être sûr que ce n'est pas un lag, fais une map test avec un évènement de téléport sans transition qui téléporte exactement au même endroit, et cette fois-ci sur la même map. Ca ne sert à rien, mais ça permet de vérifier si le principe marche :P.

15 Février 2009 à 00:40 #15 Dernière édition: 15 Février 2009 à 00:49 par pyromancer - four_power
Non, ce n'es pas un lag, mais ca donne l'impression d'un lag. Je ne comprend pas trop ou palcer les évenements...

EDIT:Voici un dessin rapide sur ce que je comprend http://img155.imageshack.us/img155/6135/transitionng8.png

La partie basse est bonne car on peut voir vers le nord, mais lorsque l'on vient du nord, on arrive en bout de terrain et on ne voit pas un "aperçu" de la map suivante (le sud en l'occurrence).


Que représentent les couleurs dans ton shéma?Parce que la je comprend pas vraiment :unsure:

En gros:
T'as fait une "marge" de la région 1 pour ta région 2, fais une marge de la région 2 pour ta région 1. Fais que sur ta map 1, le héros ne doive pas aller tout en bas de la map.
Signé : Un mec relou

Les couleurs c'est juste pour te repérer (= décors si tu veux).

La ligne foncée c'est une ligne de "téléportation".

Tu fais un évènement qui cherche à savoir si le héros se situe à l'ordonnée Y et tu téléportes dans la MAP suivante en conservant la coordonnée X du héros.

La flèche violette ça délimite la zone "visible" par le joueur, mais dans laquelle il n'a pas accès. C'est "l'effet d'optique" nécessaire pour pouvoir faire une transition "invisible". (outre le fait de ne jouer aucune animation de transition prédéfinie dans RPG maker)

La flèche marron c'est un exemple de mouvement que pourrait suivre le héros.

15 Février 2009 à 03:59 #20 Dernière édition: 15 Février 2009 à 04:21 par pyromancer - four_power
Maintenant je comprend, mais il y a toujours une impression bizarre...Comme si je voyais la transition. C'est assé difficile a décrire...Imaginez que vous jouer a un jeu et que votre ordi lag pendant meme pas une seconde mais que la touche pour avancer est restée enfoncée...Votre image fixe, puis reprend 1-2 cases plus loin. Je sais pas si vous comprenez ce que j'essaie de dire  :unsure:

EDIT:Incroyable! Je vient de résoudre mon problème! En fait, ce n'était qu'une simple erreur de mapping  :linkXD: . Merci beaucoup pour ce super systeme! Ah, une derniere chose; pourquoi faut-il faire attention aux evenements quand l'on utilise ce systeme?

EDIT2:Petit problème...si un joueur passe de la map 1 a la 2, puis revient sur la 1, puis fait demi-tour tout de suite, il peut visiter a zone visible, ce qui brise un peu la "magie". J'ai beau mettre des events invisibles au meme niv que le héro,si le héro fait demi tour, il est sur l'event de teleport mais ne se teleport pas, ce qui peut être genant.

je propose dans ce cas, que tu fasses la transition sur la case suivant l'event de teleportation, d'un coté comme lautre

Citation de: pyromancer - four_power le 15 Février 2009 à 03:59
EDIT:Incroyable! Je vient de résoudre mon problème! En fait, ce n'était qu'une simple erreur de mapping  :linkXD: . Merci beaucoup pour ce super systeme! Ah, une derniere chose; pourquoi faut-il faire attention aux evenements quand l'on utilise ce systeme?

EDIT2:Petit problème...si un joueur passe de la map 1 a la 2, puis revient sur la 1, puis fait demi-tour tout de suite, il peut visiter a zone visible, ce qui brise un peu la "magie". J'ai beau mettre des events invisibles au meme niv que le héro,si le héro fait demi tour, il est sur l'event de teleport mais ne se teleport pas, ce qui peut être genant.

     Pour le 1, pour une raison très simple. Supposons qu'au moment du téléport, le joueur aperçoit un chien (un évènement) qui se promène sur sa gauche. Il va sur le téléport, et se retrouve sur l'autre map, où il n'y a pas de chien. Il aura eu l'impression que le  chien a tout simplement disparu. Ceci dit, si tes évènements sont fixes, ça ne pose pas de problème puisque tu sais exactement où les replacer. Mais pour un évènement qui se déplace comme le chien, tu ne peux pas savoir où le repositionner sur la seconde map (enfin, pour être précis il y a moyen, mais il faut être organisé et prêt à calculer les coordonnées x/y des évènement présents sur la map...)

     Pour le 2, il faut que tu empêches le héros d'aller dans cette zone. Crée une case vide dans la couche haute de ton chipset, mais donne à cette case l'option "solide" dans la base de données, onglet chipset. Et remplis la zone de marge par ces cases "solides" :).
    (Shadax, ta solution est tout à fait recevable pour un téléport normal, mais dans le cas présent, s'il fait ça le joueur aura l'impression d'avoir instantanément avancer d'une case :)).
    Pour le problème du héros qui ne se téléporte pas, je n'y ai pas trop pensé, c'est vrai que c'est problématique. La meilleure solution me semble être celle de Yoshi04, un peu plus complexe mais très "clean". A savoir créer un évènement en processus parallèle qui téléporte le héros automatiquement dès qu'il atteint un bord de la map. Si tu ne te sens pas capable de faire ça, tu devras essayer de contourner le problème:
     -Faire avancer le joueur d'une case après le téléport, pour qu'il ne reste pas sur la case. Mais du coup un joueur attentif pourra deviner les lieux de téléports^^.
     -Essaie peut-être de changer les conditions de déclenchement de l'évènement. Si tu le mets en "collision avec le héros", et que tu imposes la condition "héros tourné vers le bas" (pour un téléport vers le bas), peut-être que ça marchera (pas sûr :unsure:).
     -Ou encore, mettre ton évènement en "niveau du héros", "collision avec le héros", et le déplacer d'une case vers l'avant, dans la zone de "marge". Normalement cette solution devrait fonctionner, et empêche en plus le héros de se déplacer dans la zone de "marge". :)

En tout cas, c'est laborieux!...
C'est que du RPG Maker quand même! :rolleyes:
Signé : Un mec relou

Merci a tous pour vos réponses, j'ai résolu tout mes problèmes. Les modos peuvent fermer le topic.

Topic fermé à la demande de l'auteur  ;)