Le RPG Dracca
#11
Hello bon je suis en retard d'un train sur le sujet mais je regarde avec attention  et ça me fait penser à plusieurs trucs. Du coup

La dernière version que tu donnes me fait furieusement penser au jeu Therian Saga avec les points d'intérêts,  le craft, et la gestion du temps. A noter d'ailleurs qu'il y a bien des zones sur la carte aussi mais que ces zones sont extrêmement grandes (par rapport à la carte) et que leur objectif est de définir un type de terrain (quoi exploiter, quelle compétence de survie etc...) plutôt que d'être dans le côté je réfléchis à comment je me déplace

Je ne sais pas si tu l'as essayé mais ca vaudrait peut être le coup pour voir les points forts  et faibles du jeu. La gestion du temps est très particulière, un peu lourde pour moi et il y a une notion de maximisation obligatoire pour progresser parfois un peu trop poussée
Mais globalement un jeu intellectuel intéressant

Sinon question :
(09-13-2017, 03:07 PM)Xenos a écrit : Pour éviter la seconde et favoriser la 1ere, je voulais faire des cases non-régulières, comme un diagramme de Voronoï.
j'ai regardé un peu sur wikipedia de quoi il s'agissait. Bon y a pas mal de formules et autres mais j'ai compris globalement le principe... Cependant... je me suis dit que si j'avais lu l'article par hasard j'aurais certainement demander à un modeleur équationneur de mes connaissances (bon j'en connais qu'un, il commence par un X et finit toujours par trouver des os) comment il implémenterait ça

du coup  comment, avant de changer d'avis sur le concept, tu pensais stocker ta carte ? tu faisais des segments (id zone, id segment, x1, y1, x2, y2) ? ou autre chose et comment t'organisait tout ça ? qui est voisin de qui, etc... dans le code ?
[WIP]projet Rivages
[WIP]projet Arthur (comme si ça suffisait pas d'un...)
Répondre
#12
Pour le fait d'utiliser la carte comme une question de "zone de terrain", ouep, c'est le même principe. Je n'ai pas essayé ce jeu, j'y jetterai un oeil le week end prochain (si t'as toi-même déjà des listes de points forts et faibles, je suis donc preneur 16 )
Je vais éviter la notion de "maxima" car effectivement, je la trouve compliquée à coder mais surtout à jouer (sur la v0 d'ECLERD, c'est ce que j'avais). Je préfère finalement la notion de choix: au lieu de "gagner si on garde un compteur à 50%", je vais tenter de donner le choix au joueur entre 100% ou 0%, les deux permettant de "gagner", mais de deux façons différentes (un peu comme si on essayais de gagner une quête par la force brute, en tabassant un type jusqu'à ce qu'il nous donne l'information, ou en essayant de la lui sous-tirer subtilement).

Pour le Voronoï, dans un premier temps, je me suis dit "j'vais l'implémenter direct, lol, ça sera facile" mais... pfff... non, ça serait très chiant à faire automatiquement, et cela m'empêcherais de faire des ajustements manuels si j'en avais envie (ce second point est ce qui m'a vite bloqué). Du coup, je me suis tourné vers l'idée d'utiliser Inkscape. Le principe était alors de concevoir la carte via ce soft, et de m'en servir comme d'un "éditeur de carte"... D'autant qu'il existe directement un plugin (nativement inclus avec l'installation de base) permettant de créer un "motif de Voronoï". On sélectionne une tuile de base (un polygone-clone de la région de la carte) et on exécute le plugin, en indiquant la taille approximative de cellule qu'on veut. Le motif (une texture vectorielle) est alors généré. De là, on peut convertir le motif en un objet (donc, un "path" SVG). Après, il faut cropper ce path pour qu'il reste à l'intérieur de la région (on reduplique le polygone de la région, et on utilise l'outil "cut path" je crois). Une dernière manip' (mais là, je l'ai oubliée :/) permet de changer ce path en un ensemble de polygones SVG.

Une fois cette map SVG faite (je m'aperçois que la question ne portait pas là-dessus, tant pis!), il n'y a plus qu'à prendre chaque cellule et la stocker en BDD, sous la forme d'un POLYGON (extension GEOMETRY de MySQL). La conversion polygonSVG->WKT (Well Known Text) n'est pas compliquée, ce sont deux formats textes. Ensuite, les régions sont en fait des groups SVG "g": un groupe possède son ID et rassemble, en enfants XML, tous les polygons des cases de la région. Donc détecter stocker qu'un polygon fait partie de telle région, c'est trivial. Enfin, pour la détection de qui est voisin de qui, je pensais utiliser simplement l'extension GEOMETRY de MySQL (là encore) qui permet de savoir si deux polygones sont en contact (IS_TOUCHING() je crois). Si cela n'avait pas suffit, j'aurai "juste" bouclé sur chaque polygone en BDD, et cherché pour chaque autre polygone si il y avait 2 points en commun entre ces polygones (affreusement long je pense, mais fonctionnel, car de la façon dont Inkscape passe du pathSVG des frontières de Voronoï à un ensemble de polygones qui sont les cellules du Voronoï, les sommets sont conservés: deux polygons ont alors un côté commun si et seulement si ils ont deux points superposés). Le stockage de qui est voisin de qui se serait alors fait via une table dédiée, deux colonnes d'ID (une par polygone) et d'éventuelles propriétés de cette connexion.
Répondre




Utilisateur(s) parcourant ce sujet : 1 visiteur(s)