Pipopipette [Elixir, Phoenix, React]
#1
Yo !

Donc je me suis inspiré du code de Diamixir (projet de Sephi-Chan) pour implémenter un jeu multi (deux joueurs versus) avec un serveur écrit en Elixir (avec Phoenix framework) et qui fait utilisation des websockets et du système de channels de Phoenix.

Comme j'étais en voyage sur un windows10 partagé, je ne pouvais pas compiler sqlite, la base de données est donc du code maison et stocke dans des fichiers.

Le jeu en lui-même n'est pas très intéressant. Pipopipette est le nom officiel du jeu ou il faut fermer des petits carrés sur une feuille pour gagner. Je cherchais juste un jeu facile à implémenter pour pouvoir me concentrer sur l'infrastructure.

Je ne vais pas continuer le développement de cette version, je vais plutôt essayer de refactorer, nettoyer et formaliser l'architecture joueur / partie / channel.

Le code est dispo ici si vous voulez jetter un coup d'oeil : https://bitbucket.org/niahoo/pipopipette/src

Si vous voulez tester il faut se connecter avec deux navigateurs différents sur le jeu et cliquer sur le nom d'un autre joueur pour lancer une partie, puis accepter la partie avec l'autre joueur.
Répondre
#2
Ça serait chouette qu'on bosse sur des briques de base orientées jeux, des gen_xxx genre gen_lobby, etc. pour encapsuler les mécanismes de lobby/partie, et une pour gérer les communications (push le state de la partie filtré pour le joueur, etc.).

Je testerai à l'occasion !
Répondre
#3
C'est un peu mon but oui. Et pouvoir implepmenter la logique gameplay en Lua 2
Répondre
#4
Pour quel intérêt ?
Répondre
#5
Pourquoi Lua plutôt qu'un autre langage, et bien parce qu'il est facilement embeddable, y compris sur erlang. Pourquoi pas I mplémenter le gameplay en elixir ? Parce-que j'aime pas vraiment la gueule du code que j'ai produit, c'est pas vraiment clair tous ces Map.update et Enum.reduce. Je pense qu'un langage mutable est plus adapté pour implémenter un jeu de société.

D'autant plus qu'avec Erlang tu vas copier ton state Lua, donc au final si tu plantes ou autre, tu gardes quand même l'avantage de l'immutabilité. Par contre tu exécutes du code plus simple à lire/écrire et ça peut aussi éventuellement intéresser du monde.

Si à la fin on produit un genre de framework qui ne demande que de coder en Lua, ça sera fun et rapide d'implémenter des jeux dessus. Et tu pourras kiffer mapreduce sans avoir à l'employer aussi là où c'est relou : https://bitbucket.org/niahoo/pipopipette...a/board.ex
Répondre




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