Document fondateur

De OpenESubWiki.

Sommaire

Introduction

Ce document ?

Ce document est le document fondateur du projet openESub. Il fixe les pricipaux buts du projet ainsi que son organisation générale. Il fixe également quelques décisions concernant certains choix techniques, les licences...

Qu'est ce qu'openESub ?

openESub est un projet qui vise (dans un premier temps) à écrire un clone 100% libre, gratuit et ouvert (voir plus loin pour les licences retenues) du jeu par email E-Sub 2 visible à l'adresse : http://www.esub2.com

Malgré l'existence d'E-Sub 2, le projet openESub repart théoriquement de zéro, ceci afin que le projet soit maîtrisé de manière homogène par tous les membres du projet. Cela dit, d'un point de vue pratique, certains éléments d'E-Sub 2 seront directement réutilisés (design, règles, éléments d'infographie...).

Une fois ce clone réalisé, consolidé et rigoureusement testé, l'équipe du projet veillera à l'évolution et à l'amélioration du jeu tout en s'efforçant de rester dans l'esprit original.

Ce projet sera mené par plusieurs participants, le tout dans une transparence totale vis-à-vis de l'intérieur (équipe du projet) et de l'extérieur (Internet).

Pourquoi un nouveau projet alors qu'il existe déjà E-Sub 2

E-Sub 2 a été conçu par un développeur quasi-unique, malgré la participation active de certaines personnes. Ainsi, le code source se prête mal à une ouverture complète dans la mesure où il serait très difficile à une personne extérieure d'en maîtriser rapidement le fonctionnement. La ré-écriture depuis zéro du projet dans un cadre parfaitement défini et structuré permettra à plusieurs développeurs de maîtriser l'ensemble du projet et donc d'en assurer la maintenance par exemple.

E-Sub 2 a été conçu au départ avec un cahier des charges bien trop ambitieux. La révision à la baisse et en cours de développement de ce cahier des charges a conduit à de grosses maladresses dans la conception même du programme principal. Ces maladresses sont difficiles à corriger sans une ré-écriture complète.

Participer à un projet du type openESub depuis le tout début est quelque chose de très excitant. Cela permettra de fidéliser des personnes qui participaient déjà activement à E-Sub 2 mais plus à titre ponctuel. Ces personnes seront alors directement impliquées dans la création et la genèse du projet, ce qui est une expérience très enrichissante et formatrice (cela peut même être un plus pour un CV par exemple).

Quelques normalisations pour commencer

Contrairement à son prédecesseur (projet E-Sub 2), openESub s'écrit openESub (veillez à respecter les distinctions minuscules/majuscules dans l'écriture du mot). Il n'y a donc ni tiret, ni espace. Le terme openESub se prononce à l'anglaise : open i seub.

openESub est un jeu asynchrone multijoueurs sur Internet. Il ne se joue pas directement par l'intermédiaire d'emails mais plutôt au travers de formulaires web. Cela dit, on peut considérer qu'openESub est un jeu par email car il en reprend grandement le principe. En outre cet abus de langage est largement répandu. Notez que dans le cadre du projet openESub, on écrira email sans tiret ni espace.

Les buts du projet

Rappels

Comme évoqué dans l'introduction, le but du projet openESub est d'écrire un clone d'E-Sub 2 dans une optique totalement logiciel libre. Une fois cet objectif atteint, des évolutions et améliorations majeures pourront être lancées. Parallèlement, une version temps réel d'openESub sera développée. Cette version partagera le meme moteur que la version asynchrone.

L'aspect logiciel libre

L'aspect logiciel libre est très important. Les licences retenues pour l'ensemble du projet sont les suivantes :

  • La licence GPL (General Public License, traduction française non officielle) pour la majorité des codes sources. Cette licence permet une libre distribution et utilisation des codes sources. Chacun peut donc librement récupérer le code source d'openESub et en faire ce qu'il souhaite (le vendre, monter un site concurrent...). La seule restriction est que, si le code original est modifié, le résultat doit également suivre la licence GPL (donc être librement accessible...). De même si le code d'openESub est inclu dans un projet plus vaste.
  • La licence FDL (Free Documentation License) pour les documentations et autres FAQs. Il s'agit en fait d'une transposition de la licence précédente aux documentations. Les libertés garanties sont à peu près les mêmes.
  • La licence Art Libre pour toutes les productions infographiques du projet (images, animations...). Une version française est disponible.

Le projet openESub sera donc un projet totalement libre, il n'appartiendra à personne en particulier et chacun sera donc libre de quitter le projet et de réutiliser à titre personnel ou non toutes les productions du projet. La seule restriction est de conserver les mêmes licences. Et cela garantit que le projet restera libre.

Ce mode de pensée et d'ouverture peut sembler parfaitement stupide à des gens qui ne connaissent pas le monde des logiciels libres et la communauté openSource. Le fait qu'un inconnu puisse venir librement récupérer toutes les productions du projet pour les réutiliser sur un site "concurrent" peut sembler un danger bien trop grand. Mais en fait, si cet inconnu apporte des améliorations au projet, il sera obligé de les rendre librement accessibles sous les termes des licences évoquées plus haut. Ainsi, le projet openESub pourra (s'il le souhaite) intégrer à son tour ces améliorations au projet... Ainsi, la liberté du projet est garantie et cela crée un dynamisme qui ne peut qu'aller dans le sens d'une amélioration globale.

Ce type de fonctionnement est parfaitement rôdé dans la mesure où la licence GPL est, par exemple, la licence qui protège le noyau Linux. Aucune société n'a pu se l'approprier et la liberté d'évolution a généré un dynamisme incroyable inaccessible dans le cadre d'un développement fermé.

Enfin, d'un point de vue légal, la licence GPL est parfaitement valable puisqu'aucune société qui avait violé la GPL (en s'appropriant des codes sources écrits par la communauté du logiciel libre) n'a pu avoir gain de cause devant les tribunaux. La Free Software Foundation veille (avec une équipe d'avocats spécialisés) au bon respect de cette licence. C'est pour cela que toutes les mentions de copyright du projet openESub seront attribuées à la Free Software Foundation.

Tous les codes sources issus du projet openESub devront donc commencer par :

/* This file is part of the openESub projet.
*
* (c) 2002, Free Software Foundation
*
* openESub is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* openESub is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with openESub; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/


Les bases organisationnelles

Les erreurs du passé

Malgré une bonne volonté certaine, les contributions autour d'E-Sub 2 sont largement désordonnées si bien que la plupart des idées émises n'arrivent pas à terme faute d'une organisation et d'un suivi sans faille. Cela aboutit finalement à un terrible gâchis d'énergie qu'il convient de réduire au minimum.

Les solutions

Les solutions passent par une organisation et un suivi efficaces. Donc, lorsqu'une action sera clairement identifiée, la première chose à faire sera d'identifier un responsable qui devra veiller à son bon déroulement (affectation, suivi, relances...).

Les différentes actions à entreprendre seront débatues publiquement (sur une mailing list ou sur un chat IRC...). En cas de désaccord majeur, un des responsables historiques du projet tranchera la question.

Les bases techniques du projet

La plateforme

E-Sub 2 a été au départ conçu sous Linux pour un hébergement Linux/Apache. Suite à une certaine volonté d'ouverture, dans un premier temps, un des buts du projet était de fournir une version Windows/Apache pleinement fonctionnelle de l'ensemble du projet en plus de la version Linux classique.

Cependant, diverses difficultés apparaissant, on se limitera à la fourniture d'une version temps réel (serveur et client) fonctionnelle sous Windows. Pour le site (donc pour le serveur de la version asynchrone à la E-Sub 2), Linux sera probabement un prérequis [1].

Le langage et la base de données

Pour mener un tel projet, plusieurs langages sont possibles. Le PHP (dans sa version 4) est un langage libre disponible gratuitement sur la plupart des plateformes. Son utilisation s'est généralisée sur le web. Il offre toutes les fonctions nécessaires à un projet tel qu'openESub. On utilisera donc exclusivement le PHP4 pour le site dynamique du jeu (à l'exception de quelques scripts annexes). Le coeur d'openESub (le moteur) sera quant à lui écrit en Python 2.2 (langage libre plus adapté que le PHP pour une utilisation non web). Concernant la base de données, le choix s'est porté dans un premier temps sur mySQL pour sa simplicité, sa licence libre et son efficacité dans le cas d'une utilisation avec PHP. Cependant, une migration vers postgreSQL s'est faite en cours de projet dans la mesure où cette dernière (toujours libre et gratuite) apporte un certain nombre de fonctionnalités très utiles dans le cadre de ce développement (triggers, procédures stockées en python, contraintes...).

On obtient donc vers un projet PHP/Python/PostgreSQL.

Le but du projet n'étant pas de réinventer la roue, le projet openESub va s'appuyer sur des projets existants robustes et bien maintenus à savoir :

  • SMARTY, pour la gestion des templates ;
  • SPIP, pour la gestion de la gazette et de ce site ;
  • phpBB2, pour la gestion des forums ;
  • Flyspray, pour la gestion des bugs ;
  • La bibliothèque PEAR, pour la gestion du cache (Cache_Lite), la couche d'accès à la base de données (DB), la pagination...

Les normes de programmation retenues pour le PHP sont les normes de la librairie PEAR visibles (en français). L'ensemble du code PHP devra suivre ces normes.

Concernant le HTML et le javascript

Afin de garantir une compatibilité maximale avec la plupart des navigateurs internet des différentes plateformes, on réduira au maximum l'utilisation du Javascript. On veillera également à produire du XHTML strict conforme aux normes du W3C. Pour la mise en page, on utilisera au mieux les feuilles de style externe (CSS) qui devront elles aussi être conformes vis à vis des normes du W3C. Le résultat devra être impeccable sur les navigateurs Internet Explorer (version supérieure ou égale à 5), Netscape (version supérieure ou égale à 6), Mozilla (version supérieure ou égale à 1)... On ne se préoccupe plus du rendu sur Netscape 4.7 ou sur Internet Explorer 4 (jugés trop anciens). Enfin, le site ne nécessitera pas une résolution particulière et devra donc utiliser exclusivement des pourcentages pour définir la taille des différents éléments.

Le code HTML sera (en très grande partie) séparé du code PHP via l'utilisation d'un système de templates. Cela permettra donc à des gens connaissant le HTML d'intervenir sur la présentation du site sans pour autant écrire ou modifier la moindre ligne de PHP.

Les documentations et autres documents

Les documentations associées seront publiées directement sur ce site en utilisant le langage de balisage Wiki très simple d'utilisation (même pour des non informaticiens).


[1] Notez qu'une personne motivée et ayant de solides bases informatiques pourra probablement réussir à faire tourner la version asynchrone sous Windows

Outils personnels