Forum de Kingdom Eternal Twin
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Forum de Kingdom Eternal Twin

Ce forum est là pour organiser le suivi du développement de eKindom

Le Deal du moment : -14%
Apple MacBook Air (2020) 13,3″ Puce Apple M1 ...
Voir le deal
799 €

Vous n'êtes pas connecté. Connectez-vous ou enregistrez-vous

[Spec]Les déplacements

3 participants

Aller en bas  Message [Page 1 sur 1]

1[Spec]Les déplacements Empty [Spec]Les déplacements Dim 29 Nov - 11:52

Admin


Admin

But : Déplacer un général d'un point A à un point B

Un général immobile est toujours situé sur une carte par son emplacement et par le "coté" par lequel il est arrivé à cet endroit.

Le comportement actuel est :
1- On sélectionne le général que l'on veut faire bouger
2- On déplace la carte jusqu'au point B

  • Si le point A est un point non Valide alors :

    • Si le général vient du premier point-étape :  OK
    • Si le Général doit traverser le point A , vérifier s'il est traversable (voir définition)
      S'il est traversable alors ce point de départ est possible

    il ne faut pas proposer de chemin partant d'un point ni traversable ni valide autre que ceux commençant par le point d'où le général est venu

  • Si jusqu'au point B on a un chemin Valide (voir définition plus bas)
    alors au survol un chemin par défaut est mis en évidence par un surlignage
    on peut cliquer sur le point B et on passe a une fenêtre de validation du déplacement

  • Si le point B n'a pas de chemin Valide
    aucun chemin par défaut n'apparait
    Si on clique sur le point B on perds le focus du général pour prendre celui du point B


3- Si on a validé le déplacement

  • On vérifie que le général a bien au moins 1 unité
  • Le général commence à se déplacer avec une indication de destination finale, l'indication du prochain point-étape et celle du temps total du déplacement


Définition d'un point Valide :
Un point est valide s'il est soit :

  • propriété propre du joueur
  • propriété d'un vassal du joueur
  • propriété du suzerain du joueur
  • propriété d'un joueur dont on a le droit de passage
  • barbare et vide


Définition d'un point Traversable :
Tous les points Valides sont traversables, mais certains sont seulement traversables :

  • territoire ou capitale sans troupe ni généraux fortifié
  • territoire ou capitale sans murs construits par leur propriétaire
  • capitale d'un vassal d'un joueur dont on a les droits de passage


Donc il reste les points non-traversables et non valides qui sont :

  • les propriétés de joueurs ayant fait leur mur, mis une garnison et dont on n'a pas les droits de passage
  • les territoires ou capitales barbares et occupés par des troupes



Définition d'un chemin Valide :
C'est une suite de points valides commençant par un point valide ou traversable , se continuant sur des points valides et arrivant sur un point quelconque

Pour les déplacements  il y a une différence entre points valides et points traversables.
Les points valides peuvent être enchainés les uns après les autres pour constituer un chemin.
A l'exception du point de départ, les points traversables sont des points de fin de chemin : ils ne peuvent pas être enchainés à un point suivant.
Il faut demander un nouveau déplacement pour se déplacer après le point traversable.


Pendant le déplacement
des évènements peuvent modifier le temps et la qualité "valide" des points de passage

  • le décès d'un joueur
  • l'arrivée d'un nouveau joueur
  • la perte de contrôle d'un territoire par faillite, vassalisation, attaque  
  • le gain de contrôle d'un territoire (que par attaque à priori)
  • le retrait/remise de droits de passage
  • la révolte d'un vassal  


Ces évènements peuvent affecter de façon immédiate la durée et la continuité du déplacement.
Si le prochain point-étape n'est pas impacté alors la modification immédiate c'est la durée du déplacement total qui est modifiée, mais pas la durée du déplacement entre le point-étape précédent et le prochain.

La qualité "Valide" doit être vérifiée au moment de franchir un point-étape.
Le serveur interrompe le trajet si les conditions de validité ne sont plus remplies.



Dernière édition par Admin le Lun 30 Nov - 22:09, édité 5 fois

https://kingdom-eternaltwin.forumactif.com

2[Spec]Les déplacements Empty Re: [Spec]Les déplacements Dim 29 Nov - 13:09

Talsi



Ça me semble très bien, à une petite subtilité près pour le chemin valide : il faut aussi vérifier qu'on puisse partir du point de départ vers le territoire suivant. Si le point de départ est un territoire où on n'a pas le ddp, un chemin valide doit commencer par faire repartir par le chemin d'où on est arrivé Avec une petite exception si le point de départ est la capitale d'un joueur dont on n'a pas le ddp mais qui est vassal d'un joueur dont on a le ddp (que ce soit parce qu'il l'a donné ou parce qu'il est vassal ou suzerani) : dans ce cas là on peut forcément quitter la capitale par où on veut.

À noter que le jeu le gère mal : il peut proposer un chemin non valide (parce qu'il fait quitter un territoire d'où joueur dont on n'a pas le ddp par un autre chemin que celui par lequel on est arrivé), et on se fait alors "refouler" quand on clique par lancer le déplacement. Ce serait bien qu'on puisse éviter ce bug dans la future version.

3[Spec]Les déplacements Empty Re: [Spec]Les déplacements Dim 29 Nov - 14:14

Admin


Admin

oui il faut tenir compte du "côté" par lequel le général est arrivé et de la "qualité" traversable ou pas du territoire au besoin

Je vois comment modifier ca

https://kingdom-eternaltwin.forumactif.com

4[Spec]Les déplacements Empty Re: [Spec]Les déplacements Jeu 10 Déc - 9:56

Talsi



J'implémenterai le pathfinding côté client en JS dès que j'aurais fini de gérer l'affichage des jolies images sur la carte. La partie pathfinding, c'est à dire le fait de proposer au joueur un chemin valide quand il demande un déplacement d'un point à un autre. Ce sera ensuite au serveur de vérifier (de manière générale, le serveur doit toujours tout vérifier !) au fur et à mesure de l'avancée du général qu'il a bien le droit de traverser et l'arrêter sur un territoire dès que ce n'est pas le cas.

Comme pour l'instant ma carte est purement en local, aucune interaction avec un serveur qu'on n'a pas encore codé, je partirai donc du principe que lorsqu'on planifie un déplacement on a récupéré côté client :
- à qui appartient chaque territoire
- si un territoire est barbare, est-ce qu'il est occupé ou non
(je vais partir du principe qu'on a ces 2 infos dans un dictionnaire dont les clés sont les id des territoires, et la valeur l'id du joueur, -1 si c'est barbare vide, -2 si c'est barbare occupé)
- la liste des joueurs dont on a le ddp (qu'il soit donné par diplomatie ou par vassalité/suzeraineté)


Dans un premier temps, pathfinding comme de base dans le jeu, soit avec un territoire de départ et un territoire d'arrivée.

Dans un second temps, ce serait intéressant d'avoir comme avec le script KCL la possibilité de préparer un déplacement en listant les étapes (par exemple pour éviter de faire passer son général par un territoire qu'on risque de perdre, et plutôt lui faire prendre un chemin plus long mais plus sûr).
D'expérience cela peut-être assez fastidieux pour le joueur de planifier ce type de déplacement dès que c'est long (faut cliquer sur toutes les étapes).

Alors (dans un 3ème temps ?) on pourrait regarder un pathfinding avec étapes mais sans nécessité de les listes toutes. Typiquement "je veux aller de A à B en passant par C puis D", sans obligation de lister toutes les étapes entre A et C, entre C et D et entre D et B.


Concernant la traversabilité d'un territoire, Drange toi qui sait tout Wink , petite question pour bien préciser la spec' : sur un territoire sans garnison ni général du propriétaire fortifié, si le suzerain a un général fortifié est-ce que le passage est bloqué ou le territoire reste une passoire ? J'ai jamais eu l'occasion de tester pour vérifier (enfin, si, mais j'avais pas envie de risquer le royaume d'un vassal pour la science Embarassed ), et des joueurs m'ont certifié que oui ça bloquait, d'autres que non.

(et la plupart des joueurs n'ont jamais entendu parler de cette histoire de général à fortifier pour bloquer le passage quand toute la garnison a mourru, il faudra qu'on soigne davantage l'aide de jeu pour que les mécanismes soient bien clairs et accessibles à tous).

5[Spec]Les déplacements Empty Re: [Spec]Les déplacements Jeu 10 Déc - 10:11

drange



Talsi a écrit:petite question pour bien préciser la spec' : sur un territoire sans garnison ni général du propriétaire fortifié, si le suzerain a un général fortifié est-ce que le passage est bloqué ou le territoire reste une passoire ?
J'ai longtemps cru que le général du suzerain fortifié ne bloquait pas le passage.
Glaurung m'a affirmé que le passage était bien bloqué, il a fait des tests pour cela spécifiquement pour être sûr a 200%
Il avait raison le passage est bien bloqué par un général du suzerain fortifié
my bad j'ai souvent dit le contraire  Embarassed


je réfléchissais a ces déplacements
le test sur la "transférabilité" on ne le fait qu'au point de départ, cette caractéristique n'intervient plus pour la suite du déplacement

Je suis d'accord sur les étapes d'améliorations du déplacement :

1 pathfinding comme de base dans le jeu, soit avec un territoire de départ et un territoire d'arrivée
   en fixant le bug des territoires barbares occupés
2 Mode KCL : le joueur doit planifier le déplacement en cliquant sur toutes les étapes
3 Mode mixte : cliquer uniquement pour modifier un trajet trouvé par pathfinding

6[Spec]Les déplacements Empty Re: [Spec]Les déplacements Jeu 10 Déc - 11:29

Talsi



Merci pour la précision Smile

Contenu sponsorisé



Revenir en haut  Message [Page 1 sur 1]

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum