Vous êtes bien connecté !
Vous vous êtes bien déconnecté !

Boursicocotte : un jeu de société porté en ligne

DÉVELOPPEMENT DE JEUX

Le 09/06/2020 à 15h23

Par tidann

Bonjour à tous, dans cet article je vais vous présenter Boursicocotte, un jeu mobile que j'ai développé récemment. Il s'agit du portage d'un jeu de cartes sur mobile et en ligne, pour y jouer à distance.

Le jeu original


Le nom original du jeu est Kuhhandel, et il a été inventé par l'allemand Rüdiger Koltze. C'est un jeu d'enchères de 3 à 5 joueurs et dans le thème de la ferme qui donne une place très importante au bluff et à la stratégie. Le but est d'obtenir le plus de familles d'animaux possibles, soit en les remportant aux enchères, soit en les chipant à ses adversaires avec de la ruse. Je ne vais pas revenir sur les règles, mais vous pouvez les retrouver à ce lien. Je l'ai beaucoup aimé lorsque j'y ai joué pour la première fois et me suis donné l'idée de le programmer pour pouvoir y jouer à distance avec mes amis!

Le portage


Comme cité précédemment, c'est un jeu de cartes; et il est très amusant au vu de sa simplicité : en effet les cartes se limitent à 4 animaux par espèce (10 espèces) et des cartes d'argent de valeurs de 0 à 500. Pour ce qui est du "gameplay", c'est du tour par tour avec 2 actions possibles par tour : vente aux enchères ou réclamation d'animaux. C'est donc à première vue assez simple à programmer.
J'ai aussi précisé que le jeu est en ligne : ici j'ai opté pour la solution du serveur centralisé (plutôt que du peer-to-peer) pour plusieurs raisons : rapidité des requètes, simplification du code, dépannage plus simple en cas de problème en jeu. Le code côté serveur est assez simple : je ne cherche pas à faire un code ultra-évolué si c'est juste pour jouer entre amis. De plus, au niveau de la façon dont le code est réalisé, tout d'abord c'est en PHP, et les données sont fournies sous la forme d'un code JSON. Là aussi j'ai opté pour cette solution (et non pas une API plus haut niveau, avec des appels de fonctions par exemple) pour plusieurs raisons : synchronisation plus simple des clients en cas de redémarrage, code plus simple côté serveur.
Vous l'aurez compris, le gros du travail est effectué côté client. En effet, les communications avec les serveur sont faites via 2 types de requêtes HTTP : une qui récupère continuellement les informations de la partie pour synchroniser le client, et l'autre qui s'occupe des envois de données. Cette solution n'est évidemment pas parfaite (le serveur ne peut pas supporter des milliers de joueurs) mais c'est largement suffisant pour une utilisation normale. En tout, la programmation du jeu a duré 2 semaines.


Visuels et sortie


Je ne suis pas un graphiste, et tant mieux puisque ce jeu ne requiert pas beaucoup d'éléments visuels, seulement le design de l'UI que j'ai réalisé avec un pack open source (crédité dans le jeu), une icône gratuite pour utilisation commerciale et un logo fait sur powerpoint.
A l'origine ce jeu était censé rester dans une utilisation personnelle, mais je me suis dit que je pourrais peut être un jour le sortir sur les Stores mobiles...

Si c'est le cas, je préférerais le rendre payant plutôt que gratuit et avec des publicités, d'abord car la solution des pubs n'est agréable ni pour les utilisateurs ni pour le développeurs, mais je m'assurerais aussi que ceux qui téléchargent l'application le font pour y jouer et non pour chercher à attaquer le serveur et nuire aux autres joueurs (cela peut paraître rebutant car il faudrait l'acheter plusieurs fois pour le minimum de 3 joueurs, mais sachez que si vous utilisez le même compte Google/Apple vous n'aurez à l'acheter qu'une seule fois).

Merci d'avoir lu, et bon jeu!

Captures d'écran