Portfolio
Ceci est une sélection limitée de mes projets récents qui sont aussi disponibles au public, ainsi que les langages principaux utilisés.
Certaines de mes technologies préférées sont Java, PHP et Python.
Sites et outils
Interordi.com est le site sur lequel vous vous trouvez présentement. Celui-ci sert d'index principal pour l'ensemble de mes projets disponibles en ligne. Le design a été conçu pour être propre et épuré, permettant aux utilisateurs de trouver facilement ce qu'ils recherchent, sans tomber dans le piège d'un site trop fade et sans contraste prisé par les adeptes du minimalisme extrême.
Le site du Creeper's Lab, disponible seulement en anglais, vise directement une communauté de joueurs. En conséquence, le design retenu a comme objectif d'être plus amusant et visuellement attirant avec des couleurs fortes. Une plus grande densité d'information est offerte pour permettre aux différents visiteurs d'avoir accès à leur contenu préféré le plus vite possible.
Les forums de discussion principaux pour Interordi forment une plateforme en évolution continue depuis 2005 et constamment améliorée par l'ajout de nouvelles fonctionnalités pour mieux servir la communauté. Un grand rafrachissement en 2020 a permis de renouveler et nettoyer l'interface, ajouter (enfin) un support mobile complet et de mieux présenter certaines sections précédemment ignorées.
Pourquoi: Un système sur mesure a été conçu afin de permettre une plus grande personnalisation et ouvrir la porte à des intégrations en profondeur. Les forums forment maintenant la colonne vertébrale de plusieurs fonctionnalités du réseau entier, incluant la gestion des comptes utilisateurs, le calcul des réalisations ("achievements") pour les joueurs de Minecraft, et autres.
Osmium a été créé pour permettre aux amateurs de jeux vidéos de suivre leur progression à un seul endroit, peu importe sur quelles plateformes ils sont actifs. Le suivi des succès, trophés et autres est afiché de façon claire et simple.
Pourquoi: Plusieurs joueurs aiment accumuler les succès et trophés dans leurs jeux. Plusieurs, comme moi, sont actifs sur plusieures plateformes. Osmium leur permet d'avoir un aperçu de toutes leurs informations au même endroit plutôt qu'en utilisant des interfaces disparates.
Pour les sites plus anciens, maintenant désuets:
Applications
Le service Pocket permet de sauvegarder des pages web pour les consulter plus tard, sur le même appareil ou ailleurs. BiteReads est une interface pour ce service qui présente les mêmes informations aux utilisateurs, dans un affichage plus compact. Toutes les fonctions de base sont incluses.
Pourquoi: L'interface normale de Pocket est fonctionnelle mais contient beaucoup d'espace vide, ce qui fait que seulement quelques pages sauvegardées peuvent être vues au même moment. BiteReads affiche cette même information d'une façon beaucoup plus compacte, permettant alors de voir plus de notes en parallèle.
Le Companion du Creeper's Lab a été conçu pour permettre un accès rapide et complémentaire au site web principal, comme une sorte d'assistant personnel. Une intégration aux services les plus utiles est offerte: cartes, actualités, liste de joueurs, recherches rapides, et plus encore.
Pourquoi: Les joueurs actifs dans le jeu veulent pouvoir consulter les dernières nouvelles ou les cartes rapidement; l'application leur permet de faire ceci. C'est aussi une façon innovative de rester en contact avec la communauté.
Modules Minecraft
Ce module vise à suivre autant de statistiques générées par les joueurs que possible. Ceci a plusieurs utilités, y compris suivre la progression sur différents objectifs de jeu. Beaucoup d'attention a été portée sur la lecture et l'enregistrement de données pour la rendre aussi efficace que possible, puisque de multiple événements peuvent se produire à chaque seconde. Ceci, multiplié par le nombre de joueurs habituellement en ligne, peut très facilement mener à une dégradation rapide de la performance du serveur si mal conçu.
Pourquoi: Le suivi interne de statistiques du jeu n'est pas fiable sur le long terme puisque des anciennes données sont supprimées si une propriété est renommée ou mise à jour. Différents modules faits par des tiers ont été utilités pendant un moment, mais ils ont tous été abandonnés par leurs auteurs originaux. À ce point, créer ma propre version semblait être la meilleure façon de s'assurer que je puisse suivre toutes les données nécessaires et assurer une stabilité à long terme.
Ce module additionnel permet de synchroniser les données de joueurs Minecraft entre plusieurs serveurs présents sur le même réseau. Cela leur permet de conserver leur inventaire et positions entre plusieurs mondes, même en effectuant des sauts répétés. La sauvegarde repose le plus possible sur la logique interne du jeu pour éviter les problèmes courants à d'autres solutions, précédemment testées et abandonnées.
Pourquoi: La solution précédemment utilisée enregistrait les valeurs nécessaires et les restauraient plus tard. Par contre, chaque nouvelle version du jeu qui introduisait de nouvelles fonctionnalités nécessitait une modification au programme pour ajouter ces informations. IOSync utilise l'approche inverse: en se fiant directement aux données du jeu, tout est copié automatiquement. Ce qui ne doit pas être inclus, comme la position des joueurs qui se doit d'être unique par monde, est explicitement retiré de l'ensemble. Ainsi, toute nouvelle donnée sera gérée sans entretien requis.
Purement cosmétique, le module IOTrails permet aux joueurs sélectionnés d'un serveur Minecraft d'avoir une cascade de particules les suivant lors de leurs déplacements. Cet ajout visuel est prisé par ceux cherchant à avoir un petit plus au jour le jeur. Le module a été conçu pour être léger en consommation de ressources, permettant d'assurer un jeu fluide et rapide à tous.
Pourquoi: Partiellement pour le plaisir, partiellement pour ajouter de nouvelles fonctionnalités plus facilement! Ceci a remplacé un ancien module et a ajouté la capacité de partager ses informations entre plusieurs mondes, rendant le tout plus pratique pour les joueurs.
Pour la liste complète de modules disponibles:
Autres
Ce serveur de chat permet de faire communiquer Discord, IRC et des serveurs de jeux Minecraft de façon transparente. Le contenu écrit par les joueurs est transmis sur tous les autres canaux, permettant aux gens de rester en contact peu importe où ils sont actifs. Chacun des points de communication peut être actif, éteint ou redémarré sans conséquence pour les autres.
Des fonctionnalités plus avancées sont aussi incluses, telles que la possibilité de transmettre des commandes aux serveurs de jeux depuis Discord ou rediriger le contenu d'un serveur précis dans un canal séparé.
Le serveur est accompagné d'un wrapper pour chaque serveur de jeu, qui capture le chat émit par les joueurs et l'envoie au serveur de chat.
Pourquoi: Ce système a été mis en place pour briser la dépendence à des services externes, tels Discord ou IRC, qui ne sont pas toujours disponibles. Lorsque ceux-ci étaient en panne, tout le système de chat s'effondrait. Le service local permet donc d'offrir une meilleure fiabilité.
J'ai aussi créé plusieurs autres modules qui ne sont pas listés ici. Leur code source n'est pas nécessairement disponible pour conserver des fonctionnalités unique à nos serveurs, ou parce que le code serait inutile à d'autres vu son intégration profonde à d'autres systèmes, tel IOBoard décrit plus haut.
D'autres projets de plus petite échelle, ainsi que des corrections et améliorations à des projets généralement abandonnées par leurs auteurs originaux, sont aussi disponibles sur ma page GitHub.