Le gardien invisible â et des bannissements qui s'expliquent enfin đïž
Il y a quelque temps, nous avons parlĂ© ici d'un jeu pensĂ© pour les enfants dĂšs le dĂ©part â signalements, retours et un Ćil vigilant. Pour ĂȘtre honnĂȘtes, l'Ćil vigilant Ă©tait le point faible de l'ensemble : nous pouvions recevoir des signalements, mais nous ne pouvions presque pas aller voir ce qui se passait vraiment dans un monde. C'est justement lĂ -dessus que nous avons travaillĂ© â avec deux briques : un mode observateur pour la supervision, et un systĂšme de bannissement entiĂšrement repensĂ©, qui explique enfin aux joueurs concernĂ©s ce qui se passe.
Le mode observateur. Quand un signalement arrive (« quelqu'un construit n'importe quoi », « quelqu'un Ă©crit des mĂ©chancetĂ©s »), nous pouvons dĂ©sormais entrer dans le monde concernĂ© sans le dĂ©ranger. Et vraiment invisibles â pas façon « s'il te plaĂźt, ne m'affiche pas », une consigne qu'un jeu modifiĂ© pourrait tout simplement ignorer. Le serveur garde l'observateur entiĂšrement pour lui : pas d'avatar, pas de vaisseau garĂ©, pas de pad d'atterrissage occupĂ©, pas d'animation d'atterrissage, pas d'animaux de compagnie, pas de speeder, pas de place de joueur occupĂ©e et aucun changement du nombre de joueurs. Pour tous ceux qui sont dans ce monde, il n'y a littĂ©ralement personne. En vol, on traverse les murs (sinon, impossible d'entrer dans une base entiĂšrement murĂ©e), les crĂ©atures ignorent l'observateur, et de toute façon, il ne peut pas tirer.
Observer, c'est observer. L'observateur n'a le droit de toucher Ă rien dans le monde â Ă une seule exception prĂšs : il peut miner des blocs. C'est le seul moyen de faire vraiment disparaĂźtre une construction choquante, et chaque bloc retirĂ© est consignĂ© dans un journal. Dans le chat, l'observateur est muet ; pour se montrer volontairement, il faut une commande Ă part. Et un badge SPECTATOR reste affichĂ© en permanence Ă l'Ă©cran â on ne doit jamais croire par erreur qu'on est en train de jouer normalement.
Pourquoi c'est construit de façon aussi stricte. Deux dĂ©cisions invisibles de l'extĂ©rieur, mais importantes pour nous. D'abord : le rĂŽle d'observateur n'est pas enregistrĂ© dans la sauvegarde, il est recalculĂ© Ă partir de la configuration du serveur Ă chaque connexion. Les sauvegardes peuvent ĂȘtre tĂ©lĂ©chargĂ©es puis remises en ligne ailleurs â un rĂŽle de surveillant enregistrĂ© voyagerait avec elles, jusque sur des machines qui ne nous appartiennent pas. Ensuite : ce n'est pas une option du monde. Le propriĂ©taire d'un monde ne doit pas pouvoir couper la supervision de son propre monde. C'est aussi pour cela qu'elle ne dĂ©pend pas du rĂ©glage « triches d'admin », que les mondes laissent de toute façon dĂ©sactivĂ© par dĂ©faut.
D'abord, trouver oĂč il se passe quelque chose. Pour cela, il y a de nouvelles commandes : /players montre qui est en ligne â et tous ceux qui ont dĂ©jĂ jouĂ© dans ce monde ; /builds montre oĂč quelqu'un a construit ; /where mĂšne jusqu'Ă un joueur ; /goto saute aussi d'une planĂšte Ă l'autre (l'ancienne tĂ©lĂ©portation se contentait de changer les coordonnĂ©es, et on se retrouvait sur la mauvaise planĂšte đ). En plus, une page de synthĂšse dans notre interface d'administration lit directement la sauvegarde du monde : joueurs, constructions et « points chauds de construction » â c'est comme ça qu'on retrouve une maison que quelqu'un a posĂ©e au milieu de nulle part, sans noyau de base. Et chaque cellule modifiĂ©e retient dĂ©sormais qui l'a touchĂ©e en dernier, et quand. Avant de l'intĂ©grer, nous avons mesurĂ© ce que ça coĂ»te en stockage : pas une seule ligne de plus dans la base de donnĂ©es, puisque tout est de toute façon enregistrĂ© cellule par cellule.
Dans les mondes privĂ©s aussi â avec une double serrure. Les premiĂšres versions avaient une faille absurde : l'observateur invisible ne pouvait entrer que dans les mondes publics, sans mot de passe â justement ceux oĂč il se passe le moins de choses. Or les enfants jouent presque toujours dans des mondes privĂ©s, dont le mot de passe circule dans un cercle d'amis. La supervision y a donc dĂ©sormais accĂšs, elle aussi. Pour que ça ne devienne pas une porte dĂ©robĂ©e, l'accĂšs est verrouillĂ© deux fois : il faut un compte d'opĂ©rateur, qui ne peut ĂȘtre créé qu'avec un code secret â et le nom de joueur prĂ©vu pour cela, rĂ©servĂ© dans tout le systĂšme, que personne d'autre ne peut enregistrer ni utiliser pour jouer. S'il manque l'un des deux, il ne se passe rien du tout.
Et puis, les bannissements. Jusqu'ici, c'Ă©tait franchement mal fait : un compte banni pouvait se connecter tout Ă fait normalement, et le mur n'apparaissait qu'au moment de rejoindre un monde â sans raison, sans date et sans moyen de demander pourquoi. Du point de vue du joueur, le jeu Ă©tait tout simplement cassĂ©. DĂ©sormais, la connexion elle-mĂȘme indique oĂč en sont les choses, et il y a une boĂźte de rĂ©ception : « Ton monde a Ă©tĂ© supprimĂ© (raison) », « Ton blocage a Ă©tĂ© levĂ© ». Ce message est Ă©crit au moment mĂȘme oĂč quelque chose se passe â plus tard, l'information n'existe plus : un monde supprimĂ©, eh bien⊠a disparu.
Une pause plutĂŽt qu'un exil. Les bannissements sont dĂ©sormais avant tout temporaires â trois jours par dĂ©faut. Une pause expirĂ©e compte comme « pas banni » Ă chaque point de contrĂŽle, pour que « trois jours de pause » ne se transforme jamais en douce en exclusion dĂ©finitive. L'entrĂ©e reste tout de mĂȘme dans l'historique. Les raisons sont des catĂ©gories fixes (chat, destruction, triche, nom, autre), affichĂ©es traduites en allemand et en anglais â et si une personne ajoute un commentaire, il apparaĂźt mot pour mot, exactement comme il a Ă©tĂ© tapĂ©. Le plus important dans tout ça : le message peut indiquer le jour oĂč l'on est de nouveau le bienvenu.
Les propriĂ©taires de monde peuvent dĂ©sormais modĂ©rer eux-mĂȘmes. Si vous possĂ©dez un monde, vous avez le mĂȘme levier pour votre monde : votre propre liste de bannis, appliquĂ©e aussi sĂ»rement que la nĂŽtre. Elle retient le compte (changer de nom ne sert donc Ă rien) et le nom en jeu (les invitĂ©s de l'arcade n'ont pas de compte du tout). On choisit dans la liste des personnes qui sont vraiment venues dans le monde â taper des noms Ă la main, c'est exactement comme ça qu'on finit par bannir le mauvais enfant. Et comme un bannissement ne dĂ©cide jamais que de la prochaine connexion, on peut aussi expulser : le joueur se retrouve aussitĂŽt dans le menu, avec une raison, dans sa propre langue. Le message part avant que la connexion ne soit coupĂ©e â un jeu modifiĂ© ne peut donc pas simplement l'ignorer et continuer Ă jouer.
Ce que nous n'avons volontairement pas construit. Contre le contournement des bannissements, la solution Ă©vidente serait de reconnaĂźtre l'appareil (« nouveau compte, mĂȘme PC »). Nous l'avons Ă©cartĂ©e, pour trois raisons : l'identifiant change dĂšs qu'on branche une clĂ© USB ou que Windows fait une grosse mise Ă jour ; un jeu modifiĂ© peut le falsifier en cinq minutes ; et des ordinateurs scolaires installĂ©s Ă l'identique se ressembleraient tous. S'y ajoute l'aspect juridique : en Allemagne, lire l'identifiant d'un appareil exige un consentement que les moins de 16 ans ne peuvent pas valablement donner. La supervision ne doit pas devenir de la surveillance. Et encore une rĂšgle inscrite dans le code : le compte d'opĂ©rateur lui-mĂȘme ne peut ĂȘtre ni banni ni expulsĂ© â sinon, on pourrait couper la supervision de l'intĂ©rieur.
Tout cela est dĂ©jĂ dans le code et sera mis en ligne avec la prochaine mise Ă jour du serveur. Nous espĂ©rons sincĂšrement en avoir besoin le moins souvent possible. đ
Commentaires