Jump to content
Elbarto

[Vente] Updater

Recommended Posts

Bonjour à tous,

Je vous présente un updater que j'ai moi-même réalisé. Il est assez particulier, il est différent des 3/4 des updaters que vous trouverez ici.
Tout d'abord comment fonctionne-t'il ?

L'updater est capable de scanner le dossier du jeu et de repérer quels fichiers ne sont pas à jour, il les remplace (même s'ils sont déjà ouverts par un programme).
Il se divise en deux parties, une partie "Lister" et une partie "Updater".
- Le Lister qui permet de versionner tout le dossier du jeu, pour l'utiliser, il vous suffit d'avoir votre dossier dofus hébergé sur votre site, et de lancer le logiciel qui vous créera un fichier de version.
Il vous proposera également de modifier la configuration de l'updater (images, lien du site, news etc).
- L'updater que vous donnerez à vos joueurs et qui se chargera de télécharger le fichier de version ainsi que le fichier de configuration et mettra le jeu à jour en scannant et cherchant les fichiers différents.

Un fonctionnement comme celui-ci peut-être beaucoup plus lent si l'updater scanne ou télécharge les fichiers un à un, c'est pour cela qu'un système multi-tâches est mis en place.
Vous pouvez fixer dans la configuration le nombre de fichiers à scanner ou à télécharger simultanément.
Ainsi cet updater est beaucoup plus performant qu'un updater lambda. Il ne fonctionne avec aucun fichier zip ou numéro de version.
Vous serez sûrs que vos joueurs auront exactement le même client de jeu que sur votre site.
Avec ce fonctionnement, l'updater est aussi capable de télécharger entièrement le jeu lors du premier lancement.

Pour l'interface de l'updater, le background est personnalisable, le logo aussi. Vous pouvez également modifier et ajouter des news. Quand on clique sur une news, le lien s'ouvre dans le navigateur. Tout cela est configurable avec le Lister, il n'y a pas besoin de mettre à jour l'updater. Le langage utilisé est le C#, c'est une application WPF, le fond est transparent, on peut faire sortir des images du cadre de l'updater par exemple.

Résumé des points forts:
- Excellentes perfomances
- Installation complète du jeu
- Mise à jour des fichiers nécessaires seulement
- Configuration via le Lister
- Simplicité de mise à jour
- Son pour dofus 2.x

Des améliorations sont à venir:
- Vidage du cache du client de jeu
- Amélioration de la mise en cache des images
...


Le code source de l'updater est inclus dans la vente, vous pouvez me contacter par message pour plus d'informations (une démo est possible). Discord: Atlas#6101

Quelques screens:
https://prnt.sc/q1ddmz
https://prnt.sc/q1ddh9
https://prnt.sc/q1dd02
https://prnt.sc/q1dd97

Au-dessus du bouton jouer, il y a la possibilité de rajouter des icônes vers le site (shop, forum...) par exemple.

ps: Le lister ne se référence pas lui-même ainsi que les fichiers dans le dossier updater, les fichiers de configuration et de version. (D'où les 2 fichiers scannés et les 5 détectés)

Edited by Elbarto
  • Haha 1
  • Upvote 1
  • Downvote 1

Share this post


Link to post
Share on other sites

Update: Le son est désormais pris en charge par l'updater pour les versions 2.x.

Share this post


Link to post
Share on other sites

Les fichiers sont hash avec quel protocole ? Sha512 ?

Au cas ou tu utilise une méthode supérieur au MD5 c'est vraiment pas obligé pour un si petit nombre de fichiers et sa prend plus de temps.

Et tu exploite ton système pour faire une reprise de téléchargement avec vérification des fichiers en cas de déconnexion ou fermeture ? 

(Je viens de coder le miens donc on peux échanger des idées si tu veux)

Edited by Mrproex
Modification du message

Share this post


Link to post
Share on other sites
Sur 27/11/2019 at 10:34 AM , Mrproex a déclaré:

Les fichiers sont hash avec quel protocole ? Sha512 ?

Au cas ou tu utilise une méthode supérieur au MD5 c'est vraiment pas obligé pour un si petit nombre de fichiers et sa prend plus de temps.

Et tu exploite ton système pour faire une reprise de téléchargement avec vérification des fichiers en cas de déconnexion ou fermeture ? 

(Je viens de coder le miens donc on peux échanger des idées si tu veux)

Pas vraiment, MD5 n'est pas le plus rapide, déjà ça dépend en grande partie de la taille des fichiers. Après la longueur des hashs influence aussi la performance (lecture et téléchargement du fichier de version). Il y a un compromis à trouver, je te laisse chercher plus de détails ! ;)

Oui j'exploite le système pour une reprise de téléchargement en cas de déconnexion ou fermeture, il revérifie effectivement les fichiers.

Share this post


Link to post
Share on other sites

Quelques devlogs du projet:

11/12/19:
- [Lister] Refonte de l'affichage et de l'UX
- [Choix/Lister] Possibilité de supprimer des news
- [Choix/Lister] Possibilité de supprimer toutes les news

12/12/19:
- [Choix/Lister] Ajout de la version de dofus
- [Updater] Demande de droits d'administrateur
- [Updater/Lister] Possibilité de créer un raccourci sur le bureau

13/12/19:
- [Choix/Lister] Ajout du nom du serveur
- [Updater/Lister] Refonte du système de configuration (interne)
- [Choix/Lister] Ajout du choix du dossier d'installation
- [Choix/Lister] Correction suppression des news

14/12/19:
- [Updater] Correction raccourci
- [Updater] Correction du choix de la prise de décision mise à jour ou installation
- [Lister] Refonte du visuel du listing
- [Updater] Déplacement du cache (interne) lors de l'installation

La refonte du Lister:

Lister.gif

Share this post


Link to post
Share on other sites

Bonsoir,

Sujet clear, évitez de divaguer, merci.

 

En vous souhaitant de bonnes fêtes.

 

Cdlt,

  • Like 2
  • Thanks 1

Share this post


Link to post
Share on other sites
Sur 01/01/2020 at 7:23 PM , Unique a déclaré:

Une version Mac est possible? Merci

Malheureusement l'updater est développé en C# WPF, donc sous le framework .NET (Windows), pour avoir une version MAC, il faudrait le recoder avec d'autres langages (Java par exemple) ou d'autres outils. Peut-être que Wine permet de lancer l'updater sous des versions Linux (Mac aussi), je n'ai pas essayé. Pour le moment, il n'y a pas assez de demandes en version Mac ou Linux pour faire tout ce travail (qui vu l'updater existant, est conséquent). Peut-être que cela changera, affaire à suivre... ;)

  • Haha 1

Share this post


Link to post
Share on other sites
il y a 43 minutes, Elbarto a déclaré:

Malheureusement l'updater est développé en C# WPF, donc sous le framework .NET (Windows), pour avoir une version MAC, il faudrait le recoder avec d'autres langages (Java par exemple) ou d'autres outils. Peut-être que Wine permet de lancer l'updater sous des versions Linux (Mac aussi), je n'ai pas essayé. Pour le moment, il n'y a pas assez de demandes en version Mac ou Linux pour faire tout ce travail (qui vu l'updater existant, est conséquent). Peut-être que cela changera, affaire à suivre... ;)

Il y a mono sous mac, qui support les winforms. Après à toi de tester, et de le rendre compatible, si c'est ton souhait. Maintenant C#.NET peut être considéré comme assez bien multiplateforme, en faisant attention aux lib / standards utilisés.

Share this post


Link to post
Share on other sites
il y a 48 minutes, v4vx a déclaré:

Il y a mono sous mac, qui support les winforms. Après à toi de tester, et de le rendre compatible, si c'est ton souhait. Maintenant C#.NET peut être considéré comme assez bien multiplateforme, en faisant attention aux lib / standards utilisés.

Je m'étais renseigné là dessus mais il semblerait que Mono ne supporte pas les applications WPF :(.. La transparence du background n'est pas gérée pour les winforms donc l'application est en WPF, il faut utiliser une transparency key avec un rendu assez approximatif (Même si je pense que j'aurais pu mieux l'utiliser et peut-être avoir un meilleur rendu). L'updater n'utilise pas non plus des libs trop spécifiques à Windows sauf pour la création du raccourci.. J'avais entendu parler de Sivlerlight qui pouvait aussi être utilisé mais le projet semble à l'abandon depuis pas mal d'années. Pourquoi ne pas essayer de passer l'updater en winforms pour pouvoir utiliser Mono, mais je le ferais seulement si plusieurs personnes le demandent, une seule personne n'est pas suffisante.

Share this post


Link to post
Share on other sites

×
×
  • Create New...