OVH Cloud OVH Cloud

Plugin framework

2 réponses
Avatar
Olivier THIERY
Bonjour,

J'écris un programme qui se veut un environnement de création et
d'execution de jeux vidéos en 2D (et en java bien sûr). Dans l'idée de
le rendre le plus modulaire possible, je voulais faire en sorte que
chaque jeu soit un plugin du programme principal (celui-ci fournissant
presque uniquement les interfaces nécessaires pour que l'ensemble
fonctionne).

J'en étais donc à essayer d'écrire mon propre système de plugin quand je
suis tombé sur Java Plugin Framework (JPF). En recherchant un peu, je
suis aussi tombé sur Generic Plugin Engine. Je pense utiliser l'un ou
l'auter, mais je ne suis pas franchement en mesure de choisir.
GenPlugEngine semble plus mature, mais je ne voudrais pas en choisir un
et voir tout crasher au quinzième plugin...

Avez-vous une expérience avec l'un ou l'autre, ou même encore un autre ?

Merci d'avance,

Olivier

2 réponses

Avatar
Laurent Bossavit
Olivier,

Dans l'idée de le rendre le plus modulaire possible, je voulais faire en
sorte que chaque jeu soit un plugin du programme principal (celui-ci fournissant
presque uniquement les interfaces nécessaires pour que l'ensemble fonctionne).


La manière la plus sûre de faire ce genre de chose est probablement la
suivante:
- écrire un premier jeu sans se préoccuper de le rendre modulaire, mais
en le rendant le plus possible /malléable/ - modularisable, disons;
- écrire un deuxième jeu qui se greffe sur le même socle applicatif que
le premier, de sorte qu'on a maintenant deux jeux partageant un certain
nombre de services communs;
- factoriser au maximum le moindre bout de code commun entre les deux
jeux et le faire migrer vers les couches basses;
- écrire si besoin est un troisième jeu, un quatrième etc.;
- lorsque l'interface entre les couches basses et les jeux s'est
stabilisée, appliquer éventuellement des abstractions comme DIP
(Dependency Inversion Principle), figer l'interface et la publier
- affiner le tir en fonction des nombreuses remarques formulées par les
développeurs de jeux supplémentaires :)

Pour sécuriser le processus, je conseille l'utilisation systématique de
tests automatisés pour prévenir les régressions - cf http://junit.org/

Laurent
http://bossavit.com/thoughts/

Avatar
Emmanuel Feller
"Olivier THIERY" a écrit dans le message de
news:cl323m$2ms$
Bonjour,

J'écris un programme qui se veut un environnement de création et
d'execution de jeux vidéos en 2D (et en java bien sûr). Dans l'idée de
le rendre le plus modulaire possible, je voulais faire en sorte que
chaque jeu soit un plugin du programme principal (celui-ci fournissant
presque uniquement les interfaces nécessaires pour que l'ensemble
fonctionne).


Ca parrait bête comme réponse, mais as-tu regardé RCP (la base de la
plate-forme Eclipse) ?
C'est très performant, tu as déjà tout une base de disponible et déjà
modulaire ...

Emmanuel