OmniRoll : la mise en place aléatoire pour tous vos jeux!

Bonjour à tous !

Je viens vous présenter un projet que j’ai dans la tête depuis quelques mois dont j’ai enfin finalisé le MVP.

Ce projet c’est OmniRoll : https://omniroll.netlify.app/


Le but est d’avoir des randomizers (mise en place aléatoire © @Kenjitheboudah ) pour tous vos jeux favoris !

L’application est conçue selon différents principes :

  • Un « référentiel » de jeux : comprenant une « description » des composants pouvant être tirés aléatoirement (carte, personnage, scénario, etc.) ainsi que des règles de mise en place aléatoire (randomizer). Les composants peuvent être organisés sous forme de hiérarchie (sets) représentant les différentes extensions ou versions du jeu.

  • Une « collection » : qui décrit les jeux et éléments que l’utilisateur possède.

  • Une Progressive Web App (PWA) : application disponible depuis un navigateur et disponible hors-ligne (aucun serveur).

  • Un affichage composé essentiellement de grilles de « cartes » (au sens graphique, et non de composants de jeu).


Comme je le disais la version actuellle (et première) est un MVP :

  • Gestion d’un référentiel de jeux

  • Gestion d’une collection

  • Tirage aléatoire selon les règles de mise en place définies dans le référentiel

  • Support de deux jeux : Aeon’s End et Skytear Horde.

  • Affichage responsive (minimum syndicale pour que ce soit compatible PC et mobile).


Bien entendu, le projet est amené à évoluer, et j’ai déjà plein d’idées pour :

  • Référentiel :

    • Données externes (#21) : permettre d’importer des données depuis des fichiers en local ou via une URL. Afin de pouvoir ajouter et modifier des jeux, des composants ou des règles de mises en place.

    • Synchronisation (#22) : permettre de synchroniser / mettre à jour les référentiels définis à partir d’une URL.

    • Éditeur : gérer un référentiel local via une interface graphique.

  • Mise en place aléatoire :

    • Variables (#23) : la possibilité d’utiliser des variables (exemple : nombre de joueurs, niveau de difficulté).

    • Emplacements liés (#24): la possibilité de faire correspondre des emplacements entre eux (exemple : un scénario ou un boss utilisant des ennemis spécifiques).

  • Interface graphique :

    • Logo (#25) : :sweat_smile:

    • Navigation (#26) : ajouter des éléments de navigation (menu, fil d’ariane, etc.).

    • Personnalisation des « cartes » (#27) : permettre de modifier l’apparence des « cartes » (couleurs, fond, etc.).

  • Jeux :

    • Shards of Infinity (#14)

    • Street Masters (#11)


Tous vos retours et contributions sont les bienvenus :

  • remonter les anomalies ou suggestions d’améliorations,

  • proposer de nouvelles fonctionnalités,

  • suggérer de nouveaux jeux à intégrer (merci de fournir les données ou une source de données :folded_hands:),

  • voter pour vos idées préférées (principalement sur Github, mais j’essaierai de faire des sondages réguliers).


Les liens utiles :

16 « J'aime »

Ça peut être pas mal d’avoir tout au même endroit / dans la même appli effectivement. :+1:

1 « J'aime »

Tu te lance dans un truc qui va être quelque peu chronophage je crois :smiley:

Je n’ai pas tant de jeux que ça qui peuvent être concernés mais j’en ai qqs uns avec des sites déjà existants (pour donner des idées ou autre)

Thunderstone Quest Randomizer
Dice Forge Generator
Valeria Card Kingdoms Randomizer
Thundermaster: Intelligent Randomizer for Thunderstone
Thunderstone Generator
Sushi go party! generator

3 « J'aime »

L’idée est vraiment intéressante, je vais suivre de prêt.

Ca pourrait être intéressant de permettre à la communauté de configurer de nouveau jeu via une ihm, et de les partager.

3 « J'aime »

Oui je pense qu’il faut déléguer le moyen de rentrer le contenu si on veut que ça fonctionne.

3 « J'aime »

En fait c’est ce que dans le jargon on appelle un « toy project », je le fais essentiellement parce que je trouvais ça pratique pour moi même et curieux de savoir si le concept était possible (ou plutôt jusqu’où c’était possible)

Quand j’ai commencé à me pencher dessus, il y a eu pas mal d’idées qui ont fusées ; et qu’il faudrait que couche enfin dans le backlog (liste des tâches à faire) …

Merci pour les liens en tout cas. Je sais pas si je prioriserai des jeux pour lesquels des apps existes. J’ai pris Aeon’s End malgré https://aeons-end-randomizer.de/ (que je recommande fortement) parce que c’est un jeu :

  • que je possède
  • pour lequel il existe pas mal de contenu (histoire de valider l’utilisabilité de la gestion de collection)
  • pour valider le principe d’importation et transformation de données existantes
1 « J'aime »
  1. C’est pour ça qu’il y aura une fonctionnalité « éditeur ». J’ai pas précisé mais ça inclue également un moyen d’exporter.
  2. Je vais être franc, ce sera pénible de gérer / saisir une grande quantité de données.
  3. Je réfléchis également à une « interface » simplifiée (type CSV / Google Sheet).
  4. Le format de base ce sont des fichiers textes au format YAML. Pas adapté au grand publique mais suffisamment « simple » pour les « geeks »
1 « J'aime »

Je rêve d’un truc comme ça pour mes whatmilles extensions Zombicide :smiley: Je suis de près :eyes:

Si jamais t’as une source où je peux trouver les différentes extensions et contenus associés, je rajouterai dans la liste des tâches :slight_smile:

En lisant le titre j’ai abord qu’il s’agit tout bêtement de tirer au sort un jeu de sa ludothèque pour décider de ce à quoi on voudrait jouer.

C’est plus élaboré que ça finalement mais je me dis que mon idée vaudrait peut-être le coup d’être intégrée aussi dans le bouzin… À moins que ce ne soit complément con, je ne sais pas trop, j’ai pas réfléchi.

Il me semble que ca existe déjà sur MyLudo

2 « J'aime »

Je te rassure, j’ai cru à la même chose. :grin:
Je crois me souvenir que myludo propose ce genre de « service ».

1 « J'aime »

J’ai fait un effort de franciser le message mais j’avoue que c’est pas vraiment top :sweat_smile:

Ceci étant dit la formulation pour ce que tu penses serait plutôt : « le tirage aléatoire de vos jeux ». Subtile :ok_hand:

Bref, si vous avez des suggestions :slight_smile: Ce sera toujours utile le jour où je me pencherai sur une version française de l’interface :sweat_smile:

1 « J'aime »

« La mise en place aléatoire pour tous vos jeux » ?

1 « J'aime »

J’ai quelques listes sous la main mais je n’ai trouvé aucune exhaustive. Je pourrai compléter à la main si tu veux, tu me feras signe quand tu te mettras dessus :slight_smile:

1 « J'aime »

« Petite » mise à jour (0.2.0) avec l’ajout des éléments de navigation :

  • Un menu dynamique
  • Une barre de navigation

Pas de gros changements dans les fonctionnalités. Je voulais garder un peu plus de contenu pour la prochaine mise à jour, cependant cela a eu plus d’impact que je pensais sur le code.

On est donc pas à l’abris de quelques couacs, mais n’hésitez pas à les remonter que je puisse les corriger au plus vite !

Lien : https://omniroll.netlify.app/

2 « J'aime »

Mise à jour 0.3.0

  • Mise en place aléatoire : Refonte du langage d’expression (utilisé pour les filtres et le nombre d’occurence d’un slot, …)
  • Mise en place aléatoire : Ajout du nombre d’occurence d’un slot
  • Mise en place aléatoire : Ajout des variables pour les mises en place aléatoires (utilisable dans les expressions avec v, var ou variables)
  • Jeu (Aeon’s End) : Variabilisation du nombre de joueurs (mages)
  • Jeu (Skytear Horde): Remplacement de la mise aléatoire spécifique pour le One-Shot avec portails par une variable portal

Lien : https://omniroll.netlify.app/

4 « J'aime »

Cela faisait un bon moment : quelques soucis techniques, pas mal de remaniement (déjà prévu mais repousser jusqu’à … nécessaire :sweat_smile:), pas mal d’activités perso, un peu beaucoup de flemme sur le temps restant et réception d’un nouveau jeu qui je l’espère sera ajouté prochainement :slight_smile:

Cependant, ayant atteint un premier niveau de fonctionnalité qui me convient j’envisage désormais une sortie « finale » (aka 1.0.0). Donc pas de nouvelles fonctionnalités pour les semaines à venir qui seront dédiées à :

  • Ajout d’une documentation : et insertion de liens depuis les différents éléments de l’application
  • Gestion des erreurs : en interne il y a pas mal de gestion des erreurs mais rien côté IHM pour les afficher. Donc sauf à être accro à la console de développement du navigateur, ça peut être frustrant.
  • Logo : Ce qui va me prendre le plus de temps je le sens :melting_face:

En attendant :

Mise à jour 0.4.0

  • Collection : Ajout d’une entrée dans le menu pour un accès plus direct
  • Référentiel : Ajout d’une interface de gestion et la possibilité de rajouter ses propres sources (moyennant un peu de connaissance technique, surtout sans documentation !)
  • Référentiel : Externalisation des données de jeux
2 « J'aime »