Mastodon
Le 1er site en français consacré à l'histoire des jeux vidéo
Kaillera - comment ça marche ?
Un résumé de toutes les informations à connaître sur ce logiciel permettant de jouer en réseau distant à des jeux rétro émulés, et une interview de Ben, qui dirige la Lyon League, club lyonnais de jeux de combat.
Par Kaede (30 juillet 2007)

La naissance de Kaillera

De 2001 à 2003, un Français du nom de Christophe Thibault développe un programme permettant l'utilisation d'émulateurs en réseau. Il lui donnera le nom ironique de Kaillera (sic).

C'est un garçon ou une fille?

Kaillera est en fait un middleware : pour pouvoir l'utiliser, il faut un émulateur auquel il soit intégré. A ce jour, plusieurs émulateurs ont des versions alternatives officieuses (1) ou officielles (2) qui incluent Kaillera, ou le font directement dans leur version de base (3).

  • (1) Final Burn Alpha, MAME32k...
  • (2) Gens...
  • (3) Winkawaks...

On citera également WinUAE 0.8.23 Kaillera, mais aussi des émulateurs plus récents comme EPSXe ou 1964 (liste non exhaustive).

Comment cela fonctionne?

Kaillera repose sur une architecture client-serveur et se compose, donc, d'un programme client et d'un programme serveur. Le principal avantage de cette architecture est le nombre élevé de joueurs pouvant évoluer dans une même partie, en tant que participants ou simples spectateurs. Une architecture peer-to-peer, comme celle de Zsnes/ZBattle ne permet pas cela. Chaque joueur utilise un client, qui est son émulateur dans sa version Kaillera, auquel il est adjoint une dll (kailleraclient.dll).

Le programme serveur est un simple exécutable configurable très simplement à l'aide d'un fichier .ini joint. Héberger son propre serveur Kaillera public, sur Internet - ou privé sur un LAN - est donc d'un simplicité enfantine. Le tout est téléchargeable sur le site officiel de Kaillera

Le site officiel, assez minimaliste, comme vous pouvez le voir. Kaillera est utilisé dans le Monde entier : notez les serveurs chinois dans la liste ci-dessus.

Vous aviez bien dit MAME ? Comme c'est MAME...

Il existe en effet plusieurs builds Kaillera du plus populaire des émulateurs de jeux d'arcade. MAME Kaillera tourne très bien et bénéficie de mises à jour régulières. Cependant (ouvrons une parenthèse)... Kaillera est mono plate-forme : Windows ou rien. On peut donc l'oublier pour les versions Linux de MAME ou de tout autre émulateur... De plus Kaillera est closed-source (on n'a pas accès à son code source, ce qui le rend non-modifiable sans l'accord de son auteur).

Kaillera a été développé séparément de MAME et il semble que les relations aient été mauvaises avec la MAME team. Le site de Kaillera propose en téléchargement des versions de MAME32k auxquelles sont intégrées Kaillera. Outre le fait que ce genre de builds "attireraient la mauvaise foule" (sic) et malgré ce que prétend la FAQ du site officiel de Kaillera, ces distributions de MAME modifiées pour utiliser des composants closed-source vont à l'encontre de sa licence, sans compter que certaines versions de MAME32 Kaillera sont modifiées pour pouvoir lancer certains jeux non supportés dans MAME en ligne de commande. Pour ces raisons et peut-être d'autres, la MAME team n'est pas copine avec Kaillera et certains sont contre l'idée même de l'intégration du jeu en réseau à leur émulateur. Toutefois, la licence n'interdit pas l'idée (http://mamedev.org/license.html).

Ce faux départ peut être une des explications de la mauvaise réputation de Kaillera, ce qui est dommage car l'utilisation d'Internet comme salle d'arcade virtuelle est une idée des plus séduisantes. Certains builds récents ne fournissant pas le fichier kailleraclient.dll avec l'émulateur, ils ne transgressent donc plus la licence de MAME et c'est tant mieux (refermons la parenthèse)...

Et, en pratique?

Interface graphique de Kaillera. En bas, la liste des parties démarrées ou en attente. En haut à gauche, l'interface de chat, et en haut à droite, la liste des joueurs. La liste des serveurs reste toujours en arrière-plan.

Les émulateurs intégrant Kaillera ont en général un raccourci "kaillera netplay" ou autre intitulé similaire pour accéder à la liste des serveurs. Une fois ce menu ouvert, le client interroge le master server, sorte de "serveur des serveurs". Les serveurs communiquent avec lui, ce qui lui permet de construire cette liste.

Contrairement aux jeux multijoueurs actuels, pensés pour le réseau, 99% des jeux arcade et consoles des années 80 et 90 n'ont pas été envisagés comme support de jeu à distance et n'ont donc pas de code réseau propre. Kaillera agit donc comme une surcouche par rapport à l'émulateur : en UDP*, il communique à tous les joueurs de la partie les frappes de touches effectuées par chacun des joueurs. Ce système est très optimiste. Il souffre aussi, pour MAME, des problèmes de playback et record input de certains jeux (tout de même très rares).

*UDP est un protocole de transport fonctionnant en mode non-connecté (analogie avec la boîte au lettre). Autre protocole largement utilisé, TCP, lui, fonctionne en mode connecté (analogie avec le téléphone). UDP est plus rapide mais n'a pas d'accusé de réception sur les paquets envoyés, il vérifie juste leur intégrité.

Anthologie des malheurs de Kaillera.

"Pourquoi ma partie n'a-t-elle de cesse de se fermer toute seule?"
Vous êtes sans doute une malheureuse victime d'un hacker minable. Kaillera étant à la base non-modéré (et quasiment non modérable !), les script-kiddies s'en donnèrent à coeur joie en exploitant des failles datant de la dernière version officielle du serveur Kaillera (2003). Heureusement, Emulinker résoudra le problème par la suite - voir partie évolutions pour plus de détails.

"Il y a du lag !"
Kaillera est très sensible au ping (mesure du temps pour l'aller-retour d'une donnée vers un serveur ou plus généralement une machine). Avec une bonne connexion Internet, il est possible pour un Européen de jouer sur un serveur américain avec des joueurs d'Amérique du Nord : avec des ping asymétriques de l'ordre de 15ms et 90-100ms, le lag est très perceptible mais certains jeux restent praticables dans des conditions correctes. Au delà, on tombe vite dans l'insupportable. Jouer contre un adversaire aux antipodes dans de très bonnes conditions - ce que permettent des jeux pensés à l'origine pour le réseau pour peu que leur code soit bien optimisé et qu'on ait une bonne connexion Internet - est donc impossible avec Kaillera pour une raison simple : à la vitesse de la lumière, l'aller-retour New York - Tokyo prendrait 72ms (millisecondes). Toutefois, dans les jeux ne requérant pas une précision ou une rapidité conséquentes, le lag n'est pas une gêne.

Malgré tout le mal qu'on pourra dire du code réseau de Kaillera, il faut garder à l'esprit que son code est complètement indépendant des émulateurs qui l'utilisent. Kaillera ne "sait pas" à quoi correspondent les pressions de touches dans le jeu, leur effet, comment revenir de façon simple à un état cohérent en cas de problème, ni tout un tas d'autres informations dont dispose le code réseau des jeux actuels.

"C'est lent!"
Lorsque la connexion joueurs / serveurs est vraiment très mauvaise, il arrive que le jeu tourne sensiblement plus lentement qu'en temps normal (sans doute pour ne pas désynchroniser ?).

"C'est normal que tu fasses n'importe quoi, là?"
Comme nous l'avons vu, le système utilisé par Kaillera est très optimiste. Si pour une raison donnée un joueur ne reçoit pas certaines information de pression de touches des autres joueurs, il sera désynchronisé : la partie évoluera différemment chez lui de chez les autres joueurs. La seule solution est alors de redémarrer la partie (ou le jeu - faire un reset logiciel dans l'émulateur).

Les problèmes décrits ci-dessus sont le côté obscur de Kaillera. Ne vous découragez pas, il est possible de jouer des heures durant sans problèmes ni prises de tête ! Le mieux à faire est de jouer sur un bon serveur contre un adversaire doté d'une bonne connexion, et de voir si le jeu tourne bien. Quand le lag menace, il ne faut pas hésiter à quitter le serveur et s'y reconnecter car, aussi étrange que ça puisse paraître, avec la même personne sur un même serveur, la latence n'est pas toujours la même.

Avouons-le : pour tout joueur un tant soit peu rapide, un jeu extrêmement nerveux comme Magical Drop 3 est totalement impraticable avec Kaillera. Autre exemple : Vampire Savior, un des jeux de combat les plus rapides, requiert d'excellents temps de réponse des commandes sous peine de voir son gameplay ruiné. Passer de bons moments sur Kaillera exige donc d'avoir une bonne connexion Internet, de choisir, en fonction de cette dernière, des jeux praticables et, pourquoi pas, de tomber sur une personne polie et/ou fair-play (ou mieux encore, de jouer avec des connaissances du net ou de la "vraie vie"). Pour être tout à fait réaliste, ce n'est pas toujours le cas, mais quand ça l'est, on peut oublier les désagréments du jeu en ligne pour profiter de tous ses avantages. Prenons à titre d'exemple les sessions Kaillera qui ont été organisées sur Grospixels via la section Grospixels Arena du forum : toutes ne se sont pas passées à merveille, problèmes de lag ou de configuration d'émulateur/roms oblige, mais certaines furent tout à fait sympathiques!

Il suffit de comparer la croissance des salles d'arcade à celle du nombre de connectés à Internet pour saisir l'intérêt de Kaillera, des fonctions qu'il propose ou qu'il laisse entrevoir. On n'a pas en France de nombreux "game centers" au crédit bradé comme au Japon, ni de tournois vraiment très fréquents... malgré quelques iniatiatives dont je reparlerai plus loin, mais qui restent très timides.

Pour info, 87,3 % des internautes français étaient connectés en haut débit à domicile en juillet 2006, soit une augmentation de 41% par rapport à juillet 2005 (source : www.internet.gouv.fr). Ainsi, alors que trouver une salle d'arcade très peuplée peut aller du difficile à l'impossible, beaucoup de joueurs ont un accès à Internet... et la possibilité d'utiliser Kaillera.

A l'heure où, tout au moins en France, le jeu collectif en arcade est mort, Kaillera se pose donc, via MAME, comme une alternative décente aux rencontres en salle, mais permet aussi de passer quelques bons moments entre connaissances sur jeux console comme l'on passe une soirée entre amis sur jeux multijoueurs console, les chips et la bière en moins. Mais, me direz-vous... où trouve-t-on les joueurs ? C'est une excellente question et j'allais y venir...

Communauté?

Il existe une bonne centaine de serveurs Kaillera dont beaucoup sont en ligne 24h/24. Sur les serveurs les plus peuplés, il arrive que plus de 50 joueurs soient connectés simultanément.

La communauté Kaillera est très accueillante malgré les apparences.

Ce n'est pas de trop : on peut obtenir une liste de parties en attente sur l'ensemble des serveurs mais elle n'est pas pratique à l'usage. De fait, on peut attendre longtemps qu'un joueur rejoigne notre partie si l'on a sélectionné un jeu qui ne fait pas l'unanimité - les jeux les plus pratiqués étant ceux de combat 2D : KOF, Marvel VS Capcom et autres Garou Mark of The Wolves...

Kaillera a connu quelques périodes creuses quand le master server (ainsi que le site Kaillera) était devenu indisponible - une fois pendant plusieurs mois. Il n'était plus possible d'obtenir la liste des serveurs, les sites et les joueurs s'étaient alors organisés alors pour échanger des adresses de serveurs, ou montaient leur propre serveur le temps de quelques parties.

Certains serveurs sont personnels et d'autres sont associés à des sites. Il existe quelques sites de ressources pour Kaillera, proposant des tutoriels, des téléchargements de fichiers ou offrant aux joueurs un espace de discussion. Ils se comptent sur le doigt de la main mais ont le mérite d'exister. Le nombre modéré de joueurs peut faire regretter que ces sites soient assez cloisonnés, ainsi, un tournoi sur l'un a peu de chances de ramener des joueurs d'un autre.

Enfin, le site Kaillera.com est doté d'une FAQ et d'un forum au niveau d'activité qu'on pourrait qualifier de modeste *tousse*. On y trouve néanmoins des informations utiles concernant, par exemple, les nouveaux builds de MAME Kaillera, ou des nouvelles sur des développements.

Evolutions et développements parallèles

Le développement de Kaillera s'est arrêté pour le client à la version 0.9 (14 avril 2003) et pour le serveur à la 0.86 (15 février 2002). C. Thibault a alors travaillé sur d'autres projets. Il a d'ailleurs disparu du forum peu après, bien qu'il lui soit arrivé de poster à titre exceptionnel. Comme Kaillera est closed-source, la reprise du projet s'en trouve compliquée. Le dernier post de C. Thibault, de juin 2006, concerne la vente de Kaillera à l'israélien Etai Hugi. Ce dernier a posté en novembre 2006 pour annoncer que des améliorations de Kaillera étaient à venir. On y croit et on souhaite bon courage à lui et son équipe.

Entretemps, d'autres développements relatifs à Kaillera ont vu le jour, en voici les principaux :

  • Emulinker, un programme serveur Java compatible avec le serveur Kaillera d'origine, corrigeant des failles de sécurité, permettant une configuration plus précise des serveurs et une vraie modération. La 1.0, première version stable, a vu le jour en mai 2006, un an après la première bêta. Le revers de la médaille avec Emulinker est l'accentuation du lag, sur certains serveurs, mais peut-être s'agit-il d'un problème de configuration desdits serveurs...
  • Un autre projet prometteur s'intitule Open Kaillera. Il s'agit cette fois-ci de versions alternatives open-source d'un client et d'un serveur rétrocompatibles avec Kaillera. Passé par plusieurs mains, le projet a été repris par "killercivilian". Le projet semble à un stade encore assez expérimental, à savoir, rien d'intéressant pour le joueur mais seulement pour le programmeur. A noter que ce projet est justement en recherche de programmeurs : je vous renvoie à la page d'Open Kaillera chez SourceForge : http://sourceforge.net/projects/okai.

Je terminerai en laissant la parole à Ben, président du club Lyon League (club lyonnais de jeux de combat), qui a accepté de répondre à mes questions sur l'arcade et le versus en France :

Q : Que penses tu de l'arcade et du monde du versus 2D en France toi qui est un gros joueur et a été organisateur de tournois ?
R : L'arcade en France jouit d'une très bonne image parmi les joueurs réguliers ou confirmés chez nous. C'est toujours un créneau qui fait rêver les passionnés de longue date. Ces joueurs ont tous plus ou moins le même profil (bien qu'issus de milieux très variés) et représentent donc une clientèle relativement fiable pour qui veut proposer un service comparable à un game center japonais. Malheureusement, nous pouvons constater que le marché de l'arcade en France est sinistré et plus ou moins mort dans certaines régions. Peu d'entreprises proposent encore ce genre de prestation et il faut le dire, parfois dans des conditions médiocres et à des prix exorbitants.

Q : Selon toi l'arcade c'est vraiment mort alors ?
R : D'un point de vue de joueur PAS DU TOUT ! Il reste des tonnes de joueurs passionnés qui ne passent leur temps qu'à assouvir leur passion de l'arcade. Certains vont même jusqu'à reproduire des salles chez eux avec parfois du matériel encombrant et très coûteux ! C'est preuve que la passion est toujours là. Au niveau du jeu de combat 2D certains s'équipent de systèmes d'arcades et d'autres font avec les rares conversions sur consoles de salon proposés. D'autres vont jusqu'à dépenser de véritables fortunes dans des jeux exclusifs au marché de l'arcade japonais pour assouvir leur passion. C'est donc que dans le coeur des fans c'est une passion de tous les jours qui n'a pas encore dit son dernier mot. Je suis certain que les week-ends/soirées à jouer sur les Street Fighter et autres shoot'em ups seront encore nombreux.

Q : Que manque-t-il à l'arcade en France alors ?
R : Assurément il y a un élément qui manque : celui de la réunion des joueurs. Pour ce qui est de l'arcade et des jeux de combats l'intérêt n'est pas de jouer seul, mais à plusieurs. Il faut donc réunir les joueurs pour pouvoir profiter pleinement de ce type de jeu. C'est là qu'interviennent les tournois. Mais pas seulement ! Beaucoup de fans d'arcade se réunissent régulièrement à condition bien entendu qu'ils se soient au préalable déjà rencontrés. Il apparaît alors un problème important : faire se rencontrer les nombreux passionnés d'arcade afin qu'ils puissent pleinement en profiter. Et cela n'est pas toujours simple. Il y a de nombreuses contraintes comme le coût du déplacement qui en refroidit plus d'un. Surtout lorsqu'il faut traverser la France pour un tournoi très court dont l'issue est fortement incertaine.

Q : Que penses-tu du jeu en ligne ? N'est-ce pas une solution à ce problème ?
R : En théorie oui ! Beaucoup des gens témoignent dans ce sens. On entend souvent les joueurs rêver à voix haute du jour ou les connexions seront tellement rapides que le joueur semblera présent à côté de vous. Seulement nombreux sont les jeux d'arcades (si ce n'est tous) ou le temps de réaction du joueur est un élément déterminant de la partie. Ce facteur se voit souvent gâché par des contraintes techniques douteuses qui font vraiment que le ressenti sur un jeu de combat, par exemple, n'est pas le même. Pour ma part, mon point de vue est le suivant. Avec Kaillera sur un jeu tel que Vampire Savior je ne retrouve absolument pas ce qu'une partie peut être sur un CPS2 avec un adversaire à 30 centimètres de moi. Vitesse initiale du jeu, réaction du personnage, timings tout est différent. Et cela s'explique parfois par une combinaison de facteurs que seul un ingénieur en informatique serait capable d'assimiler. Mes essais ont été nombreux et tous très décevants c'est pourquoi je n'utilise pas ce moyen pour jouer.

Merci Ben!

Kaede
(30 juillet 2007)