Connexion Premium

Epic lance Lore, un système de contrôle de version dédié au jeu vidéo et open source

Epic lance Lore, un système de contrôle de version dédié au jeu vidéo et open source

L’éditeur Epic Games vient de publier sur un dépôt GitHub un nouveau système de contrôle de version (VCS) à destination du monde des jeux vidéo. Il cible les développeurs et cherche à résoudre des problèmes spécifiques liés aux très gros fichiers.

Lore est le nouveau système de contrôle de version open source (sous licence MIT, très permissive) officiellement lancé par Epic Games lors de l’Unreal Fest de juin 2026. Il a mûri en interne en tant que brique sous-jacente du framework Unreal Revision Control au sein de l’écosystème UEFN (Unreal Editor for Fortnite).

« Lore est un système conçu pour une évolutivité sans précédent des données et des équipes, dont la maintenance est assurée par Epic Games. Il est optimisé pour les projets, notamment les jeux et le divertissement, qui combinent du code et de grandes ressources binaires. Il répond aux besoins des développeurs comme des artistes », indique Epic sur la page du projet.

Des problématiques spécifiques

Lore se présente donc comme un VCS axé sur le contenu. On peut l’installer sur Windows, Linux et macOS, et il dispose d’une version serveur que l’on peut utiliser localement ou transférer vers des infrastructures cloud. Attention tout de même, il ne s’agit pas encore d’une version finale. La bêta est lancée à des fins de tests, mais les API peuvent encore changer, ce qui pourrait introduire des cassures plus tard. À manier avec précaution donc, même si Epic affirme qu’une « compatibilité ascendante stricte s’appliquera ».

Sur le site du projet, Epic cite des solutions existantes comme Git, Perforce ou encore Mercurial/Sapling. Pourquoi une autre solution ? Epic répond : parce qu’aucune des actuelles ne fait vraiment tout. La souplesse de Git est louée, mais les fichiers binaires y sont considérés comme des « citoyens de seconde zone » selon l’éditeur et il manque de capacités pour le travail collaboratif. Perforce est vu comme puissant, mais lent à cause des allers-retours avec le serveur pour des opérations standard. Mercurial et Sapling ont une architecture distribuée efficace mais, comme Git, le texte a la priorité sur les autres ressources.

Lore propose donc une autre approche, centrée sur la conception de jeux vidéo et les besoins spécifiques de l’industrie. La conception binaire est au premier plan, avec une architecture « spac-by-construction » qui ne télécharge que les fragments nécessaires de données depuis le serveur pour limiter les échanges (lazy loading). On y trouve aussi une élimination des révisions partiellement appliquées, des états intermédiaires invisibles pour qui n’a pas besoin de les voir, ainsi qu’une API pouvant fonctionner avec C/C++, C#, Rust, Go, Python et JavaScript.

Une orientation API

Cette architecture est « multi-tenant » (multi-locataire) : elle est pensée pour les dépôts multiples et le travail collaboratif. Son moteur de stockage intègre une déduplication au niveau des blocs de données.

Un serveur Lore peut ainsi héberger plusieurs dépôts, ne stockant les octets qu’une seule fois si une même ressource binaire volumineuse est partagée entre plusieurs projets ou développeurs. L’ensemble fonctionne avec une isolation cryptographique pour empêcher un locataire d’accéder aux données d’un autre (ou de les déduire). Si Lore maintient un mécanisme de branches libres à la Git, il permet aussi de verrouiller les fichiers en amont pour empêcher les conflits insolubles avant qu’ils se produisent.

Lore se distingue également de Git (dont il s’inspire largement) et de son orientation fondamentalement CLI (ligne de commande) par une conception centrée sur les API. Le cœur du système se veut extensible grâce à des liaisons natives pour les mêmes langages que ceux cités précédemment.

Ce qui n’empêche pas Epic de fournir une interface en ligne de commande, mais un client de bureau multiplateforme est proposé. Des tiers spécialisés dans le pipeline de production numérique, à l’image d’Anchorpoint, développent déjà des clients graphiques Lore spécialisés pour intégrer la prévisualisation et le diffing visuel de formats 3D et 2D complexes.

D’autres informations et des liens de téléchargement sont aussi disponibles depuis le dépôt GitHub du projet. Epic fournit, entre autres ressources, un guide d’installation et de première configuration d’un dépôt. L’éditeur indique dans sa FAQ que les évolutions prévues intègrent « des flux de travail pour les grands référentiels étendus (VFS, Windows Service), l’intégration OAuth, le verrouillage évolutif, la réplication multiserveurs, des hooks côté client et côté serveur, un plug-in VS Code ainsi qu’un client de bureau et un client web open source ».

Commentaires (17)

votre avatar
Très intéressant. C'est vrai que Git n'est pas bien adapté aux fichiers binaires. Ca pourrait améliorer la situation pour le suivi de versions de projets faits sur FPGA
votre avatar
Question d'un utilisateur git:
Comment se comporte subversion (svn) sur les fichiers binaire ?
votre avatar
Le problème de git, ce n'est pas tant les fichiers binaires que la taille des fichiers. Git est conçu pour le suivi des modifications pour des fichiers source, par nature plutôt petits individuellement.

Avec les bundler par exemple, on arrive vite à des fichiers JS/CSS de plusieurs Mo. Et on rencontre les mêmes problématiques qu'avec les fichiers binaires, mais avec des fichiers texte ;)
votre avatar
Pour des fichiers texte, git se contente de stocker la différence entre les versions.
Pour les binaires, il est obligé de stocker les versions successives en entier.
Oui, ça grossit vite.

(et pour les tatillons, l'unité de travail de git n'est pas le fichier, je vous laisse aller lire la doc plutôt que de dire n'importe quoi)
votre avatar
Pour des fichiers texte, git se contente de stocker la différence entre les versions.
Quand on procède au compactage, oui, il peut le faire. Mais sinon, les fichiers stockés sont les fichiers tel quel, juste nommé en fonction du hash de leur contenu.
(et pour les tatillons, l'unité de travail de git n'est pas le fichier, je vous laisse aller lire la doc plutôt que de dire n'importe quoi)
Alors ça a changé, car a une époque, c'était ça. Mais du coup, ça me donne envie de faire mon curieux...
votre avatar
Je suis allé faire un tour sur le net.
Si vous avez des binaires à versionner:

  • subversion le fait bien (j'ai donc eu confirmation de ce que je pensais)

  • Il semble que Fossil le fait (gestionnaire de version de l'équipe sqlite)

  • Il existe des plugins git, tel que git-lfs



Ça ne veut pas dire que Lore est totalement inutile, mais que cette fonctionnalité n'est pas forcément une raison pour se précipiter dessus.
votre avatar
De mon côté, au boulot, git-lfs marche bien. RAS, il fait le taf. Simple et efficace.
votre avatar
Les sources du client desktop ne sont pas disponibles pour l'instant... ça commence mal pour le côté "open source".
votre avatar
Est-ce que des APIs côté client sont disponibles ?
votre avatar
Je ne vois pas trop l'intérêt d'embarquer les assets dans le même version control que le code source du jeu... Ce sont des éléments avec des cycles de vie tellement distincts et gérés par des personnes différentes, pourquoi mélanger les genres et les cycles de progression? N'aurait-on rien appris au cours des 15 dernières années au niveau CICD?
votre avatar
Effectivement pour le code git fait déjà bien le job.
Mais là l’intérêt c'est d'avoir une solution pour versionner les assets je pense, bref un outil plutôt à destination des membres des équipe artistique qui ont aussi besoin de gérer l'évolution de leur fichiers quand ils travaillent à plusieurs.
Perforce cité dans l'article est assez populaire pour ça.
votre avatar
Parce qu’il y a des dépendances fortes entre le code et les assets ?

Comme tu dis ce ne sont pas les mêmes personnes qui travaillent dessus. En mettant tout dans le même repo tu t’assures qu’une même branche est toujours cohérente en ce qui concerne les dépendances entre le code et les assets.

Si quelqu’un modifie ou renomme un asset et que le projet ne peut plus fonctionner tu as envie que ça casse.

Pour moi t’as vraiment pas envie que le code et les assets vivent leur vie chacun de leur côté, encore plus quand les équipes ne bossent pas strictement ensemble parce que ça veut dire que tu n’es jamais sur que ton tout soit cohérent.
votre avatar
Tu peux aussi stocker tes assets dans un système de contrôle de version pour objets et résoudre l'ensemble des liens logiciel->assets en phase de composition du délivrable de ton cicd.
C'est vraiment pas difficile de faire les choses bien avec les cons outils si on prend un peu le temps de mettre ses processus et pipelines correctement en place, mais bon, nous somme dans une course au chaos où chaque problème se doit d'être réglé avec un produit, si possible différent et incompatible.
votre avatar
Je vois surtout une tentative d'Epic de se positionner comme une crèmerie avec enfermement encouragement à rester dans l'écosystème que l'entreprise impose préconise autour de son produit Unreal Engine.

Ce n'est pas Git qui aurait un problème avec les fichiers binaires, c'est les fichiers binaires qui ont par nature un problème avec un système de gestion de sources

Comment fait-on un différentiel entre deux fichiers binaires ? Comment les édite-t-on ?
On ne fait pas : on les recompile à partir de sources.
Le patch de binaire ne se fait qu'en rétro-ingénierie, lorsque l'on n'a pas accès aux… sources.

Rien n'empêche d'indexer tout ce que vous souhaitez dedans, y compris dont images ou des vidéos, mais cela va vous polluer l'arbre.

La question de fond qui est posée : un système de gestion de sources, texte par nature, est-il adapté pour gérer autre chose que du texte ? La réponse est dans la question.
Rien n'empêche de versionner des actifs techniques statiques (images, vidéos, modèles 3D, etc.) avec un mécanisme complémentaire adapté et d'avoir vos plomberies CI/CD se charger de l'orchestration.
Que la conclusion soit de remplacer Git pour la partie source me semble une cassure dans la logique dont les raisons sont à aller chercher ailleurs… cf. ma première ligne.

Qu'est-ce que l'un des points de la philosophie UNIX, déjà ?
Faite une chose, et faite-là bien
?
votre avatar
Comment fait-on un différentiel entre deux fichiers binaires ? Comment les édite-t-on ?
Faut dire aussi qu'il y a binaire et binaire.

Un fichier ZIP est un binaire, pourtant, c'est assez facile de faire un diff d'un ZIP à partir d'un autre ZIP. Je prend ZIP, mais tout format conteneur fonctionne (7z, tar, rar, etc.). Ce qui est assez fréquement le cas avec des assets par exemple.

Et il n'est pas rare d'avoir des fichiers conteneurs, y compris dans le multimédia (par ex. ce n'est pas trop difficile de mettre à jour l'audio d'une langue pour une vidéo suite à une erreur de traduction sans avoir à restocker en entier la vidéo).
votre avatar
"Faut dire aussi qu'il y a binaire et binaire."
C'est pas très 2026 comme phrase :humour:
votre avatar
ça fait pas mal d'année qu'on attend ça dans le milieu, donc ça fait plaisir de voir un acteur qui s'y attaque sérieusement !
git +lfs => une galère pour les artistes et une galère pour nettoyer certains binaire temporaires qui coutes ad vitam eternam
perfoce => ils ont fumé sur les tarifs et vite "lent"
scm => un poil cher pour une equipe moyenne, mais globalement correct ( racheté par unity)
svn => un peu Vieillot mais qui fait le taf sur une petite equipe.