JeuWeb - Crée ton jeu par navigateur
[WIP] Un jeu de carte - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Les réalisations de la communauté (https://jeuweb.org/forumdisplay.php?fid=39)
+--- Forum : Jeux en développement (https://jeuweb.org/forumdisplay.php?fid=53)
+--- Sujet : [WIP] Un jeu de carte (/showthread.php?tid=8109)

Pages : 1 2 3 4


RE: [WIP] Le Ciel et l'Ether CCG - Zero - 23-07-2020

Allez, au boulot. Après ce petit intermède philosophico-toutlemondesenfoutiste, reprenons.

La phase de pose des cartes pour faire des points me semble un peu aride en termes de stratégie, donc je rajoute un petit élément de gameplay. La zone centrale (bleue) est divisée en 5 colonnes. Quand on pose des cartes Valeurs ou Honneurs, on les pose dans une de ces colonnes. A la fin d'une manche, lors du décompte des points, on fait le décompte colonne par colonne, et chaque joueur ne gagne les points que des colonnes où il a plus de points que l'adversaire. Exemple :

Code :
|  8 | 15 |  3 | 11 |  6 |
|    |    |    |    |    |
|  1 |  9 | 12 | 11 |  8 |


Le joueur du haut gagne 8 + 15 = 23.
Le joueur du bas gagne 12 + 8 = 20.
Les deux sont ex-æquo sur la 4ème colonne, donc personne ne marque les 11 points.

Avec ce système, le choix stratégique est celui d'un investissement à faire ou pas : imaginons que j'ai posé 5 points dans une colonne, et l'adversaire 7 dans la même colonne, est-ce que ça vaut le coup d'investir encore dans cette colonne pour ne pas perdre les 5 points que j'avais mis au départ.

Ce système donne aussi plus "d'aspérités", de reliefs sur lesquels les effets et sortilèges peuvent s'appliquer. Il est facile d'imaginer des effets modifiant le contenu des colonnes.

-----

Passons à la technique. Il va ma falloir faire ça en PHP et là je suis dans la mouise, mais bon on va y arriver. Si on veut vraiment faire les choses bien, il faudrait faire un système d'inscription/connexion. Je l'ai déjà fait une fois, en flat file, et j'avais la sensation de réinventer la roue. Auriez-vous une librairie à me conseiller svp ?

Pour le jeu proprement dit, je pense faire comme ceci : une table de jeu = un fichier, et je regarde toutes les 2 secondes si le fichier a été modifié. Quand un mouvement est fait, je rajoute à la fin du fichier la description du mouvement. Le fichier est un JSON, un tableau sans les crochets. Je rajoute les crochets avant de le parser.

Je sais que c'est low-tech, mais on ne va pas se mentir, on n'est pas en train de faire le nouveau Hearthstone, donc il y aura quoi, 10 joueurs ? Je pense que le flat file suffit non ? Et il faut penser que ce sera hébergé chez free, donc avec du vieux PHP.

Qu'en pensez-vous chers experts ?  Big Grin

édit :

Ah, je viens de voir qu'il existe un service JWP... c'est probablement ce qu'il me faut ! Je crois que je vais vous embêter très bientôt...


RE: [WIP] Le Ciel et l'Ether CCG - niahoo - 23-07-2020

Avec cette stratégie ton fichier ne peut contenir qu'une liste de mouvements.

Si tu attends 10 joueurs ça te coûte rien de décoder tout le fichier, ajouter ton mouvement dans les données, réencoder en json et réécrire le fichier. ça se compte en millisecondes.

Le json c'est pratique si tu veux pouvoir regarder ce qu'il y a dedans. Surtout que tu peux le "pretty printer". Ensuite tu peux mesurer les performances pour choisir entre du json ou la sérialisation de base de php, notamment si tu utilises des classes.

Pour jwp c'est un peu mort je pense, le forum a été migré et le service n'est plus hébergé. Je pense le forker un de ces quatre et l'héberger mais je ne sais pas quand. En attendant tu peux regarde Pusher ou autres services du genre. Si tu veux parler de JWP je te conseille de venir sur le discord.


RE: [WIP] Le Ciel et l'Ether CCG - Xenos - 24-07-2020

Si le JeuWebPush est sur un sous-domaine, alors il est encore actif? DiseaseIt l'est par exemple. Seul le forum en lui-même a changé de serveur.
Attention avec la sérialisation PHP (je n'ai pas 100% suivit la discussion donc c'est peut-etre pas applicable): si elle est envoyée au client (ou passe entre les mains d'un autre que le serveur) alors la désérialisation devient extrêmement risquée (sûrement trop risquée).


RE: [WIP] Le Ciel et l'Ether CCG - niahoo - 24-07-2020

Il a pas l'air actif : http://push.jeuweb.org/

Citation :je n'ai pas 100% suivit la discussion donc c'est peut-etre pas applicable

Oui …


RE: [WIP] Le Ciel et l'Ether CCG - Zero - 24-07-2020

En fait ce que je pensais faire (mais vous me dites ce que vous en pensez) c'est de gérer le jeu totalement côté client, avec un serveur minimal qui se contente de "faire passer le message". Je m'explique.

Je sais pas si vous avez eu la curiosité de jeter un œil à Dvorak, dont j'avais posté le lien. C'est un jeu de cartes vraiment intéressant au niveau mécanique puisque les joueurs peuvent inventer des cartes, ça fait partie de la mécanique du jeu

En fait on peut considérer qu'il y a 4 niveaux de liberté avec ce type de jeux :
- le Nomic, un jeu dont le but est carrément de modifier les règles (c'est ouf),
- le jeu des 1000 cartes blanches qui restreint le champ au jeux de cartes,
- le Dvorak est est une évolution (par contraintes) du jeu des 1000 cartes blanches,
- enfin les implémentations de Dvorak, des jeux de Dvorak avec un thème, des règles additionnelles, ...etc. C&E appartient à cette catégorie.

A ma connaissance, il n'existe pas de jeu de cartes laissant les joueurs créer eux-même des cartes, à une exception près : Collective, mais la création de cartes ne fait pas partie du gameplay, c'est à part.

Ici je veux faire un jeu dans lequel les joueurs peuvent créer des cartes avec leurs effets, ce qui n'est possible que si les règles ne sont pas écrites "en dur" dans le code. Il devra y avoir des restrictions sur les règles qu'il est possible de créer, par exemple ajouter une colonne est interdit, parce que le moteur de jeu a besoin qu'il y ait 5 colonnes, ou alors faut que ce soit prévu à l'avance. Donc vous voyez pour qu'il y ait un maximum de liberté, les règles doivent être le moins codées possible.



Ma théorie, c'est que s'il est extrêmement facile de tricher, alors il n'y a plus aucun intérêt à tricher. Imaginons deux potes qui se connaissent très très bien, il y en a peut-être un qui va tricher une fois comme ça pour déconner, mais c'est tout, après quel intérêt ?



édit :

L'idée c'est de tout modulariser, et de déconnecter l'apparence des cartes, les règles qui leur sont associées, et le lore. N'importe qui peut venir inventer du lore, des personnages, des races, des mondes, ...etc. Des artistes peuvent créer des cartes, soit des arcanes (les 22 atouts) soit des enseignes (de l'as jusqu'au roi). Les cartes représentent des éléments de lore, mais n'ont pas de règles associées une fois pour toute, les règles peuvent être modifiées. Le lore peut s'inspirer des cartes, les cartes peuvent s'inspirer du lore, les règles peuvent être redéfinies en fonction d'événements à l'échelle de l'univers : guerres entre mondes, pirates de l'espace, commerce, ...etc. L'évolution de l'histoire de l'univers est l'endroit où tout se rejoint : sans doute dans un wiki, des événements sont décrits, qui font avancer l'histoire.

Je sais c'est ambitieux.


RE: [WIP] Le Ciel et l'Ether CCG - niahoo - 24-07-2020

Ben ça ce sont des éléments de gameplay, plutôt cool mais à mon sens ça n'a aucun rapport avec « gérer le jeu totalement côté client » qui semble plutôt être un sujet technique.


RE: [WIP] Le Ciel et l'Ether CCG - Zero - 24-07-2020

Ben si c'est en rapport à mon avis, parce que comment tu fais pour implémenter côté serveur des règles qui n'existent pas encore... Côté client aussi d'ailleurs, c'est juste impossible d'imaginer à l'avance toutes les idées que pourraient avoir les joueurs.

Le seul élément que je pense possible d'implémenter côté serveur, c'est le contenu d'un paquet de cartes posé sur la table face cachée. Aucun des deux joueurs n'a accès au contenu du paquet, et ça ça ne dépend pas de règles particulières, c'est juste un état ordinaire de l'agencement des cartes sur la zone de jeu.

Que mettrais-tu côté serveur personnellement ?


RE: [WIP] Le Ciel et l'Ether CCG - niahoo - 24-07-2020

(24-07-2020, 11:11 AM)Zero a écrit : Que mettrais-tu côté serveur personnellement ?

Ben déjà ton histoire de colonnes là. Il faut pouvoir valider le respect de cette règle et compter les points. Ensuite si tu veux que les joueurs puissent créer les cartes qu'ils veulent sans contrainte, tu dois compter sur eux pour respecter ce qui est marqué sur la carte, donc si tu veux implémenter quelque chose pour aider les joueurs dans ce sens là c'est plutôt un système de vote ou de kick des mauvais joueurs.


RE: [WIP] Le Ciel et l'Ether CCG - Zero - 24-07-2020

Ouais c'est pas mal l'idée de l'évaluation mutuelle des joueurs. C'est même vraiment bien, ça pourrait être la base d'un classement des joueurs en fait. On peut évaluer :

- la compétence de l'adversaire ( il a joué mieux que moi / aussi bien que moi / moins bien que moi )
- son respect des règles ( il a respecté les règles / il a involontairement enfreint les règles / il a délibérément triché )
- sa bienveillance ( il m'a conseillé ou aidé à mieux jouer / il a joué honorablement / il m'a induit en erreur ou menti )
- sa créativité ( il a introduit des cartes équilibrées et claires / des cartes incompréhensibles ou ambiguës / des cartes déséquilibrées )

Donc on ne "gagne" pas une partie, on en ressort simplement avec une évaluation de son adversaire. Super idée, merci qui, merci Niahooooo !



Maintenant le truc des colonnes. Regarde, c'est ce que je disais, imagine que je fasse un décompte des points en dur sur le serveur, mais qu'un joueur associe au roi de coupe la règle "double la valeur des cartes alliées de la colonne dans laquelle il est posé", ben mon décompte n'est plus bon.



édit : après avoir fait les 4 évaluations, les joueurs reçoivent les évaluations que leur adversaire a fait d'eux, et ils peuvent alors faire une cinquième et dernière évaluation :

- son honnêteté ( il m'a évalué de façon honnête et justifiée / son évaluation est à peu près acceptable / son évaluation est injuste ou malhonnête )


RE: [WIP] Le Ciel et l'Ether CCG - niahoo - 24-07-2020

Ben oui mais bon, tu dois choisir : soit on peut inventer les règles que l'on souhaite et dans ce cas tu n'implémentes pas le décompte des points, soit tu limites ce qu'il est possible de faire et tu implémentes toutes les solutions.

Tu peux aussi, par exemple, laisser à un joueur qui pose une carte la possibilité de changer les points de toutes les autres cartes du jeu. La carte affiche alors ses anciennes valeurs de points rayés (pour avoir un historique visuel) et sa nouvelle valeur. Là les autres joueurs doivent valider les modifications pour que tout le monde soit d'accord sur ce qui a été fait. Et une fois que tout le monde a validé, le serveur connait la nouvelle valeur de chaque carte. Si c'était le dernier tour il peut faire le décompte des points, sinon on repart pour un tour.

Après à mon sens c'est plutôt chiant de faire ça pour les joueurs. Ça dépend des goûts mais perso je préfère un jeu aux règles simples, clairement établies, et qui ne changent pas. Sinon tu ne peux pas devenir bon à ce jeu. Si les règles changent tout le temps, tu restes un éternel débutant, tu ne vois jamais les stratégies avancées, etc.