La distribution éducative pour débutants et initiés.
Vous n'êtes pas identifié(e).
Bonjour,
J'aimerais vous sensibiliser sur un nouveau projet de jeu de puissance quatre open-source.
A première vue, rien de bien neuf : ça existe déjà dans GCompris.
Oui mais le puissance quatre de GCompris est un jeu sur le même écran à tour de rôle.
Voici ce qui (à mon sens) présente de l'innovation :
- full responsive avec un format vectoriel => parce que tous les projets que je connais sont en réalité des formats images donc pixelisés sur des grands écrans.
- jeu en réseau : s'affronter en live sur des écrans différents
En plus, on peut envisager des modes tournois organisés par des admin (profs, parents etc.) !
- un mode ai avec un niveau de difficultés
- un choix entre plusieurs GUI :
- mode cli pour les plus geeks
- mode web : l'interface accessible de partout => aussi bien téléphone, tablette, ordi fixe etc.
- mode appli en GTK : principalement dédié aux ordis reconditionnés, c'est top car ça évite de lancer un navigateur complet (et les ressources gargantuesque nécessaires)
- open source
- internationalisation
- Partie serveur et client non web écrit en Rust et client web en html/javascript/css
Bien évidement le cadre du jeu en réseau autorise tout naturellement à un joueur en mode cli d'affronter aussi bien un autre joueur en mode cli qu'en mode web ou appli GTK.
Ce projet assez simple sera pour moi une entrée en matière pour envisager des jeux plus complexes (je pense fortement au stratégo) avec toujours les mêmes prérogatives et par conséquent une libraires de code commun !
Le jeu sera gratuit mais je ne cache pas un intérêt de financement participatif si la mayonnaise prend. (au moins pour payer les hébergements d'instances de serveurs)
J'ai déjà commencé à dev un bon morceau (juste le nécessaire pour jouer un peu avec ma fille qui m'a lancé sur l'idée) mais cherche avant tout à communiquer sur l'idée.
1. Est-ce que c'est suffisamment enthousiasmant ?
2. Si oui, qu'est ce qui vous parait le plus novateur ? Quels seraient vos suggestions, propositions d'amélioration etc.
J'en suis à la phase brainstorming donc tout est bon à prendre et entendre !
Hors ligne
Il existe beaucoup de jeux de puissance 4 et de scripts. Pour moi la nouveauté résiderait dans le réseau et les tournois, un peu comme le boggle. Après faut voir... On peut prévoir des alignements de 5, de la 3d dans les options, des jetons personnalisables, une option où le pc te balance un jeton aléatoire n'importe quand, pourquoi ne pas envisager des grilles différentes (autre forme, plus grande, plus petite...)...
Hors ligne
Ok, des bonnes idées, j'en prend note !
Que veux-tu dire par scripts ?
Réseau et tournois : c'est la partie la plus intéressante à dev donc je vais me concentrer dessus !
Hors ligne
Hors ligne
Bonjour, après de nombreux mois d'absences, j'ai enfin dev quelque chose d'utilisable et de cohérent.
La preuve en est (même si c'est qu'à moitié objectif) que ma fille de 9 ans n'a pas eu besoin de longues explications et que nous jouons en moyenne 4 à 5 parties par jour depuis 2 semaines sans rencontrer de soucis majeurs.
Je me suis pour le moment concentré sur l'essentiel : un serveur de jeu avec une interface web pour les joueurs le tout en réseau.
Pas encore d'interface en GTK stable ni de mode tournoi. (même si j'ai déjà réfléchi à toute la mécanique de cette dernière sous forme papier : wireframes et organigrames)
Le tout est utilisable en mode réseau local.
Ce que je sous-entend par là : c'est que c'est fonctionnel avec des utilisateurs connus physiquement.
En effet, il y a encore quelques cas non gérés pour des utilisateurs qui ne se connaissent pas du genre :
- que faire quand un utilisateurs ne répond pas à une invitation
Voilà, ça c'est la partie Onirique de ce nouveau projet.
En effet, il y a des manques sur la partie déploiement qui est encore rude.
Elle n'est pas idéal et j'en ai concience.
J'aimerais :
- mettre à dispo un serveur de démo public (sans doute 1 VPS OVH)
- Proposer d'empaqueter le tout pour une installation aisé sous PrimTux (j'aurais peut-être besoin d'aide à ce sujet)
- mettre en place une doc et aide
Dernière modification par mothsart (27-02-2018 15:29:04)
Hors ligne
J'ai mis un descriptif du projet sur mon site : https://mothsart.github.io/puissance4.html
Dedans, il y a la procédure d'installation, des imprim écrans etc.
Pour vérifier que tout ce déroule sans accros, j'ai créé une image docker : https://github.com/mothsART/docker_connect_four.git
Je vais sous doute retester dans une virtualbox.
Hors ligne
Plusieurs semaines ont passés.
J'ai appris à empaqueter des projets Rust (Le langage est un peu jeune) : https://forum.ubuntu-fr.org/viewtopic.php?id=2023943
Pour accéder aux paquets : https://launchpad.net/~jerem-ferry/+arc … /+packages
J'ai dût me pencher sur Systemd (mon inspiration : http://alesnosek.com/blog/2016/12/04/co … -systemd/) et adapter le code aux contraintes d'une mise en prod.
Néanmoins, le soft reste en béta et demande votre indulgence.
Pour l'instant, après installation du paquet, ça nécessite de lancer les services systemd à la main (en root) :
systemctl start connectfour.service
systemctl start connectfour_web.service
systemctl start connectfour_ws.services
Ces derniers lancent respectivement le serveur web et le serveur websocket.
Lorsque le serveur websocket est arrêté ou redémarré, les données du jeux liés à la session sont vidés. (Ceci évite les enregistrements fantômes qui pourraient se cumuler)
Pour accéder au jeu, il faut donc lancer un navigateur puis :
* Si l'on est sur la même machine que le serveur : 127.0.0.1:8000 (ou localhost:8000) suffira
* Si l'on est sur une autre machine appartenant au même réseau locale : ip_du_poste_serveur:8000
Evolution à venir : J'aimerais rapidement créer un petit applicatif d'admin (en gtk) qui viendrait piloter le service systemd pour éviter la ligne de commande. (au moins au premier lancement)
Hors ligne
Le source github intègre la config pour l'empaquetage (dossier debian) https://github.com/mothsART/connect_four
Hors ligne
Ben écoute ça marche, c'est pas mal, j'ai joué contre moi-même. Alors attention dans le .deb l'exécutable est dans /usr/share/bin/connectfour au lieu de /usr/bin.
Si on ne lance pas le serveur en root (ou sudo), le terminal devient fou et il faut redémarrer à l'arrache!
Hors ligne
Ok, merci beaucoup pour le feedback!
Si on ne lance pas le serveur en root (ou sudo), le terminal devient fou et il faut redémarrer à l'arrache!
Ah oui, à ce point ? T'avais lancé systemd en espace utilisateur ?
Hors ligne
Les 3 services oui, il m'a demandé de m'authentifier mais la boîte ne m'a pas mis de fenêtre pour écrire le mot de passe et là plein de fenêtres de roxterm se sont manifestées!
Hors ligne
Ok, bon, faut vraiment que je dev une petite appli qui gère ça alors.
Hors ligne
Tu ne peux pas inclure l'allumage des 4 dans un script bash ?
Hors ligne
Je viens de tenter un script mais ça me lance un dialogue pour donner les droits root par service (soit 3 fois ).
Lancer ce type de service nécessite des droits super utilisateur, certe mais il faudrait un prompt pour donner les droits puis lancement des services.
Je n'arrive pas à trouver de solution élégante et je suis preneur de toute idée.
Y'a bien entendu l'utilisation de postinstall dans le paquet debian mais je suis pas fan car ça impose le lancement d'un daemon.
Hors ligne
Je viens de tenter un script mais ça me lance un dialogue pour donner les droits root par service (soit 3 fois
).
Si le script est lancé avec les droits root, il devrait être en mesure de lancer des services exigeant des droits root. Donc un seul mot de passe au lancement du script principal.
Hors ligne