Bonjour à tous et à toutes.
Je viens aujourd'hui vous présenter un petit programme que je suis en train de concevoir, que je met en Open Bêta. Il s'agit d'un synchronisateur des bases des données des scores locaux de plusieurs utilisateurs, pour que ceux ci puissent pouvoir comparer leurs scores tout au long de leur évolution.
I - Avant propos
Ce logiciel est développé sous licence GPL par l'association Virtual Sanctuary Team (http://virtualsanctuary.fr.cr/). Il est basé sur un lecteur de base de données d'Osu! développé en Ruby par watashi (https://github.com/watashi/osu-db) sous licence GPL, et sur un compilateur de script bash fait par Fatih Kodak (http://www.f2ko.de/programs.php?lang=en&pid=b2e), ainsi que le langage Python.
Je tiens à souligner que le logiciel ici présent est sous Open Bêta ; cela signifie qu'il est sujet à des bugs et des mises à jours fréquentes (pour l'instant non automatiques). Je tiens aussi à souligner que tout bug raporté sera un bug en moins. Ainsi, si vous avez des choses à souligner, n'hésitez pas à le faire à l'adresse suivante : teamvirtualsanctuary[AT]gmail{DOT}com.
Ce logiciel est toléré par la charte d'Osu! (vérifié auprés d'un admin).
Si vous n'êtes pas un fervant lecteur, j'ai fait une petite vidéo de démonstration (désolé je n'ai pris que le left de mon micro sans faire gaffe, donc c'est pas en stéréo...)
II - Introduction et présentation
Le logiciel que je propose se base sur une relation client - serveur. Il est donc par conséquent obligatoire de posséder un ordinateur allumé constament qui puisse faire office de serveur. Pour l'instant, j'ai développé le serveur que sur Linux. Dans ma prochaine mise à jour, j'étendrais cela à windows.
II.1 - A quoi ça sert ?
Osu! Local Scores Synchronizer (que j'abrégerais OLSS) permet de synchroniser plusieurs fichiers de scores locaux automatiquement à l'ouverture d'Osu!. Ceci permet tout simplement de récupérer et pouvoir comparer les scores de plusieurs utilisateurs (qui ne sont pas sur le même PC) directement dans le jeu.
Voilà par exemple ce que l'on obtient après une synchronisation :
On voit sur cette image non pas les scores locaux d'un utilisateur, mais de plusieurs sur une map. Bien évidemment, ceux-ci sont triés par scores décroissant.
II.2 - Bien, mais comment ça marche ?
OLSS requiert 3 ordinateurs minimum : 2 ordinateurs de joueurs d'Osu! (minimum), et un serveur permettant de synchroniser les données envoyées par les utilisateurs. Le seul fichier que modifie OLSS est le fichier scores.db (dans la racine d'Osu!) contenant tous les scores des utilisateurs.
Schématisons un peu tout cela :
II.3 - Concrètement, ça ressemble à quoi ?
OLSS, lorsqu'il s'installe, créé un launcher pour osu! (petit programme qui s'execute avant osu!) permettant de synchroniser les scores. Ce launcher est généré à l'installation, et se nomera «osu!launcher.exe». Pour synchroniser vos scores, vous devrez utiliser ce launcher plutôt que le raccourcis standard vers osu!.
Notez qu'il est fortement recommandé de quitter osu! avant de lancer ce programme (je ne me porte pas garant de ce qu'il adviendra de vos scores si vous faites ça).
Ce launcher (pour la version actuelle, la v0.4) ressemble tout bêtement à cela :
Bon d'accord, je vous l'accorde c'est pas bien joli (je dois vous avouer ne pas trop avoir bossé là dessus). Mais bon ça fait le taff.
On a donc 4 champs et 2 boutons :
II.4 - Bien, mais qu'en est-il du serveur ?
Alors je le re-souligne, si le logiciel est en Open Bêta, c'est pas pour rien. Pour l'instant, le serveur est potentiellement instable (je boss là dessus). J'ai donc, par précaution, préféré le faire tourner en premier plan (foreground). Pour l'intérompre, un Ctrl+C est de rigueur.
Pour executer le serveur après installation, il suffit juste de faire un ./start_server.py dans le dossier d'installation. Vous vous retrouverez avec un truc ressemblant un peu à ça après une connexion :
C'est pas très beau, mais c'est pratique pour savoir qui trifouille chez vous. En passant, un fichier log est lui aussi créé, un peu plus renseigné que l'affichage ici.
Un fichier white_list.cfg est présent sur le serveur. Sa syntaxe est la suivante :
<pseudo> <mot_de_passe>
Par exemple:
FunkySayu Roblochon
FunkySayu2 Migraine
FunkySayu3 OursDesBois
Note : j'ai un doute sur la gestion des mots de passe à espace.
III - Installation et téléchargement
III.1 - Téléchargement et installation du client
J'ai mis la version 0.4 du client disponible à l'adresse suivante : http://funkysayu2.fr.cr/OLSS/OLSSClientInstaller0.4.zip
Pour installer, il suffit de déziper l'archive et d'executer le fichier installer.bat (FIXME: peut être avec les droits d'admin ?). L'installer installera Python2.7 (pour faire tourner le logiciel) sur votre ordinateur. Pas de panique, c'est juste un interpreteur (pas un truc virulé ou je ne sais quoi). Ensuite, il fera tourner la petite interface graphique qui vous guidera tout simplement durant l'installation.
A la fin de l'installation, vous aurez un fichier .exe sur votre bureau. Je vous recommande de changer tous vos raccourcis vers Osu par ce petit fichier (démarrer osu sans passer par ce .exe ne synchronisera pas vos scores).
Et je crois que c'est tout.
J'ai des problèmes avec un ami qui n'arrive pas à installer le client sur son Windows 8. Donc hésitez pas à feedback là dessus (teamvirtualsanctuary[AT]gmail{DOT}com)
III.2 - Téléchargement, installation et configuration du serveur
De même, j'ai mis la version 0.4 du serveur disponible à l'adresser suivante : http://funkysayu2.fr.cr/OLSS/OLSSServer0.4.zip
A l'intérieur de l'archive, vous trouverez tout pour faire tourner le logiciel. Il suffit de bien configurer le tout, et c'est partit !
Pour ce qui est de la configuration, vous devrez ouvrir le port 8282 sur votre serveur. Ce port est reconfigurable facilement sur le serveur, mais pour les clients, c'est plus compliqué...
Une fois que c'est fait, n'oubliez pas d'éditer votre white_list.cfg
Pour tout problème d'exécution, feedback at : teamvirtualsanctuary[AT]gmail{DOT}com
III.3 - Téléchargement des sources
Je compte mettre à disponibilité les sources de mes programmes sur un git. Pour l'instant, vu que c'est du Python, vous pouvez déjà jetter un oeuil :p
IV - Versions et Todo List
IV.1 - Historique des versions
0.4 (par FunkySayu) Open Bêta release
- création d'un installer pour Windows :
- installe Python2.7
- installe le client
- créé les répertoires permettant de faire tourner le client
- créé les fichiers batchs de lancement.
0.3 (par FunkySayu) Closed Bêta release
- création d'une interface graphique côté client.
0.2 (par FunkySayu) Closed Bêta release
- création d'un systeme Client-Serveur permettant de synchroniser
les scores automatiquement a distance.
0.1 (par FunkySayu) Alpha release
- création des méthodes d'analyse de scores locaux
- conception des fonctions de concatenations des fichiers scores
IV.2 - Todo List
Version 0.5
- sécurisation générale du serveur
- porter le serveur sous windows
- ajout d'un fichier de licence (il faudrait que je le fasse un jour quand meme)
- incorporation du système de connexion par nom de domaine côté client
Version 0.6
- incorporation d'un changelog du côté du client : cela lui permettra de savoir qui l'a dépassé au niveau des scores locaux (un peu comme sur Osu! par rapport au scores globaux)
Version 0.7
- traduction (viable) en anglais
Version 0.8
- PEUT ETRE des mises à jour automatique sur un serveur mandataire.
Version 1.0
- des tests éprouvés et un debug de ouf.
Proposez vos idées à l'adresse teamvirtualsanctuary[AT]gmail{DOT}com !
V - Notes
V.1 - Historique des modification du post
08/03/13 : ajout de la vidéo de démonstration de la v0.4.
09/03/13 : information à propos du problème de compatibilité avec la MàJ de Osu! du 09/03.
11/03/13 : suppression de l'information à propos du problème de compatibilité avec la MàJ de Osu! (lié à une base de donnée corrompue)
V.2 - Note importante
EN AUCUN CAS J'OUVRIRAIS UN SERVEUR POUR DES PERSONNES QUE JE NE CONNAIS PAS . Pas la peine de me mailer / me mp.
Pensez à nous, chaque like est un pas de plus vers les sponsors : http://www.facebook.com/Team.Virtual.Sanctuary , http://virtualsanctuary.fr.cr/
Je vous remercie d'avoir lu jusqu'ici, et à bientôt :p
Je viens aujourd'hui vous présenter un petit programme que je suis en train de concevoir, que je met en Open Bêta. Il s'agit d'un synchronisateur des bases des données des scores locaux de plusieurs utilisateurs, pour que ceux ci puissent pouvoir comparer leurs scores tout au long de leur évolution.
I - Avant propos
Ce logiciel est développé sous licence GPL par l'association Virtual Sanctuary Team (http://virtualsanctuary.fr.cr/). Il est basé sur un lecteur de base de données d'Osu! développé en Ruby par watashi (https://github.com/watashi/osu-db) sous licence GPL, et sur un compilateur de script bash fait par Fatih Kodak (http://www.f2ko.de/programs.php?lang=en&pid=b2e), ainsi que le langage Python.
Je tiens à souligner que le logiciel ici présent est sous Open Bêta ; cela signifie qu'il est sujet à des bugs et des mises à jours fréquentes (pour l'instant non automatiques). Je tiens aussi à souligner que tout bug raporté sera un bug en moins. Ainsi, si vous avez des choses à souligner, n'hésitez pas à le faire à l'adresse suivante : teamvirtualsanctuary[AT]gmail{DOT}com.
Ce logiciel est toléré par la charte d'Osu! (vérifié auprés d'un admin).
Si vous n'êtes pas un fervant lecteur, j'ai fait une petite vidéo de démonstration (désolé je n'ai pris que le left de mon micro sans faire gaffe, donc c'est pas en stéréo...)
II - Introduction et présentation
Le logiciel que je propose se base sur une relation client - serveur. Il est donc par conséquent obligatoire de posséder un ordinateur allumé constament qui puisse faire office de serveur. Pour l'instant, j'ai développé le serveur que sur Linux. Dans ma prochaine mise à jour, j'étendrais cela à windows.
II.1 - A quoi ça sert ?
Osu! Local Scores Synchronizer (que j'abrégerais OLSS) permet de synchroniser plusieurs fichiers de scores locaux automatiquement à l'ouverture d'Osu!. Ceci permet tout simplement de récupérer et pouvoir comparer les scores de plusieurs utilisateurs (qui ne sont pas sur le même PC) directement dans le jeu.
Voilà par exemple ce que l'on obtient après une synchronisation :
On voit sur cette image non pas les scores locaux d'un utilisateur, mais de plusieurs sur une map. Bien évidemment, ceux-ci sont triés par scores décroissant.
II.2 - Bien, mais comment ça marche ?
OLSS requiert 3 ordinateurs minimum : 2 ordinateurs de joueurs d'Osu! (minimum), et un serveur permettant de synchroniser les données envoyées par les utilisateurs. Le seul fichier que modifie OLSS est le fichier scores.db (dans la racine d'Osu!) contenant tous les scores des utilisateurs.
Schématisons un peu tout cela :
- A l'étape 1, le joueur rouge envoie ses scores au serveur. Le serveur les reçoit, et synchronise l'ensemble des scores qu'il possède, c'est à dire que ceux du joueur rouge. Ainsi à l'étape 2, le joueur rouge ne reçoit que ses scores en retour.
- A l'étape 3, c'est au tour du joueur bleu de se connecter. Le serveur reçoit ses scores, et les synchronise avec les scores qu'il possède. Ainsi, à l'étape 4, le joueur bleu reçoit ses scores et ceux du joueur rouges.
- Si l'on mettais maintenant une cinquième étape, où le joueur rouge se reconnecterais avec de nouveaux scores (bah oui, il a joué entre temps...). Il envoie ses scores, et reçoit aussi ceux du joueur bleu en retour. Et ainsi de suite.
II.3 - Concrètement, ça ressemble à quoi ?
OLSS, lorsqu'il s'installe, créé un launcher pour osu! (petit programme qui s'execute avant osu!) permettant de synchroniser les scores. Ce launcher est généré à l'installation, et se nomera «osu!launcher.exe». Pour synchroniser vos scores, vous devrez utiliser ce launcher plutôt que le raccourcis standard vers osu!.
Notez qu'il est fortement recommandé de quitter osu! avant de lancer ce programme (je ne me porte pas garant de ce qu'il adviendra de vos scores si vous faites ça).
Ce launcher (pour la version actuelle, la v0.4) ressemble tout bêtement à cela :
Bon d'accord, je vous l'accorde c'est pas bien joli (je dois vous avouer ne pas trop avoir bossé là dessus). Mais bon ça fait le taff.
On a donc 4 champs et 2 boutons :
- Votre nom d'utilisateur pour vous authentifier au prés du serveur
- Votre mot de passe
- L'ADRESSE IP du serveur (les noms de domaines ne sont pas encore supportés, c'est à venir)
- et les pseudonymes à synchroniser (si vous laissez ce champ vide, le serveur synchronisera tous les utilisateurs qu'il a enregistré.
- le bouton Synchronise lance la synchronisation auprès du serveur (ce qui prend entre 5 et 20 secondes max normalement)
- et le bouton Quit and start Osu!, qui porte bien son nom.
II.4 - Bien, mais qu'en est-il du serveur ?
Alors je le re-souligne, si le logiciel est en Open Bêta, c'est pas pour rien. Pour l'instant, le serveur est potentiellement instable (je boss là dessus). J'ai donc, par précaution, préféré le faire tourner en premier plan (foreground). Pour l'intérompre, un Ctrl+C est de rigueur.
Pour executer le serveur après installation, il suffit juste de faire un ./start_server.py dans le dossier d'installation. Vous vous retrouverez avec un truc ressemblant un peu à ça après une connexion :
C'est pas très beau, mais c'est pratique pour savoir qui trifouille chez vous. En passant, un fichier log est lui aussi créé, un peu plus renseigné que l'affichage ici.
Un fichier white_list.cfg est présent sur le serveur. Sa syntaxe est la suivante :
<pseudo> <mot_de_passe>
Par exemple:
FunkySayu Roblochon
FunkySayu2 Migraine
FunkySayu3 OursDesBois
Note : j'ai un doute sur la gestion des mots de passe à espace.
III - Installation et téléchargement
III.1 - Téléchargement et installation du client
J'ai mis la version 0.4 du client disponible à l'adresse suivante : http://funkysayu2.fr.cr/OLSS/OLSSClientInstaller0.4.zip
Pour installer, il suffit de déziper l'archive et d'executer le fichier installer.bat (FIXME: peut être avec les droits d'admin ?). L'installer installera Python2.7 (pour faire tourner le logiciel) sur votre ordinateur. Pas de panique, c'est juste un interpreteur (pas un truc virulé ou je ne sais quoi). Ensuite, il fera tourner la petite interface graphique qui vous guidera tout simplement durant l'installation.
A la fin de l'installation, vous aurez un fichier .exe sur votre bureau. Je vous recommande de changer tous vos raccourcis vers Osu par ce petit fichier (démarrer osu sans passer par ce .exe ne synchronisera pas vos scores).
Et je crois que c'est tout.
J'ai des problèmes avec un ami qui n'arrive pas à installer le client sur son Windows 8. Donc hésitez pas à feedback là dessus (teamvirtualsanctuary[AT]gmail{DOT}com)
III.2 - Téléchargement, installation et configuration du serveur
De même, j'ai mis la version 0.4 du serveur disponible à l'adresser suivante : http://funkysayu2.fr.cr/OLSS/OLSSServer0.4.zip
A l'intérieur de l'archive, vous trouverez tout pour faire tourner le logiciel. Il suffit de bien configurer le tout, et c'est partit !
Pour ce qui est de la configuration, vous devrez ouvrir le port 8282 sur votre serveur. Ce port est reconfigurable facilement sur le serveur, mais pour les clients, c'est plus compliqué...
Une fois que c'est fait, n'oubliez pas d'éditer votre white_list.cfg
Pour tout problème d'exécution, feedback at : teamvirtualsanctuary[AT]gmail{DOT}com
III.3 - Téléchargement des sources
Je compte mettre à disponibilité les sources de mes programmes sur un git. Pour l'instant, vu que c'est du Python, vous pouvez déjà jetter un oeuil :p
IV - Versions et Todo List
IV.1 - Historique des versions
0.4 (par FunkySayu) Open Bêta release
- création d'un installer pour Windows :
- installe Python2.7
- installe le client
- créé les répertoires permettant de faire tourner le client
- créé les fichiers batchs de lancement.
0.3 (par FunkySayu) Closed Bêta release
- création d'une interface graphique côté client.
0.2 (par FunkySayu) Closed Bêta release
- création d'un systeme Client-Serveur permettant de synchroniser
les scores automatiquement a distance.
0.1 (par FunkySayu) Alpha release
- création des méthodes d'analyse de scores locaux
- conception des fonctions de concatenations des fichiers scores
IV.2 - Todo List
Version 0.5
- sécurisation générale du serveur
- porter le serveur sous windows
- ajout d'un fichier de licence (il faudrait que je le fasse un jour quand meme)
- incorporation du système de connexion par nom de domaine côté client
Version 0.6
- incorporation d'un changelog du côté du client : cela lui permettra de savoir qui l'a dépassé au niveau des scores locaux (un peu comme sur Osu! par rapport au scores globaux)
Version 0.7
- traduction (viable) en anglais
Version 0.8
- PEUT ETRE des mises à jour automatique sur un serveur mandataire.
Version 1.0
- des tests éprouvés et un debug de ouf.
Proposez vos idées à l'adresse teamvirtualsanctuary[AT]gmail{DOT}com !
V - Notes
V.1 - Historique des modification du post
08/03/13 : ajout de la vidéo de démonstration de la v0.4.
09/03/13 : information à propos du problème de compatibilité avec la MàJ de Osu! du 09/03.
11/03/13 : suppression de l'information à propos du problème de compatibilité avec la MàJ de Osu! (lié à une base de donnée corrompue)
V.2 - Note importante
EN AUCUN CAS J'OUVRIRAIS UN SERVEUR POUR DES PERSONNES QUE JE NE CONNAIS PAS . Pas la peine de me mailer / me mp.
Pensez à nous, chaque like est un pas de plus vers les sponsors : http://www.facebook.com/Team.Virtual.Sanctuary , http://virtualsanctuary.fr.cr/
Je vous remercie d'avoir lu jusqu'ici, et à bientôt :p