Au début de l’année 2006, j’ai développé avec trois copains un framework java open source pour la création de jeux de cartes : Cero Project. Il s’agit d’un logiciel proposant différentes interfaces pour faciliter le développement de divers plugins : jeux, intelligences artificielles, interfaces (graphiques, ligne de commande, IRC, …), règles du jeu, traductions, client pour la mise à jour, …
Le noyau Cero Core est très modulaire. De plus, une communauté de développeurs, de designers, de rédacteurs, de traducteurs, … risquait de se créer autour de ce projet open source. Le noyau permet de créer aisément des plugins. On pouvait donc s’attendre à l’apparition d’un grand nombre d’extensions. Un problème s’est alors posé : comment les mettre à disposition de manière simple et facile d’accès ?
Les premières solutions auxquelles nous avons pensé étaient d’utiliser un serveur de téléchargement avec éventuellement une interface web pour le gérer ou un serveur FTP. Nous avons rapidement oublié cette première solution car il n’était pas facile de l’adapter à notre problème (pas de gestion de dépendances possible par exemple). Nous nous sommes alors penchés sur des solutions plus proches de ce qu’il nous fallait, les systèmes de dépôt linux.Nous avons donc développé un site web en PHP basé sur le framework Code Igniter et AJAX (avec le classique couple Prototype & Scriptaculous) permettant la gestion des plugins pour Cero Project.
Je vous laisse découvrir plus en détails notre travail en lisant la présentation et le rapport que nous avons rédigés :