Football virtuel programmable

Le meilleur
code gagne.

Programmez le cerveau de votre équipe —joueur, tactique et entraîneur— et affrontez les autres dans un simulateur déterministe, sur votre machine ou sur la plateforme en ligne. Vous écrivez la logique ; si vous le souhaitez, l'IA la pilote.

$git clone github.com/GoNNoTDa/PyLeague
IA en option · compatible avec
Claude OpenAI Gemini Bedrock Groq Mistral DeepSeek Ollama (local)
Deux façons de commencer

De l'idée au terrain en 30 secondes

Choisissez votre voie : concourez en ligne sans rien installer, ou clonez le SDK et travaillez en local. Les deux utilisent le même moteur déterministe.

En ligne · sans installation

Créez votre compte, enregistrez vos équipes et jouez matchs et ligues depuis le navigateur. Le moyen le plus rapide de commencer aujourd'hui.

Créer un compte gratuit

SDK local · à votre rythme

Clonez le projet (juste Python 3.13, sans dépendances), copiez le modèle et concourez sur votre machine.

$ git clone github.com/GoNNoTDa/PyLeague
Comment ça marche

Trois cerveaux sur un arbitre impartial

Vous ne déplacez pas les joueurs : vous programmez comment ils décident. Le moteur arbitre de la même façon pour tous et il est déterministe — même seed, même match. L'IA décide à un rythme lent ; une couche déterministe s'exécute à chaque tick, ainsi un modèle n'a pas à réfléchir 20 fois par seconde.

10

Entraîneur

Lit le score et le temps et fixe l'état d'esprit : attaquer, équilibre ou défendre.

rythmelent
6

Tactique

Place l'équipe : hauteur de ligne, largeur, pressing et côté d'attaque.

rythmemoyen
9

Joueur

Décide à chaque tick : se déplacer, passer ou tirer. Rapide et réactif.

chaquetick
Fonctionnalités

Ce qui est déjà sur le terrain

Un prototype fonctionnel, sans esbroufe : ça tourne aujourd'hui.

Moteur déterministe

Physique vectorielle et règles claires. Le même seed reproduit le match exact : des compétitions justes et débogables.

IA multi-fournisseurs

Entraîneur et tactique pilotés par un LLM — il joue déjà de vrais matchs sur Gemini. Changez de fournisseur (Gemini, Claude, OpenAI, Amazon Bedrock, Ollama…) avec une variable d'environnement.

Endurance et sprints

Chaque joueur gère son effort : sprinter et frapper fort fatigue ; à court d'énergie, il court et frappe moins bien. Une couche de plus à programmer dans ta tactique.

Ligue et classement ELO

Fait s'affronter toutes les équipes, produit un classement avec points et ELO, et un rapport HTML prêt à partager.

Statistiques par match

Possession, tirs et tirs cadrés, passes et précision, récupérations et distance. Vous savez quoi améliorer, pas seulement le score.

Sparring pour itérer

Mesurez votre équipe contre plusieurs adversaires sur de nombreuses graines et obtenez un taux de victoire et des moyennes. Vous comparez les changements avec des données, pas des intuitions.

Sandbox isolé

Le code tiers s'exécute dans un sous-processus avec des limites de temps et sans réseau ni disque : sûr pour affronter les équipes d'autrui.

Galerie de tactiques

Tiki-taka, catenaccio, contre-attaque, gegenpressing… des modèles prêts à ajuster.

Visionneuse avec replay

Chaque match se rejoue comme une retransmission : terrain à ~60 fps, tableau d'affichage façon TV, statistiques et commentaires de l'IA.

Python, sans dépendances

Le moteur n'utilise que la bibliothèque standard. Les SDK d'IA sont optionnels. Vous copiez le modèle et démarrez en quelques minutes.

Du vrai code

Une tactique réactive, en quelques lignes

Vous réglez quatre curseurs —ligne, largeur, pressing et focus— en valeurs fixes ou selon le match. Le moteur les traduit en positions.

mi_tactica.py
from aicup.tactics import TacticalStrategy, progress, possession

def contraataque():
    # Sans ballon on se replie ; à la récupération, on se projette.
    def mandos(ctx):
        defendiendo = possession(ctx) == "theirs" or progress(ctx) < 0.45
        if defendiendo:
            return {"line_height": 0.30, "pressing": 0.35}
        return {"line_height": 0.74, "pressing": 0.50}
    return TacticalStrategy("Contraataque", mandos)
Jouez en ligne

Envoyez votre équipe et mesurez-vous à tous

En plus du SDK local, il y a une plateforme web : vous créez votre compte, enregistrez vos équipes et jouez des matchs et des ligues depuis le navigateur, sans rien installer. Chaque match s'exécute isolé sur le serveur et enregistre son replay.

Classement global ELO

Chaque équipe accumule de l'ELO et un historique avec les matchs entre équipes inscrites. Grimpez dans le classement public.

Arènes ouvertes

Des compétitions où chacun inscrit son équipe. Vous rejoignez d'un clic et l'organisateur la joue.

Profil public

Votre page avec vos équipes, votre meilleur ELO, votre bilan et vos replays. Votre parcours, en évidence.

Audit vérifiable · tournois avec prix

Pour chaque match officiel, nous conservons le code exact de chaque équipe (avec son SHA-256), la graine et la version du moteur. Le moteur étant déterministe, n'importe qui peut reproduire le match et vérifier le résultat — sans faire confiance à personne. En ligue, chaque rencontre est auditée une à une.

Replays partageables

Générez un lien public pour n'importe quel match afin de le voir ou l'auditer sans compte. Téléchargez le code et le replay et vérifiez par vous-même.

Ligues avec formats et modèles

Créez des ligues à partir de modèles prêts : divisions par métal (du fer au diamant), par pays ou par continent, ou sur mesure. Vous choisissez le format —minutes, limite de buts, mort subite— et chaque match en hérite.

Invitez et partagez votre ligue

Vous organisez ? Générez un lien d'inscription pour que chacun inscrive son équipe —même si la ligue n'est pas ouverte— et invitez directement des utilisateurs de la plateforme par leur nom.

Versions de tactique et statistiques

Enregistrez plusieurs versions de votre équipe, étiquetez-les et choisissez laquelle joue chaque ligue sans changer votre tactique par défaut. Celle de l'adversaire reste masquée sauf s'il décide de la montrer. Chaque équipe a son historique et ses statistiques.

Le SDK

De zéro à la compétition, en trois étapes

PyLeague est un SDK : tu copies un modèle qui joue déjà bien, tu le fais tien et tu l’améliores en itérant. Tout en local, déterministe et sans dépendances. Première fois ? Passe par l’Académie pour apprendre à programmer ton équipe pas à pas, ou consulte le guide complet dans le dépôt.

01

Clonez le projet

Vous n'avez besoin que de Python 3.13 ou plus. Le moteur n'a aucune dépendance externe.

$ git clone github.com/GoNNoTDa/PyLeague
02

Copiez le modèle

Votre équipe est un dossier à trois couches : entraîneur, tactique et joueur. Commencez par les points marqués et changez une chose à la fois.

$ cp -r equipos/plantilla equipos/miequipo
03

Mesurez, améliorez et affrontez

Jouez et regardez dans la visionneuse avec statistiques. Utilisez le sparring pour mesurer votre équipe contre plusieurs adversaires d'un coup, et créez des ligues avec classement et ELO.

$ python play.py --home equipos/miequipo --away equipos/algoritmos
$ python sparring.py --team equipos/miequipo
$ python league.py
Pour qui

Une ligue qui unit code et compétition

Programmer cesse d'être un exercice en solo et devient un tournoi. Idéal pour :

Communautés dev

GDG, meetups et associations : un défi qui accroche et alimente plusieurs sessions.

Hackathons et défis

Un format compétitif au résultat clair : c'est le meilleur code qui gagne, pas le meilleur pitch.

Formation

Universités et bootcamps : enseignez la logique, l'IA et les structures en jouant à gagner des matchs.

Entreprises

Team building technique et marque employeur avec une ligue interne à vos couleurs.

Offres

Jouez gratuitement. Organisez en grand.

Le SDK est et restera open source. Si vous voulez monter une compétition pour votre événement, nous vous la préparons clé en main.

Pour jouer et apprendre

Open source

0 € / pour toujours
  • Moteur, SDK et documentation complets
  • Statistiques par match et sparring
  • Ligue, classement ELO et visionneuse de replays
  • Plateforme en ligne : comptes, classement global et arènes
  • Replays partageables et audit vérifiable
  • IA multi-fournisseurs en option · utilisez-le et modifiez-le
Créer un compte gratuit
Pour votre événement

Tournoi sur mesure

Sur mesure
  • Organisation de la compétition clé en main
  • Votre marque dans la visionneuse et sur les panneaux du terrain
  • Règles, calendrier et classement à votre convenance
  • Support pendant l'événement
Contactez-nous
À l'horizon

Ce qui arrive

Des idées sur la feuille de route. Elles ne sont pas encore là — nous les mentionnons car elles indiquent où va la ligue, pas pour vous vendre ce qui n'existe pas.

prochainement

Coupes et phases à élimination

Format à élimination avec tableau, en plus des ligues toutes rondes.

prochainement

IA au niveau du joueur

Des consignes par poste que le joueur exécute, en plus de l'entraîneur et de la tactique.

à l'étude

Règles complètes

Touches et corners, hors-jeu et fautes.

à l'étude

Copilote tactique

Décrivez votre plan en langage naturel et il est traduit en code.

à l'étude

VAR cognitif

Un arbitre-IA qui revoit les actions litigieuses.

à l'étude

Isolation renforcée

Conteneur/VM par match pour ouvrir l'exécution publique à grande échelle.

Foire aux questions

Ce que l'on demande souvent

Qu'est-ce que PyLeague ?

Une compétition de football virtuel où l'on ne joue pas avec les jambes mais avec du code : vous programmez en Python le cerveau de chaque joueur, la tactique de l'équipe et les décisions de l'entraîneur, et vous vous affrontez dans un simulateur déterministe.

Faut-il connaître beaucoup Python ?

Non. Vous copiez le modèle inclus —qui joue déjà de façon compétitive— et vous améliorez une couche à la fois. Avec des bases en Python, vous pouvez démarrer en quelques minutes.

Est-ce gratuit ?

Oui. PyLeague est open source et vous pouvez l'utiliser, le modifier et concourir sans frais. Nous proposons seulement des services optionnels pour organiser des tournois sur mesure.

Ai-je besoin d'une clé d'IA pour jouer ?

Non. Le moteur et les équipes d'exemple fonctionnent sans aucune API. L'IA est optionnelle : si vous voulez que l'entraîneur ou la tactique réfléchissent avec un modèle de langage, vous connectez votre fournisseur préféré (Claude, OpenAI, Gemini, Groq, Mistral, DeepSeek ou Ollama en local).

Puis-je organiser un tournoi pour mon événement ou ma communauté ?

Oui. PyLeague s'intègre aux hackathons, communautés de développeurs, formations et événements. Contactez-nous et nous montons une compétition sur mesure.

Sur quels systèmes fonctionne-t-il ?

Sur Windows, macOS et Linux. Le moteur ne nécessite que Python 3.13 ou plus et n'a aucune dépendance externe.

Puis-je concourir en ligne sans rien installer ?

Oui. Sur la plateforme en ligne, vous créez un compte, enregistrez vos équipes et jouez des matchs et des ligues depuis le navigateur. Chaque match s'exécute isolé sur le serveur et enregistre son replay, avec classement global ELO, profil public et arènes ouvertes où chacun peut concourir.

Comment savoir qu'un tournoi avec prix est équitable ?

Parce que chaque match officiel est reproductible : nous conservons le code exact de chaque équipe avec son SHA-256, la graine et la version du moteur. Le moteur étant déterministe, n'importe qui peut tout télécharger et reproduire le match pour vérifier que le résultat est légitime, sans faire confiance à personne. En ligue, chaque rencontre est auditée une à une.

Marques & sponsors

Placez votre marque là où est le talent

PyLeague rassemble des développeurs qui s'affrontent avec du code : un public difficile à atteindre, dans un contexte positif —apprendre et gagner—. Associez-vous à une ligue juste et vérifiable, et faites-le tant que vous êtes encore parmi les premiers.

L'audience difficile à atteindre

Vous touchez des profils techniques —développeurs et étudiants— pendant qu'ils créent et concourent. Parfait pour le recrutement et la marque employeur.

Une vraie visibilité

Votre marque dans la visionneuse façon retransmission, sur les panneaux du terrain et dans les messages de la simulation —et dans chaque replay partagé.

Des formats sur mesure

La ligue de votre communauté ou université, le défi d'un hackathon ou une ligue interne d'entreprise. Vous choisissez l'ampleur.

Confiance vérifiable · des prix au-dessus de tout soupçon

Chaque match officiel est auditable et reproductible : le code, la graine et la version du moteur sont conservés. Un tournoi avec prix sérieux, auquel associer votre marque sans risque réputationnel.

Marque fondatrice

Il n'y a pas encore de sponsors : vous pouvez être le premier. Un emplacement de choix et une relation privilégiée pour qui s'engage avant tout le monde.

VOTRE MARQUE
VOTRE MARQUE
VOTRE MARQUE
VOTRE MARQUE

Exemple : vos panneaux au bord du terrain et dans la visionneuse de chaque match.

Commencez à jouer

Montez votre équipe.
Laissez le code décider.

Créez votre compte et concourez en ligne en quelques minutes, ou clonez-le et jouez en local. En mode basique, il fonctionne sans API ni configuration.

$python play.py  ·  python sparring.py  ·  python league.py