Biglower a écrit : ↑lun. janv. 08, 2018 11:42 am
Prometteur sur la flexibilité de ton bébé. Bravo déjà pour tout ce travail.
Merci ! Ce n'est que le début
de mes maux de tête.
J'en profite, pour ceux que ça intéresse, pour dire que j'ai trouvé totalement par hasard en me baladant sur reddit un site qui est dédié également aux worldbuilders.
Here's the link: https://www.worldanvil.com/ N'hésitez pas à aller voir !
Il est très complet, et plutôt agréable d'utilisation même. Cependant... Cela m'est utile pour comparer un peu ce que je souhaite intégrer, et ce qui
manque de mon point de vue, et qui fait que je ne peux pas mettre mon univers dessus.
- Redondance d'informations (lorsque je crée un personnage, visiblement le titre de "l'article" correspond à son nom, ou qu'en sais-je...),
- Fiches pré-conçues (pas de possibilité de rajouter un diagramme en format radar en fonction des caractéristiques intrinsèques d'un individu),
- Format de timeline prédéfini, pas de calendrier personnalisé (les mentions personnalisées sont statiques),
- Références croisées limitées (je dois taper le nom de famille à la main. Et si j'ai 100 persos dans cette famille et qu'un jour j'en change le nom, je dois changer les 100 fiches ! ),
- Ils ont un système de référence par opérateur @ (comme ce que je compte faire). Cependant, il ne semble pas effectif partout, et dans l'éditeur les "liens" insérés ne sont pas forcément clairs,
- Trop de valeurs "tapées" : les lois physiques ne sont que rédigées ; ça pourrait convenir pour un RP sur table et encore : s'il y a besoin d'un calculateur pour des constantes précises ? En l'occurrence j'en ai et j'ai besoin parfois d'effectuer des calculs avec elles,
- Catégories pré-conçues et parfois redondantes (un Véhicule est pour moi un Objet, ou un héritier du type Objet, mais ça c'est ma vue algorithmique),
- Curieusement, la vue d'ensemble de tous les articles n'est pas claire,
- Pas d'éditeur de template,
- La composition des objets est bien trouvée, mais encore une fois le manque de liens rend la chose muy painful en cas de modifications. Les fiches elles-mêmes sont curieusement pensées : on peut relier à différentes autres fiches à certains endroits, mais "l'inventeur" d'une technologie est statique,
- Pas de "vue globale" du projet, ni même des relations entre les différents composants. Plus globalement, il semble souffrir de quelques défauts côté UX,
- La taille des individus se met en mètres ou en pieds. Arg. Oui, pour moi c'est embêtant : mes personnages, par tradition, n'ont absolument pas la même définition du mètre. Cependant, j'aimerais avoir un système qui me convertisse automatiquement en mètre lorsque j'en ai besoin, également...
- Distinction floue entre les traditions liées aux ethnies, et aux religions,
- Curieuse distinction... Une case à cocher pour qualifier une "espèce" d'intelligente ou "sapiente" ? Uh-oh... Mélange entre les différents ordres (on définit un virus au même endroit qu'un cheval à deux têtes). Dans la même veine, pas de différenciation claire entre un animal, une archée et une plante,
- Vue publique du projet à moins de faire partie du groupe Patreon de la "guilde",
- Après, en tant que professionnel, je n'apprécierais pas que soient stockées sur un serveur des données potentiellement sensibles sans un minimum de garanties en termes de sauvegarde ou sécurité ; l'application est material-designée, certes, mais manque de cette "confiance" qu'on pourrait lui donner,
- Et je peux pas travailler offline.
J'oublie certainement des choses, et je pourrais également passer du temps pour dire ce qui est bien (communauté, travail en équipe, partage facile et rapide, les fiches sont complètes malgré tout et peuvent convenir à pas mal de besoins, interfaces agréables en terme de vue et d'édition, système de notes, chargement de cartes et positionnement de points dessus (comme Articy)...). Globalement, il n'est pas assez flexible pour moi : références statiques, aucune mathématique, aucune relation et gestion du temps trop... statique elle aussi. Pour relativiser, l'application semble assez récente et encore en bêta.
Je pense qu'il s'agit là d'une très bonne alternative à Articy pour ceux ne nécessitant pas la gestion des flux.
Et tous les points soulevés, c'est autant d'engagements pour moi dans le logiciel avec lequel je vous rabâche les oreilles
EDIT : Je relativise moi aussi à propos du manque de flexibilité, ils ont eux aussi opté pour les relations entre articles à l'aide de l'opérateur @. Il n'empêche qu'un lourd travail m'attend pour présenter une solution avec une réelle valeur ajoutée.
D'ailleurs à l'heure actuelle je me demande toujours si un portage via appli web pouvant fonctionner offline pourrait ne pas être sympa.
Mais d'un autre côté, les technos web sont globalement
lentes (même si Node.JS est ultra rapide sous V8...). Si des gens ont des idées par rapport à ça...
Ce qui est ironique c'est que les applications réalisées sous Electron (donc Node.JS) sont incroyablement lentes en comparaison. Je pense notamment à Atom qui crashe occasionnellement. C'est en partie ce qui avait orienté mon choix, même si en termes de performances on pourrait penser à Qt/QML + C++, enfin... Le problème c'est que coder ça en solo, c'est horrible. Et PyPy n'est pas compatible avec PyQt. Erg (PyPy est un interpréteur JIT pour Python, à l'instar de V8 pour JS).
Là déjà je dispose d'une belle petite base en Python, mais le choix de la techno, et du portable est crucial est incroyablement compliqué.
Sinon, niveau avancées, je suis en train de travailler (en attendant de trouver une réponse à mes questions philosophique d'interface utilisateur) sur le convertisseur d'unités. Le principe est simple :
Imaginez que vous souhaitiez intégrer une unité d'énergie, le
joule. Cette unité, en grandeurs fondamentales, s'exprime en M^1 L^2 T^-2. Le système vous demande alors de choisir deux (trois) choses pour commencer :
- Le nom de l'unité,
- Le symbole,
- Éventuellement la description
Il va ensuite vous demander d'ajouter des
règles de conversion. Ces règles peuvent être
statiques comme l'exemple actuel, ou
dynamiques (ex : les taux de change).
- Tout d'abord, le système vous demande d'appliquer les puissances requises pour les grandeurs fondamentales. Pour une énergie, c'est simple :
"m" correspond à une Masse (symbole M), et "v^2" à une vitesse, donc à une Length^2 / Time^2. D'où : [E] = M^1 L^2 T^-2
Pour ceux qui souhaiteraient creuser, allez voir le théorème de Vaschy-Buckingham (pour faire court : on peut ramener toute la physique à sept grandeurs fondamentales). Bref ! Dans la plupart des cas, si vous souhaitez ajouter uniquement une masse, il n'y aura qu'à mettre le M à 1 (et les autres à 0). Ce sera expliqué de toute façon.
- Ensuite, il vous faut ajouter une règle de conversion. Prenons la règle suivante :
Comment va se comporter le système ? Il va considérer que les règles associées au joule concernent une conversion vers le joule. Il va ensuite regarder les autres unités présentes : en l'occurrence, il y a ici l'électron-volt. Si l'électron-volt n'existe pas, il va alors le créer (sous forme d'une unité sans nom mais avec un symbole), homogène au joule, et ajoutera même automatiquement la règle suivante :
(principe de linéarité ; pour ceux que ça intéresse, je m'inspire de la notation polonaise inverse). S'il y a plus de symboles, ça marche également. Le système gère également tout seul les puissances de 10, et les préfixes associés. Ainsi, si vous marquez MJ, il comprendra tout seul mégajoule (Wouah!), soit
Il m'est venu le problème des autres grandeurs : en effet, pour simplifier, je peux dire que l'euro est une unité monétaire. Tout comme le grade une unité d'angle. Ce sont ce que j'appelle les
grandeurs subsidiaires. Ainsi, tous les champs de texte sans aucune précision sont de grandeur subsidiaire
Texte, et comme unité par exemple
Famille,
Prénom, etc.
Cela permet d'avoir un système ultra extensible en fonction des besoins. Bien entendu, au niveau des conversions, le système gère les non linéarités (conversion degré celsius -> degré
fahreneight,
fahrenight,
fahreineit, fahrenheit, sans avoir besoin de revenir aux kelvin pour passer par le rankine) et également les conversions avec plusieurs unités. Un petit mot là-dessus :
Posons l'unité
lux comme unité d'éclairement lumineux, de symbole
lx. Il s'agit du flux lumineux par unité de surface. Sans rentrer dans les détails, il s'agit d'un flux lumineux divisé par une surface. Un flux lumineux, c'est une intensité lumineuse par un angle solide. On distingue les sept grandeurs fondamentales :
M L T I N Theta J
Intensité lumineuse : J^1 (en
candela, ou
cd),
Angle solide : ben... Un angle n'est pas une grandeur fondamentale. Mais pour pyroxenite, on va considérer
angle^1 (en stéradian ; en fait l'angle en question c'est un cône, un angle solide),
Surface : L^2 (en m² par exemple).
Ainsi, pour Pyrox, les dimensions du lux sont :
L^-2 J^1 angle^1
Et donc :
Ainsi, le système ne saura pas où placer les dimensions si vous n'avez rien précisé. Tout ce qu'il fera, c'est renseigner les règles de conversion. Il pourra par exemple deviner tout seul que pour récup un angle solide, il peut faire :
Il fera également des vérifications d'homogénéité. Ainsi, il vous dira si ça foire (mais il vous dira pas où, c'est à vous de regarder
). Même si je doute que pour la grande majorité des cas, vous n'irez pas chercher des formules alambiquées ! Et puis tout sera implémenté par défaut à ce niveau.
(et oui on peut préciser si une grandeur est intensive ou extensive, mais je vais pas détailler)
A noter que les conversions ne peuvent s'effectuer que pour les grandeurs habiletés à contenir des
chiffres, donc tout ce qui n'est pas de grandeur
Texte.
Je suis consciente que décrit comme ça, ça a l'air un peu compliqué (surtout pour les allergiques aux maths/physique
). C'est en cours de développement dans un coin, vous verrez le système en action, je vous assure que ça vous offrira des possibilités nouvelles pour vos univers.
... Halte là ! Je vois vos yeux écarquillés à vous demander à quoi tout cela peut bien servir
concrètement. Il est 4h du matin, et je vais vous donner un exemple qui vient de me traverser l'esprit.
C'est un exemple, une illustration et ne dépeint aucune réalité.
Supposons que vous souhaitiez définir une grandeur fondamentale :
quantité de magie.
On pourra poser que l'énergie magique, notée
joujoule ou
jj (ayez pitié
) est cette
quantité fois une vitesse. Soit :
L'intérêt ? Définir par exemple une quantité d'énergie critique pour laquelle un individu sera sensible. Et faire ça pour différents types d'individus, générer des graphs, faire de la stat...
Ainsi, cette énergie sera influencée par la vitesse du flux dans le milieu (comme la lumière, via le principe d'indice optique). Et pour ceux qui se poseraient la question, le (1/2) vient de la définition de l'énergie cinétique, mais après tout c'est votre uni, vous faites ce que vous voulez.
).
Bref ! Mon exemple n'est pas rigoureux du tout.
EDIT 2 : Bon, ça commence à faire un peu devblog mon post, là.
Mais je vais rester sur PyQt. Suffisait de dormir et de lire un peu.
https://fman.io/blog/picking-technologi ... p-in-2016/