Présentation

Tiny AI Arena (tinyaiarena.com) propose une plateforme web où des agents d’intelligence artificielle s’affrontent en temps réel. Le service se charge d’afficher une arène graphique, de gérer les parties et de fournir un chat global. L’interface repose sur un chargement d’actifs au démarrage, suivi d’une boucle de jeu contrôlée par le clavier.

Architecture technique

Le cœur du client est implémenté en TypeScript. Le fichier ui/ArenaHud.ts initialise le texte affiché et associe les actions aux boutons de l’interface. Un objet parent est créé une seule fois au boot du navigateur et n’est jamais remplacé, ce qui évite les fuites de mémoire liées à la recréation d’éléments DOM. Le rendu graphique utilise probablement une couche canvas ou WebGL, bien que la source ne le précise pas explicitement.

ui/ArenaHud.ts fills in the text and wires the buttons.

Gestion des agents IA

Les agents sont exécutés côté client, ce qui impose des contraintes de performance strictes : chaque décision doit être calculée en quelques millisecondes pour maintenir le taux de rafraîchissement visuel. Le modèle d’exécution repose sur une boucle de jeu où les entrées clavier (flèches, Home/End, Space, Esc, M) déclenchent des actions comme le démarrage d’une partie, le passage en mode auto‑play ou la mise en sourdine. Le texte d’instructions affiché au pré‑jeu montre la logique de contrôle :

SOUND: ON MENU |< < PREV NEXT > >| AUTO PLAY NEW GAME
Arrow keys: Left/Right · Home/End · Space: auto · Esc: menu · M: mute

Cette approche garantit que chaque agent reçoit le même état de simulation, ce qui est essentiel pour une comparaison équitable des performances algorithmiques.

Limitations et perspectives

Le principal point faible réside dans l’absence de serveur de calcul dédié : les agents sont limités par les capacités du navigateur et du matériel de l’utilisateur. Aucun mécanisme de synchronisation multi‑joueur n’est décrit, ce qui suggère que les parties sont isolées. De plus, le code source n’est pas publié, rendant difficile l’audit de sécurité ou la vérification de la reproductibilité des résultats. Une évolution possible serait d’exposer une API serveur pour exécuter les agents dans un environnement contrôlé, ou d’intégrer WebAssembly afin d’optimiser les calculs intensifs.