BFW Systems (2013 - ...)
Le framework est basé sur 3 principes :
- Légèreté : Ne pas devenir comme l'était ZF1 avec plusieurs Mo de code
- Flexibilité : Laisser le choix des libs utilisé pour le routage, la vue, etc
- Performances : Ne pas nécessiter d'avoir un ou plusieurs systèmes de cache pour pouvoir générer une page basique
Aujourd'hui la dernière version en date est la v3.0.0-rc11 et continue d'évoluer régulièrement via les retours que j'obtiens.
Il s'agit de mon plus gros projet personnel à ce jour.
Vous pouvez suivre les projets directement sur la page organisation github de BFW Systems.
Addons pour The Elder Scrolls Online (2019 - ...)
Étant joueur de The Elder Scrolls Online,
et le jeu acceptant les addons, je n'ai pas pu m'empêcher d'en créer 😄.
Vous pouvez retrouver mes addons sur ma page esoui.
Les addons sont développés en lua.
LibWorldEvents
Depuis la sortie du DLC Elsweyr (printemps 2019) le jeu contient un nouveau système pour les évènements de zone dans l'api exploitable par les addons appelés WorldEvent.
Sur les maps d'Elsweyr nord et sud, ce système est utilisé pour les évènements de zone où des dragons apparaissent.
Sur les maps du Bordeciel Occidante, Griffenoir et La crevasse, ce système est utilisé pour les évènements de zone où des tempêtes apparaissent.
Cette librairie exploite l'api fourni afin de donner toutes les informations à propos des dragons et tempêtes présents sur la zone.
DragonTracker
Les statuts des 3 dragons d'Elsweyr Nord en temps réel à différents moments.
Cet addon utilise la librairie LibWorldEvents afin d'afficher en jeu le suivi du statut de chaque dragon de la zone où est le joueur.
Si le joueur est sur une zone sans évènements de dragon (pas à Elsweyr), l'addon n'affiche rien.
DragonNextLocation
L'icône en tête de dragon est l'emplacement actuel dans le ciel du dragon (affiché par le jeu),
et le même avec une flèche vers le bas est l'icône ajoutée par l'addon indiquant où il va se poser.
Cet addon utilise aussi la librairie LibWorldEvents afin de récupérer l'emplacement où le dragon (qui vol lors de son apparition sur la map) va se poser.
Depuis la mise à jour DragonHold (ajoutant la map d'Elsweyr Sud), les dragons peuvent se réenvoler s'ils ne sont pas en combat;
l'addon permet aussi dans ce cas d'afficher où le dragon va atterrir.
Autre dépendance, LibMapPins qui permet d'ajouter sur la carte un icône (celui de l'emplacement de l'atterrissage en l'occurrence).
Survey Zone List
Exemple en jeu, l'interface présente la liste des zones ayant des repérages, le nombre de node récolté sur le spot, et le status du spot>
Cet addon permet de suivre en temps réel via une interface "tête-haute" la liste de toutes les zones où sont les repérages et les cartes aux trésors dans le sac du joueur.
Il permet aussi pendant un repérage de connaître l'état du spot, si les 6 nodes ont bien été récoltés, s'il on a fini à ce spot ou si on doit revenir parce qu'on avait plusieurs fois le même repérages, etc.
Writ Style Price
L'interface présentant la liste de toutes les commandes de maître pour lesquelles le style est inconnu, avec le prix du style>
Cet addon permet de lister toutes les commandes de maîtres présente dans le sac, la banque, et les coffres de maison pour lesquelles le style demandé n'est pas connu sur le compte.
Avec pour chaque page de style, le prix moyen actuel.
Annotations Reader (2019 - ...)
Actuellement la plupart des projets utilisent Doctrine Annotations, cependant il a l'inconvénient de faire de la lecture disque à chaque accès à une classe. Lire un ou plusieurs fichiers du disque à chaque appel étant mauvais pour les performances, et ce fonctionnement étant trop ancré dans la lib, il n'était pas possible de simplement la forker.
J'ai vérifié les différentes autres libs existantes pour lire les annotations, mais aucune ne me convenait, j'ai donc créé la mienne.
Plus d'informations peuvent être trouvées sur sa page github.
Dependency Tree (2016 - ...)
À l'origine j'ai créé ce projet pour le système de chargement des modules de BFW.
Le principe de fonctionnement peut-être retrouvé dans le README sur la page github du projet.
Neverwinter Enchantments Prices (2018)
Les enchantements sont très importants puisqu'ils permettent d'avoir des effets supplémentaires non négligeables lors des combats.
Cependant, du fait de leurs aspects importants, les prix pouvaient parfois être exorbitants. C'est pourquoi un suivi des coûts était nécessaire afin d'éviter de se faire arnaquer, mais aussi pour pouvoir acheter au meilleur prix.
Un autre aspect important des enchantements, leurs niveaux. Plus il était élevé, et plus son effet augmente. Il est donc nécessaire pour avoir un bon perso d'avoir un niveau minimum pour ses enchantements. Mais le coût des composants nécessaire à l'évolution de l'enchantement est lui aussi exorbitant. Il est donc nécessaire de pouvoir faire un suivi de leurs coûts (à eux aussi), mais aussi de prévoir le nombre nécessaire.
Ainsi le site permet aussi un comparatif pour chaque niveau entre le prix en l'achetant directement au niveau, ou en le faisant évoluer depuis le niveau précédent. Il y a parfois de bonnes surprises...
Le code est disponible sur la page github du projet.
Twitzer Timeline (2017 - 2019)
Avec cette interface, je n'ai que les tweets de ma timeline, je n'ai pas les "au cas où vous auriez manqué", les "xxx à aimé", etc.
L'interface est protégée afin que seul son utilisateur ait accès à sa timeline.
L'API étant limité à 200 tweets par appel, et puisque je ne ne voulais pas une sorte de système de pagination, j'ai ajouté par la suite un système via une tâche cron permettant de récupérer régulièrement les tweets afin les lire plus tard.
Bookmarks (2017)
NMEA Parser (2017)
J'avais fait ce lecteur pour les besoins d'un projet qui a été abandonné depuis.
Plus d'informations peuvent être trouvées sur sa page github.
Runes Of Magic HV (2013 - 2014)
Chaque joueur peut gérer ses mises en vente pour tous ses personnages, voir un historique des ventes passées et de générer des graphiques de ventes.
Pour les groupes de joueurs, il leur est possible de voir les ventes de chaque personnage du groupe afin de plus simplement s'aligner entre eux.
Tous les items présents en jeu sont aussi présents dans l'application via un import. L'import fonctionne via un extract de fichier du jeu, gzipé et mis sur google drive, puis importé dans l'application afin d'insérer les nouveaux items.
Le code est disponible sur la page github du projet.