JDuplicate Roadmap

This document summarizes (in French) the various bugs and features planned for the different releases of JDuplicate.

The current development version is: 0.5.10
The latest stable version is: 0.5.9
Général:
   -> Support des plateaux non 15x15, et au bonus non fixés
   
   -> Message d'inscription
   
Serveur:
   -> Améliorer le msg PLAYERNAME en y mettant le couple login/pass
 
   -> Support JDBC (login/pass/stats/table d'état pour page web)

   -> Repartition du calcul des tops et verifications dictionaire
      sur plusieurs machines, avec detection automatique des nouvelles
      resources

JDCC:

JDSC:
   -> Supporter le login/pass
   -> Suivre les avancements du serveur (developpement de base termine)

Doc:


	      
Général:

Serveur:
   -> Console d'administration

JDCC:

JDSC:
   -> Plateau modulable
   -> Support du scrabble et anagramme
   -> Essayer une version MacOSX Like pour Windows (comme iTunes)
  
Doc:

	      

General:
   -> Gestion des comptes dans une base de donnees avec possibilité     de stockage dans diffénts formats
   
   -> Mode spectateur
   
   -> Game et Hall Chat
   
   -> Support du Duplicate par email (JDupE)

   -> Nouveaux messages: ABORTGAME, CHANGEROOMSETTINGS, AUTHENTICATION

Serveur:
   -> Console d'administration (web, console en mode texte)

   -> Log dans les repertoires $JDUPDIR/logs/server et $JDUPDIR/logs/rooms

   -> Logger parametrable

   -> Classe de communication commune pr eviter de formatter plusieurs fois 
      le meme message

   -> Un thread par room pour ameliorer les performances, notamment sur les
      systemes multiprocesseurs

   -> Ecrire une classe Tile pour mieux gerer les pieces, et eventuellement
      ajouter le mode Wordox

   -> Permettre le changement des room settings quand pas en cours de jeu

JDSC:
   -> Amelioration de l'onglet des preferences (nom, serveur et port par defaut,
      autoconnect O/N, langue, couleurs du chat...)

   -> Gerer les comptes en base

   -> Peut etre Wordox

   -> Améorer l'ergonomie

   -> Permettre le changement des room settings quand pas en cours de jeu

JDupCS:

   -> Release avec meme features que JDSC

Doc:
   -> Specifications de JDupE

   -> Specifications de la base de donnees

   -> Doc de l'agencement des fichiers/rep + doc sur ces fichiers/rep

	      
Serveur:
  -> Revision complete du systeme de logs

OK-> implementation de la classe Tile pour ne plus dependre des majuscules et
     des minuscules

OK-> Possibilite de demarrer un Scrabble seul

  -> Resolution du probleme de fin de Scrabble prematuree lorsqu'un joueur
     quitte

  -> N'accepter les accents QUE dans les chat

  -> Verifier le probleme de score sur les blanks, et sur les nouvelles tiles
     entre deux tiles existantes

OK-> Implementation du mode DUPLITOP avec calcul du top et regles officielles
     jouees en tournoi

OK-> Revoir la verification VCN des tirages

OK-> Pouvoir annuler le kickidle pour certains nicks, ou completement avec 0

OK-> Chargement dynamique des types de plateau

JDSC:
  -> Implementation des remarques des utilisateurs (gestion des coups
     memorises)

  -> Mettre en evidence les pions joues mais non presents dans la main

  -> Gerer le message HALLROOMCHANGEDSTATE

  -> Utiliser des locales a parametres et nettoyer le code

  -> Ajouter une aide en ligne et des tooltips

  -> Ajout debug: timestamp des messages, son lors d'une connexion

  -> Clarifier la selection du type de partie au lieu d'un seul combo box
     choisir langue/type de jeu et afficher les presets correspondants
     uniquement

JDupCS/JDupMono:
  -> Release beta

Site:
  -> Faire un site dedie joueur a cote du site dedie developpeur de 
     Sourceforge

  -> Mettre a jour les documentations du protocole
               
Général:
   -> Revoir entièrement la doc
      -protocole
      -erreurs
      -schémas

OK -> Ajout du mode boggle
OK -> Création de nouveaux fichiers contenant des dès (extension .ldices)

OK -> Modification dans GI du champ 'letterset', remplacé par 'language'
   
OK -> Changer l'extension 'jdup' des fichiers de lettres
      ==> nouvelle extension: '.tiles' et '.dices'

OK -> Message de changement de main pr le mode Scrabble
   
OK -> Suppression de certains 'S' ds certains noms de messages
   
   -> Changement de nom de certains messages
OK    BESTMOVES| en ENDOFTURN| et modification pour plusieurs gagnants
OK    PLAYSTHISTURN| en STARTORTURN|
OK    GAMEINFOSREQUEST| a retirer
OK    SCOREREQUEST, HANDREQUEST, BOARDREQUEST,
OK    BOARDTYPEREQUEST(dans GAMEINFO plutot), HALLUSERSLISTREQUEST
OK    (envoi auto des que joueur arrive dans le hall) necessaire?
      HANDFULLRENEW lorsque la main est completement repiochee due
       a une contrainte voyelles/consonnes

OK -> Virer la plupart des request de données (sauf BOARDTYPEREQUEST)

OK -> Etendre ENDOFTURN pour que l'on puisse assigner a chaque mot la personne
      l'ayant joue. Utile au Boggle.      

OK -> Support de la pause, resume, et resume par vote, ack apres vote
      et messages associes

OK -> Ajout d'une commande HALLROOMCHANGEDSTATE permettant d'informer le
      changement d'état d'une room dans le hall

Serveur:
   -> Diagramme de déroulement de chaque type de partie

OK -> Implementation d'une file synchrone et d'une temporisation centrale
      dans le serveur pour regler les problemes d'actions simultanees

OK -> Detection des temps d'inactivite et deconnexion automatique 

   -> Doc de l'agencement des fichiers/rep + doc sur ces fichiers/rep
   
OK -> Vérification de l'existance des fichers dico ou ls définis ds gpreset.cfg

OK -> Ajout de la langue dans les parties prédéfines de gpreset.cfg


OK -> Support des dictionnaires et fichiers data en UTF8, support du cyrillique

JDCC:

OK -> Mise a jour de l'API, deboguage

OK -> Support du Boggle

OK -> Localisation Russe par Volt

JDSC:
OK -> Supprimer les informations de debug (sauf option explicite dans la conf)

   -> Mise a jour de l'API, deboguage

   -> Tests utilisateurs, amelioration de l'ergonomie de l'interface

   -> Création d'un package MacOSX natif

JDUPCS:
   -> Premiere release, support des modes Duplicate et Scrabble

KDUP:
   -> Premiere alpha release

Doc:
   -> Bcp de doc en vue :)

	      
Général:
OK -> Revoir la connexion au serveur:
      CLIENTTYPE>SERVERTYPE>PLAYERNAME>SERVERINFO>SERVERWELCOMEMESSAGE
   
OK -> Nlle erreur (au scrabble): vous ne pouvez pas rejoindre cette partie.
   -> Nlle erreur: idle disconnection

OK -> Ajout du message PLAYTHISTURN indiquant quel(s) joueur(s) joue(nt) le
      tour actuel.

Serveur:
OK -> Scinder le package 'server' en 3: gamemanager, comm, server
OK -> Revoir aussi les autres packages

OK -> Ajout du build number

OK -> Ajout de l'idle kick
      
OK -> Gèrer les commentaires si pas de xml (genre ; )
NOK-> Passer les fichiers de conf en XML
   
NOK-> Faire des logs moins gros ou refaire la partie log
   
OK -> Gaffe à l'ordre d'ajout/enlèvement des liste (comme les liste du 
      serveur lors d'un kick)
   
OK -> Si les vérif renvoient un code, ne pas faire les if/else pr ts les 
      cas, utiliser les erreurs localisées.
OK -> Passer des méthodes qui renvoie des codes d'erreurs à SEM
   
NOK-> Faire des id ds GH (pr éviter de se prendre la tête avec les comparaisons)
      ==> voir uniquement les endroit où c intéressant de le faire (création oui, chat oui)
      
OK -> Gestion du scrabble
OK -> bonus/malus en fin de partie

JDCC:
OK -> Complétion des noms

JDSC:
OK -> Completion des noms
OK -> Locales complèment terminé
OK -> Couleurs dans le chat en provenance d'un fichier properties
OK -> README (scratch)
NOK-> Couleur de fond sur les JTable (reporte au 0.6.0)
OK -> Amelioration du graphisme 

Doc:
NOK-> Document qui décrit l'enchainement des messages au court d'une partie 
      de tel type de jeu (genre un diagramme de séquence ou un graphe)
	      
Général:
NOK-> Voir le xmlrpc

NOK-> Voir l'implémentation IRC :)

Serveur:
OK -> POUVOIR ABREGER LE TPS D'ATTENTE EN VALIDANT SON COUP

OK -> Scinder CC

OK -> Déconnexion si mauvais/pas de playername/clienttype
  
OK -> Voir qd on ferme la connexion du coté serveur, pr pas avoir 2 msg de
      déco sur les clients connectés

OK -> Arranger ça: no_playername_given s est déconnecté
      (Bad login). / no_playername_given s est déconnecté (socket closed).

OK -> Faire des closeChannel silencieux
   
OK -> Controle de flood niveau serveur (éventuellement une banlist)
   
OK -> Vérification case insensitive pr les whisper/kick

OK -> Voir pr les vérif (et même certaines méthodes), soit les faire ds CC, 
      soit les faire des GH

OK -> Test sur les data request si pas de GH

JDCC:
OK -> Ajouter le support des plateaux modulables dans JDCC

JDSC:
OK -> Ravalement de façade
 
Doc:
NOK-> Doc: ajouter une colonnes pr donner les versions du protocol auxquels
      tel ou tel truc s'applique notamment les erreurs)

OK -> Doc concernant le charset de communication

OK -> Revoir la doc du protocole+erreurs
	      
Général:
OK -> Codes d'erreur
OK -> Faire Hall et Game Chat (abandonné pr le moment)
OK -> Faire un /me: CHATACTIONREQUEST/CHATACTION
OK -> Qd un joueur rejoint/quitte une partie, envoyer un message aux hall users.

Serveur:
OK -> Codes d'erreurs externes
OK -> Codes d'erreurs internes
   
OK -> Faire Hall et Game Chat (abandonné pr le moment)
OK -> Faire un /me: CHATACTIONREQUEST/CHATACTION
OK -> Qd un joueur rejoint/quitte une partie, envoyer un message aux hall users.

OK -> Vérifer la recherche du best mover
OK -> Refaire la partie vérification du code du predef game
OK -> Revérifier la vérification des paramètres de CREATEGAMEREQUEST
OK -> faire méthode de recherche de char illégaux: protocol separator
      + autres char interdits
OK -> Refaire la partie joindre une game
OK -> Réponse de la demande de kick

OK -> Changer le nom du fichier pdgames.pdg; nv nom gpresets.cfg
   

JDCC:
OK -> Codes d'erreur
OK -> Faire Hall et Game Chat (abandonné pr le moment)
OK -> Faire un /me: CHATACTIONREQUEST/CHATACTION
OK -> Qd un joueur rejoint/quitte une partie, envoyer un message aux hall users.
OK -> thread de connexion pour ne pas geler le client
OK -> amélioration du debug

JDSC:
NOK-> Ravalement de façade
 
Doc:
OK -> Doc exploitable des codes d'erreurs

	      
Général:
OK -> Nettoyage du code
OK -> Javadoc du code
OK -> Ajouter un HALLUSERSREQUEST/HALLUSERS
OK -> Changer le msg CLIENTVERSION en CLIENTTYPE

Serveur:
OK -> Déconnexion si playername déjà existant (à revoir)
OK -> Ajouter un HALLUSERSREQUEST/HALLUSERS
OK -> Virer le timer de GH, mettre un currentTimeMillis
OK -> Vérifier la dernière déco du server ds une partie + reconnexion du même joueur
OK -> Nettoyage du code
OK -> Javadoc du code

JDCC:
OK -> Ajouter un HALLUSERSREQUEST/HALLUSERS
OK -> Changer le msg CLIENTVERSION en CLIENTTYPE
OK -> Nettoyage du code
OK -> (Java)doc du code
OK -> Renommage des méthodes

JDSC:

Doc:
OK -> Doc exploitable du protocole (message et enchainements)
	      
Première release