Aidez nous a financer le site: Joignez l'utile à l'agréable et profitez d'FR-Minecraft sans publicités en
devenant VIP ! Ou ajoutez FR-Minecraft dans vos exceptions, nous n'abusons pas des pubs
Ces dernières semaines les annonces d'évolutions techniques se multiplient: nouvelle lib de log, nouvelle lib reseau, nouveau effets graphiques, etc... Je profite donc de l'occasion pour faire le point sur ces évolutions, et (exceptionnellement) vous donner un avis très personnel.
- Utilisation de la bibliothèque Log4j2 pour le système de Log
- Ajout des shaders et autres options graphiques
- Utilisation de la bibliothèque Netty pour la couche réseau
- La possibilité prochaine de changer votre pseudo
Pourquoi ces changements ?
L'API de modding est en bonne voie !!!
En effet, tout ces changements sont très certainement des étapes néccessaires pour la création d'une API simple de modding de Minecraft. Cela permettra d'installer des mods extrèmement simplement : il suffira probablement de copier un pack de ressource et de le selectionner dans la liste, et c'est tout !
Qu'apporteront ces changements pour nous les joueurs ?
Pour l'instant, pas grand chose ...
Les shaders vous permet de délirer 5 minutes avec des effets aussi amusant qu'inutile.
Le changement de pseudo à priorit ne concerne qu'une minorité de joueur, et ne sera pas disponible avant de nombreux mois.
Pour le reste, ce n'est que technique, et ne concernera que les administrateurs de serveurs Minecraft.
Y'a-t-il des inconveniants ?
Oui, et ils sont nombreux, j'y revient dans quelques lignes...
Est-ce indispensable ?
La réponse me semble évidente : Non
Il existe déjà des mods pour faire la même chose : Forge, ModLoader, etc. et eux ne changent pas la moitié du jeu ;-)
Je vais essayer maintenant de vous apporter un complément d'information personnels (et donc non officiels) sur ces sujets, en usant de mon expérience en tant que :
- Administrateur de 4 serveurs Minecraft
- Administrateur du site FR-Minecraft
- Administrateur système de plusieurs machines
- Développeur (=conception et réalisation de logiciel) depuis 20ans (dont 10 professionnellement)
- Et bien sur, joueur assidu de Minecraft ;-)
Je ne vais pas vous le cacher : tout ces changements seront un cauchemard pour moi, et pour tout mes confrères administrateurs de serveurs, et de sites sur Minecraft. Revenons sur chacun des changements, et je vais expliquer, pourquoi selon moi, c'est une très mauvaises choses
- Utilisation de la bibliothèque Log4j2 pour le système de Log :
L'utilisation d'une bilbiothèque permet, selon Dinnerbone, plus de souplesse. Et c'est vrai : Cela permet de faire tellement de chose: Documentation dispo ici :
http://logging.apache.org/log4j/2.x/manual/configuration.html
La documentation fait plusieurs dizaines de page, c'est dire si les possibilités sont énormes !!!
Oui mais ... gardez bien une chose en tête : Plus c'est polyvalent, et plus c'est compliqué.
Et plus c'est compliqué, et plus ca sera lent ...
Et plus ca lagguera...
Dinnerbone vient donc, sans le comprendre, d'ajouter une couche de lag à Minecraft ...
Autre soucis : Le fonctionnement des logs n'a plus rien à voir : puisque ce système est ausi personnalisable, pourquoi Dinnerbone n'a pas gardé le même fonctionnement ?
Désormais les log seront splittés : à chaque démarrage un nouveau fichier. De plus, les anciens log sont automatiquement compressés au format .gz. Où est l'interet ?
Sachez que depuis longtemps les administrateurs de serveurs et autres developpeurs de logiciel de gestion de serveurs se sont adapatés au fichier de log de Minecraft pour interagir dessus. Ainsi chez FR-Minecraft nous avons des moulinettes qui analyse les logs et les index pour y faire des recherches rapides...
Tout sera à refaire, et pire il faudra maintenant avoir un système de décompression automatisé pour pouvoir lire les logs ...
Autant vous dire que si cette nouveauté n'apporte rien pour les joueurs lambda, pour les administrateurs de serveurs ca sera un cauchemard : lag en plus, système non rétro-compatible, et obligé de décompresser les logs pour les lires.
Accessoirement l'ajout de ce genre de bibliothèque externe va grossir énormement la taille du jeu, et il deviendra de plus en plus fastidieux de télécharger Minecraft si on a pas une connection haut débit.
- Ajout des shaders (et autres options graphiques : mipmap, anisotropie, etc.)
Que dire ... Que des questions :
Minecraft a-t-il des ralentissements chez vous ?
Avez-vous besoin de optifine pour avoir un jeu fluide ?
Si la réponse est oui, vous allez pleurer avec la sortie de la version 1.7 ...
Avez-vous lu nos news au sujet de ces évolutions (ou mieux : Avez vous tester ces options) ?
Avez-vous constaté une grosse différence entre avant/après ?
Non ? et bien moi non plus .... et pourtant ca réduit drastiquement les performances graphique.
Heureuseuement Grum a pensé à ajouter des options pour désactiver ces effets, mais elles seront quand même activé par défaut :-( Il faudra donc penser à les désactiver.
Garder quand même en tête la remarque au sujet des logs :
Plus un système est personnalisable, plus il sera complexe et donc lent. Ainsi, même désactivé cela entrainera forcement une légère baisse des performances globales.
- Utilisation de la bibliothèque Netty pour la couche réseau
Encore un point que je ne comprends pas ...
Toujours la même remarque : bibliothèque public, avec énormement de fonctionnalité... dont Dinnerbone n'a pas besoin.
La raison officielle de Dinnerbone pour ce changement est simple : "Pourquoi réinventer la roue ?"
Je suis d'accord avec lui : Pourquoi la réinventer ? Il y avait déjà une couche réseau dans Minecraft, alors pourquoi la refaire ?
Et surtout j'aimerai ajouter une chose : S'il est plus long et fastidieux de développer sur mesure un système pour une tache précise, ce système sur mesure sera TOUJOURS plus performant qu'un système générique !
Pourquoi pensez-vous par exemple qu'une carte graphique, avec un GPU moins puissant qu'un processeur (CPU) arrive à traiter de la vidéo plus rapidement que ce CPU ? Parce que les GPU sont spécialisé. Le mot est la : plus un système est spécialisé, plus il sera performant. Dinnerbone vient, par effet de mode, supprimer un système spécialisé (et donc fort probablement plus performant) par un système générique (Netty).
RIP la fluidité, bonjour les lags :'(
Ca ne s'arrête pas la ... Je vous rassure vous ne serait pas les seuls à souffrir, la plupart des developpeurs/webmasters et admin de serveurs souffriront encore plus : Car non seulement il intègre une bibliothèque nouvelle, mais il casse totalement tout le protocole de communication, ainsi toutes les auteurs et admin de système communiquant avec le serveur veront leur système cassé.
Je pense en particulié à tous les sites qui affichent un compteur de joueurs sur leur serveur : Ils utilisent un script de communication avec le serveur, ce script ne sera plus fonctionnel à partir de la prochaine snapshot. Il faudra donc soit le refaire, soit espérer une mise à jour... Je ne parle même pas de la problématique encore pire pour tous les serveurs Minecraft alternatif qui devront refaire tout le travail de reverse engineering, ou les sites de classement de serveurs par nombre de joueurs...
- La possibilité prochaine de changer votre pseudo
Je fini par ce qui me térifie le plus, le changement de pseudo.
D'abord pourquoi faire ca ? C'est un boulot colosale, pour Dinnerbone d'abord, mais aussi et surtout pour l'ensemble de toutes les admins de serveurs Minecraft de la planète !!! Ca ne servira à rien : seule une infinime minorité des joueurs (honnête) en aura l'utilité. Je reste convaincu que la plupart des utilisations de cette fonctionnalité sera pour des joueurs malhonnete soucieux de ne pas être reconnu.
Cela cassera un grande partie des plugins Minecraft :
- Gestion des permissions
- Gestion des homes
- Gestion des coffres
- Gestion des territoires
- Gestion des factions
- Log de blocs
- etc... tout est basé sur les pseudos !!!
Imagez des plugins de type Lockette qui permettent de protéger des coffres, portes, etc. grâce à des panneaux avec le pseudo du joueurs : Et bien bon courage pour modifier tous les panneaux de l'intégralité de votre map, et gare à vous si vous en oubliez un !!! Heureusement sur FR-Minecraft les protections de coffres sont centralisé, je serait le seul à avoir le problème.
Je ne parle même pas du risque pour les logs de bloc, dans le cas de FR-Minecraft les log represente plus de 150Go de données. La dernière fois qu'on à du faire un changement globale (avec 80Go de donnée) cela à pris 4 jours de traitement, imaginez si demain on doit refaire la même chose pour changer les pseudos en UUID ... comptez au minimum une dizaine de jour de coupure du serveur ...
Si les conflit de pseudo sont autorisé, cela sera une grave faille de sécurité : (ce qui semble probable puisque Dinnerbone a déjà publié une capture d'écran avec plusieurs joueurs nommé "Dinnerbone" sur l'image)
Ne vous y trompez pas : dans tous systèmes, la plus grosse faille de sécurité est l'HOMME !
Il est infiniment plus facile de tromper un humain, que de tromper une machine...
Imaginez le scénario suivant : Tronics est administrateur de son serveur Minecraft.
Un jour Tronics arrive sur son serveur, avec un statut de joueur et non admin.
Il explique alors à son staff qu'il a fait des tests pour être en joueur, et qu'il n'a pas accés à son serveur pour se remettre les droits d'admin, il demande donc a ce qu'un de ses confrères lui donne les droits...
On lui donne, il détruit le serveur (ban du staff, //set 0 pour tout supprimer sur la map, etc.) : Dommage, c'était pas le vrai "Tronics", c'était juste un autre joueur qui a pris le même pseudo.
Ne rigolez pas, ce scénario je ne l'ai pas inventé ! C'est ce qui est arrivé sur notre serveur TeamSpeak il y a quelques temps, car sur Teamspeak vous pouvez changer de pseudo autant que vous le souhaitez, sans aucune restriction, et il n'y a aucun moyen humainement utilisable pour savoir a qui on parle... Ce jour la un inconnu est devenu admin de notre serveur TeamSpeak en demandant ses droits a un membre du staff. Il y a alors immédiatement ban tous le staff (les vrai admins en priorité) ... heureusement j'avait toujours un acces console pour remettre les choses en ordre, et j'ai repris le contrôle en quelque secondes. Depuis j'ai revu entièrement la config du seveur : les nouveaux n'ont plus aucun droit, il faut être validé par le staff pour parler, et surtout ... il n'est plus possible pour un membre du staff de donner des droits admin sur le serveur, ni de bannir un de ses supérieurs. Mais sachez que ce scénario est très courant, et très connu des hackers, ca a même un nom : le
social engineering. (Et mettre en garde votre staff ne changera rien, la faille humaine est la et vous ne pourrait rien y faire !)
Sans aller aussi loin, ca pourra aussi etre un membre d'une faction adverse qui se fait passer pour un membre de votre faction pour piller, ou qui prend un pseudo inconnu pour se faire recruter et espionner puisque vous ne le reconnaitrez pas. Tout est imaginable, surtout le pire.
S'il est possible de changer de pseudo aussi souvent qu'on le souhaite :
S'il n'y a pas de limitation (ou une limitation trop faible) de la fréquence de changement de pseudo, cela sera un gros risque pour la tranquillité des serveurs : Imaginez un joueur qui est connu sur le serveur pour être turbulant. Le staff l'aura à l'oeil, et le membre se tiendra à carreau pour ne pas avoir de soucis. Demain dans un cas pareil, il suffira de changer de pseudo pour ne plus être reconnu !!!
Cela ne cassera pas que les plugins, mais aussi tous les sites qui se base sur les pseudos :
La plupart des sites sur Minecraft aime utiliser les avatars des joueurs pour améliorer la présentation, c'est nottament le cas de FR-Minecraft, qui affiche les avatars quasiment partout sur le site :
- Les pages de profils (ex :
http://fr-minecraft.net/profil-Tronics.html)
- L'avatar en signature de chaque contenu posté
- Les avatars de chaque membre sur le forum
- etc...
Nous sommes loin d'être les seuls, et de nombreux sites font de même, avec parfois des services externes comme minotar ou autres...
Cela sera de même pour tous les systèmes d'achats en ligne (money, terrain, stuff, commande, etc.) : Ils sont tous basé sur le pseudo du joueur, comment fera-t-on demain si les pseudos ne sont plus unique ?
La possibilité de changer de pseudo signe la fin de tous ces services interactifs, puisqu'il ne sera à priorit plus possible de retrouver la skin d'un joueur à partir de son pseudo uniquement, il faudra son UUID, que le joueur lui même ne connaitra probablement pas...
En conclusion je noterai que Minecraft était un jeu mal conçu, au choix technologique mal choisit (Notch ne l'a jamais démenti)... et quitte à faire de mauvais choix à la base, pourquoi ne pas continuer. Si Jeb est un developeur confirmer et talentueux, il a délaissé le développement de Minecraft à Dinnerbone ... Hors ce dernier est jeune (21ans), avec peu d'expérience, et son manque d'expérience est une chose terrible pour l'avenir de Minecraft :-( Il connait les choses à la mode (bibliothèque), mais n'a aucun recul sur les problèmes de performances et les techniques d'optimisations.
Si vous doutez que Minecraft soit mal conçu, demandez vous une chose : Pourquoi la version Xbox, Playstation, iOS, Androïd, Pi (en gros toutes les versions autres que PC) ont toutes étaient réécrite intégralement ? Pourtant Java (= le framework sur lequel repose la version PC) est une plateforme intéropérable, y compris pour les systèmes embarqués ! Seule la version PC n'aura pas eut la chance d'avoir une réécriture complète, plus notre plus grande tristesse :-(
Bilan des evolutions techniques en cours :