JeuWeb - Crée ton jeu par navigateur
Pipopipette [Elixir, Phoenix, React] - 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 : Pipopipette [Elixir, Phoenix, React] (/showthread.php?tid=7956)



Pipopipette [Elixir, Phoenix, React] - niahoo - 14-12-2018

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.


RE: Pipopipette [Elixir, Phoenix, React] - Sephi-Chan - 15-12-2018

Ç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 !


RE: Pipopipette [Elixir, Phoenix, React] - niahoo - 15-12-2018

C'est un peu mon but oui. Et pouvoir implepmenter la logique gameplay en Lua Smile


RE: Pipopipette [Elixir, Phoenix, React] - Sephi-Chan - 15-12-2018

Pour quel intérêt ?


RE: Pipopipette [Elixir, Phoenix, React] - niahoo - 15-12-2018

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/raw/41f64be54791bc81756d44a7569a206e4e9f7e4e/lib/pipo/data/board.ex