Comus Party 1.0.0
Application web de mini-jeux en ligne
|
Chacun est libre de développer un jeu, cependant, certaines règles sont à respecter pour que celui-ci puisse s'intégrer convenablement à Comus Party.
https://games.comus-party.com/{idDuJeu}
. Veillez à ce que votre jeu n'utilise pas d'URL absolue pour les ressources et autres redirections.Chaque jeu traite indépendamment sa logique interne. Cependant, deux fonctions sont obligatoires pour le bon fonctionnement du jeu et de Comus Party :
Il est aussi obligatoire d'inclure un fichier settings.json
. Il contient l'ensemble des informations nécessaires pour le bon fonctionnement du jeu avec la plateforme principale Comus Party.
settings.json
Pour ajouter un jeu, il suffit de glisser le dossier du jeu dans le dossier games
avec comme nom game{idDuJeu}
. Par exemple, pour ajouter un jeu avec l'ID 42 (en base de données) il faudra créer un dossier game42
dans le dossier games
.
Le dossier du jeu doit contenir un fichier settings.json
qui contient les informations du jeu. Voici un exemple de fichier settings.json
:
settings
minPlayer
: Nombre minimum de joueurs pour lancer une partiemaxPlayer
: Nombre maximum de joueurs pour lancer une partieallowChat
: Autoriser le chat dans l'interface de ComusallowVoice
: Autoriser la voix dans l'interface de ComusallowSpectators
: Autoriser les spectateurs à voir la partieallowJoinInProgress
: Autoriser les joueurs à rejoindre une partie en coursallowLeaveInProgress
: Autoriser les joueurs à quitter une partie en coursisNode
: Le jeu est-il un jeu NodeJSserverPort
: Port du serveur de jeuserverAddress
: Adresse du serveur de jeuserveByComus
: Indique si le jeu est servi par la plateforme officielle de Comus PartyneededParametersFromComus
et returnParametersToComus
Liste des paramètres possibles pour neededParametersFromComus
:
MODIFIED_SETTING_DATA
: Liste des paramètres modifiés par l'hôte de la partiePLAYER_UUID
: Les uuids des joueurs dans la partiePLAYER_NAME
: Les noms des joueurs dans la partiePLAYER_STYLE
: Photo de profil et bannière des joueursListe des paramètres possibles pour returnParametersToComus
:
WINNERS
: Booléen indiquant si le joueur est gagnantSCORES
: Score des joueursAjout de paramètres modifiables pour l'hôte de partie dans modifiableSettings
:
Liste des types possibles :
text
: Champ de textenumber
: Champ numériqueselect
: Liste déroulantecheckbox
: Case à cocherChaque type a des propriétés spécifiques :
text
default
: Valeur par défautmaxLength
: Longueur maximale du texteminLength
: Longueur minimale du textepattern
: Expression régulière à respecternumber
default
: Valeur par défautmin
: Valeur minimalemax
: Valeur maximalestep
: Pas de la valeurselect
options
: Liste des options possiblesvalue
: Valeur de l'optionlabel
: Label affiché de l'optiondefault
: Option par défautLa fonction d'instanciation est appelée lors de la création d'une partie. Elle est situé à l'endpoint POST
/{code de la partie créée}/init
. Il reçoit en corps de requête les informations demandées par le jeu pour lancer une partie dans neededParametersFromComus
ainsi qu'un attribut token
contenant le jeton de la partie. Ce jeton est à renvoyer dans les réponses du jeu pour identifier la partie.
Si la partie est créée avec succès, la fonction doit retourner un code de statut 200
et le corps de réponse ( minimum) suivant :
Dans le cas contraire, la fonction doit retourner un code de statut autre que 200
et 300
et le corps de réponse ( minimum) suivant :
Dans le cas où neededParametersFromComus
contient la valeur MODIFIED_SETTING_DATA
, le système envoi un tableau associatif au format JSON dans le paramètre settings
:
Dans le cas où neededParametersFromComus
contient la valeur PLAYER_UUID
, le système envoi un tableau associatif au format JSON :
La présence du token est obligatoire pour tous les jeux.
Dans le cas où neededParametersFromComus
contient la valeur PLAYER_NAME
, le système rajoute au tableau précédent les noms des joueurs :
PLAYER_UUID
n'est pas présent, l'attribut PLAYER_NAME
ne sera pas pris en compte.Dans le cas où neededParametersFromComus
contient la valeur PLAYER_STYLE
, le système rajoute au tableau précédent les styles des joueurs :
PLAYER_UUID
n'est pas présent, l'attribut PLAYER_STYLE
ne sera pas pris en compte.La fonction de terminaison est appelée lors de la fin d'une partie.
Elle doit envoyer une requête POST
à l'endpoint de Comus Party /game/{code de la partie}/end
avec le corps de requête suivant, au minimum, au format JSON :
N'oubliez pas de renvoyer, en fonction des paramètres définis dans returnParametersToComus
, les informations nécessaires conformément au format attendu.
Tout comme les données envoyées par Comus Party, par défaut, le jeu doit renvoyer les données suivantes au format JSON, sauf si returnParametersToComus
est vide.
Les données doivent être renvoyées dans l'attribut results
. Exemple :
Le token correspond à l'identifiant du joueur dans la partie et l'uuid est l'identifiant unique du joueur. Ces données sont envoyées par Comus Party lors de l'instantiation de la partie.
On peut ainsi, en fonction des paramètres inscrit dans returnParametersToComus
, ajouter des données supplémentaires.
Dans le cas où returnParametersToComus
contient la valeur WINNERS
, le système attend avec les données précédentes un booléen winner
pour chaque joueur :
Dans le cas où returnParametersToComus
contient la valeur SCORES
, le système attend avec les données précédentes un entier score
pour chaque joueur :
Si la partie est terminée avec succès, le serveur renverra un code de statut 200
.
À l'inverse, si la partie n'a pas pu être terminée, le serveur renverra un code de statut autre que 200
et 300
. Le corps de réponse sera le suivant :