Aujourd'hui est vendredi, il est donc temps de se livrer à nos drôles de passions étranges. J'espère qu'il y a ici un public qui, avec l'expression «jeux de rôle», représente quelque chose de différent d'une fille avec un fouet en latex ... Si vous pensiez à elle exactement, alors vous ne serez probablement pas intéressé à lire plus loin.
En fait, nous en parlons.
Un tir du film de la délicieuse série des Gamers.
Continuez à lire? Super! Vous jouez sûrement DnD, WoD, warhammer ou un autre bon jeu depuis des années. Depuis de nombreuses années maintenant, je joue sur différents paramètres du monde des ténèbres - cependant, le poste portera sur des chartes universelles et non sur un système spécifique.
Énoncé du problème
Si vous jouez depuis longtemps, vous savez que les morceaux de papier ont tendance à être perdus, détruits, parfois il est très difficile d'évoquer les événements récents (nouvelles statistiques, expérience, etc.), et c'est très décevant de le perdre. Moi aussi. L'idée d'un charmeur électronique vient immédiatement à l'esprit. Bien sûr, certains d'entre eux sont sur Internet, mais je n'ai été satisfait d'aucune des propositions. Pourquoi? Estimons les besoins.
- Il doit être édité en ligne. Parce que qu'est-ce qui est différent?
- Il devrait être possible de partager le tableau avec les maîtres des autres parties intéressées.
- Il doit être beau. Par exemple, les fiches de personnage de M. Gone utilisées par tout le monde pour le monde des ténèbres ressemblent à ceci (soigneusement, le lien est lourd en pdf). L'électronique ne devrait pas être pire.
- Il doit être correctement imprimé. La version électronique est bonne, mais rien ne peut remplacer une feuille de lampe chaude sur une table.
- Il devrait avoir un concept de révisions. La révision devrait avoir des commentaires, la possibilité de comparer et de restaurer.
- Désireux de laisser des commentaires.
- Un algorithme auxiliaire pour générer un nouveau caractère est souhaitable. Dans les systèmes generezhki, le diable se cassera généralement la jambe, et vérifier 10 fois si vous avez correctement réparti les points est très ennuyeux.
- Il devrait être possible à quiconque de faire un charnik arbitraire. Eh bien, ou dès le début devrait être un ensemble complet de chartes nécessaires.
Malheureusement, rien ne satisfait l'ensemble complet de ces exigences (même sans tenir compte de celles «souhaitables»). Par conséquent, il y a deux ans, j'ai décidé de créer rapidement mon propre système de travail avec les chartes. Hmm, vite ... Comme j'avais tort.
Solution
En général, combien de temps, brièvement - j'ai fait un tel système. Il y a deux ans, c'était en PHP + MySQL, pour afficher toutes sortes de bontés astucieuses utilisées JQuery + Bootstrap. Immédiatement, je vous demande de ne pas jeter de tomates pourries - je suis un back-end, pas un front-end, alors j'ai fait ce qui m'est arrivé. Mais ce qui a été fait était un gros plus - cela fonctionne et met en œuvre toute ma liste d'envies:
- La possibilité d'ajouter de belles charns. Les charniks eux-mêmes sont des entités autonomes écrites uniquement en HTML + CSS + JS.
- Les charniks peuvent être imprimés, bien qu'ils aient dû être très pervertis à certains endroits;
- Il y a une autorisation via Google et la possibilité de donner accès à des chartes;
- Il existe des révisions avec la possibilité de revenir en arrière et d' afficher les modifications ;
- Il y a la possibilité de commenter;
- A fière allure depuis une tablette et même un téléphone;
À titre d'exemple -
voilà à quoi ressemble le charmeur d'un mortel , et comme
ça - un charmeur de vampire avec une stylisation comme vampire le requiem.
Il s'est avéré être incroyablement pratique, cependant, la création d'un beau charmeur de temps prend une mesure incommensurable. Par conséquent, j'ai jeté une canne à pêche dans quelques communautés pour l'achèvement conjoint ... Mais il n'y avait pas de passionnés. Je me suis donc arrêté sur ces deux chartes.
Alors pourquoi j'écris ce billet deux ans plus tard? J'espère toujours l'aide de la communauté des joueurs, et une bonne raison est apparue. L'autre jour, j'ai décidé de corriger un bug mineur dans le graphique pour les mortels ... Et je n'ai repris mes esprits que lorsque j'ai fait la construction du graphique en utilisant Node.JS, gulp, babel et browserify. Hélas, je ne suis pas encore en mesure de supprimer complètement JQuery, car je ne possède pas toutes sortes de bonnes choses comme Angular, React, Vue, etc. - et il recherchera et terminera de nouveaux composants pour une nouvelle pile pendant un certain temps. Cependant, un début a été fait - vous pouvez écrire dans ES6, JQuery Deferreds a été remplacé par bluebird Promises, les requêtes HTTP au lieu de JQuery sont implémentées à l'aide de request-promise, certaines des dépendances sont désormais extraites de npm, etc. Je n'ai presque pas fait de refactoring de code - la tâche consistait simplement à obtenir une version d'il y a deux ans - donc il y a une certaine horreur. Mais je le répète - ce code a un gros plus - ça marche!
Plans
Théoriquement, il existe plusieurs plans:
- Faites une simulation pour les requêtes HTTP du charnik afin de pouvoir tester complètement le charnik sans interagir avec le service;
- Rampez sur une pile frontale adéquate;
- Faites de plus belles bonnes chartes;
- Réécrivez le backend du service lui-même sur Node.JS.
En pratique, le temps est incroyablement court et, dans un splendide isolement, je ne terminerai que tous les deux ans des choses qui me sont utiles à la même fréquence.
Je voudrais écrire que vous pouvez faire toutes sortes de bonnes choses pour les dons - mais hélas, cela prend trop de temps et cela revient très cher. J'espère donc que pour l'enthousiasme des développeurs. Si vous êtes intéressé, je serai très heureux de participer. Charniki eux-mêmes sont en open source sur github, la licence MIT. Si vous voulez les utiliser pour autre chose - je ne suis que pour ça - mais dites-moi, c'est curieux!
Les références
- Le système
- Identique à une application Android ;
- L'auteur du dessin que j'ai utilisé;
- Mortel de Charnik - nouvelle altération;
- Un beau charmeur de vampire , sans Node.JS.