Verse
Verse, le langage UEFN : guide débutant en 2026
Comprendre la philosophie du langage maison d'Epic et écrire votre premier device sans bagage en programmation.
- Catégorie
- Verse
- Niveau
- Débutant
- Temps de lecture
- 11 min
- Mis à jour
- MAJ 26 avril 2026
Verse est le langage de programmation conçu par Epic Games pour Unreal Editor for Fortnite. Sorti en bêta en 2023 avec UEFN, il a vocation à devenir à terme le langage de scripting pour tout l'écosystème Epic, Fortnite compris, mais aussi potentiellement Unreal Engine au sens large.
Verse n'est pas un langage de plus pour faire du gameplay. Sa philosophie est radicalement différente de Lua (Roblox), JavaScript ou C# (Unity). Il vise la correction par construction : si votre code compile, certains bugs deviennent littéralement impossibles. Cette force a un coût : la courbe d'apprentissage est plus raide qu'en Lua, surtout si vous n'avez jamais touché à un langage fonctionnel.
Ce guide vous donne les bases pour ne pas être perdu, écrire votre premier device, et savoir où chercher la documentation officielle.
01Qu'est-ce que Verse, vraiment
Verse est un langage statiquement typé, fonctionnel-orienté-objet et event-driven, conçu spécifiquement pour les jeux multijoueurs. Trois choses le caractérisent.
Statiquement typé : chaque variable, chaque paramètre de fonction a un type connu à la compilation. Vous ne pouvez pas passer une chaîne de caractères là où le compilateur attend un entier. Erreur attrapée avant que la map tourne en prod.
Fonctionnel-orienté-objet : vous avez les classes (comme en C#) et l'héritage, mais aussi des fonctions de premier ordre, du pattern matching, et un système de failable expressions qui ressemble aux Maybe d'Haskell ou Option de Rust. Le code de gameplay se lit souvent comme une suite de transformations sur des données plutôt qu'un script impératif ligne par ligne.
Event-driven : Verse a une notion native de temps. Une fonction marquée <suspends> peut s'arrêter, attendre un événement (un joueur appuie sur un bouton, 5 secondes passent, une condition devient vraie), puis reprendre. Cette mécanique remplace les coroutines de Lua et les async/await de JavaScript.
02Pourquoi Epic a créé un nouveau langage
La question est légitime : pourquoi pas Lua, Python ou C# ?
Tim Sweeney, fondateur d'Epic, en parle ouvertement depuis des années. La réponse tient en trois points.
-
La sécurité. Sur une plateforme massive comme Fortnite, du code joueur s'exécute sur les serveurs d'Epic ou sur les machines des autres joueurs. Verse est conçu pour qu'un script malveillant ne puisse pas faire planter le serveur, lire la mémoire d'autres joueurs, ou contourner les règles du jeu. Ce niveau de garantie est plus dur à obtenir avec Lua ou JavaScript en environnement non-contrôlé.
-
La performance déterministe. Les langages dynamiques (Lua, JS, Python) sont rapides à écrire mais imprévisibles à l'exécution : une fonction peut être lente à un moment, rapide à un autre. Verse, statiquement typé et compilé, donne des performances stables, prévisibles, et ouvre la porte à des optimisations agressives par le compilateur.
-
La concurrence native. Un jeu en ligne, c'est mille événements simultanés (joueurs qui bougent, projectiles qui volent, scores qui se mettent à jour). Verse a été pensé dès le départ avec des opérateurs de concurrence (
spawn,race,sync,branch). Là où Lua a besoin de coroutines manuelles et où JavaScript a empilé Promise puis async/await par-dessus son modèle initial, Verse part d'une feuille blanche.
03Votre premier programme Verse
Voici le Hello World canonique de l'UEFN. Créez un nouveau fichier hello_vortex.verse dans votre projet, collez ceci :
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
# Un device est une classe Verse qui peut être glissée dans la scène UEFN.
hello_vortex_device := class(creative_device):
# OnBegin est appelé automatiquement quand la map démarre.
# <override> indique qu'on remplace la version par défaut.
# <suspends> indique que la fonction peut s'interrompre dans le temps.
OnBegin<override>()<suspends>:void=
Print("Hello, Vortex !")
Compilez le projet (raccourci Ctrl + Shift + V), retournez dans UEFN, glissez le device hello_vortex_device depuis le content browser dans la scène. Lancez une session test, regardez la console output : Hello, Vortex ! apparaît dès que la partie démarre.
Décortiquons.
04Les concepts de base à comprendre
Pour aller plus loin que le Hello World, six notions à intégrer.
Variables et constantes
score : int = 0 # constante
var hp : int = 100 # variable mutable
hp = 80 # autorisé
score = 5 # erreur de compilation
Fonctions
add(a : int, b : int) : int = a + b
Pas de mot-clé function ou def. Le nom, les paramètres typés, le type de retour, puis = et l'expression.
Classes et devices
Un device est juste une classe Verse qui hérite de creative_device. Toute classe non-device se déclare avec class simple.
Failable expressions
Verse remplace les null et les exceptions par un système de failure. Une expression qui peut échouer est marquée <decides>. Au runtime, si elle échoue, le bloc est annulé proprement.
if (Player := GetPlayspace().GetPlayers()[0]):
# Player est le premier joueur si la liste n'est pas vide.
# Si elle est vide, le if entier ne s'exécute pas.
Modules
Le code est rangé en modules accessibles avec /. /Fortnite.com/Devices contient les devices fournis. /Verse.org/Simulation contient les utilitaires de simulation. Vous pouvez créer vos propres modules locaux à votre projet.
Tags et specifiers
Les annotations entre chevrons (<override>, <suspends>, <public>, <concrete>) précisent le comportement. Elles paraissent verbeuses au début, puis deviennent évidentes : chacune répond à une question (qui peut hériter de cette classe, ce code peut-il s'interrompre, etc.).
05La concurrence native, le vrai super-pouvoir
C'est sans doute la fonctionnalité qui surprend le plus quand on vient de Lua ou JavaScript.
Verse fournit quatre opérateurs de concurrence au cœur du langage.
spawn lance une tâche en arrière-plan, sans attendre.
spawn { LaunchFireworks() }
# Le code suivant continue immédiatement.
race lance plusieurs tâches en parallèle, prend le résultat de la première qui termine, annule les autres.
race:
WaitForButtonPress()
Sleep(10.0)
# Continue dès que le joueur clique OU après 10 secondes.
sync lance plusieurs tâches en parallèle et attend que toutes terminent.
branch lance une tâche sans l'attendre, comme spawn, mais reste rattaché à la tâche parente.
Ces quatre primitives remplacent à elles seules tout ce que Lua résout avec coroutines, et tout ce que JavaScript résout avec Promise.all, Promise.race et async/await. Le code de gameplay devient nettement plus lisible, et les bugs de timing presque impossibles.
06Où apprendre Verse pour de bon
Epic publie une documentation officielle riche, en anglais uniquement. Trois ressources à connaître par cœur.
- Verse Language Reference sur le portail Epic Developer Community. C'est le manuel complet, organisé par concept (types, expressions, classes, concurrence). Lecture longue mais incontournable.
- What's New in Verse liste les changements de chaque version Verse. Important parce que Verse évolue tous les 2 mois en moyenne et certaines syntaxes deviennent obsolètes.
- UnrealVerseGuru / VerseProgrammingLanguage sur GitHub, un repository communautaire qui agrège snippets et exemples open source.
Côté tutoriels vidéo, YouTube est très inégal : beaucoup de contenus 2023 sont déjà périmés. Privilégiez les chaînes qui datent leurs vidéos clairement et collent à la version Verse mentionnée dans la description.
07Faut-il vraiment savoir coder pour publier ?
Réponse honnête : non, pas obligatoirement, mais plus vous voulez sortir du moule, plus vous en aurez besoin.
Sans Verse, vous pouvez créer :
- Un parkour, un deathrun, une escape room
- Un box fight, un zone wars, un 1v1
- Une map narrative linéaire avec triggers et cinématiques
- Une map social (faux salon, dance club, hangout)
Avec Verse, vous débloquez :
- Tout ce qui a un système économique interne (tycoon, crafting, marché)
- Toute IA non-triviale (boss avec phases, ennemis qui apprennent)
- Tout système de progression custom (leveling, ranks, inventaires personnalisés)
- Des battle royales custom, des modes asymétriques, des PvE coop scénarisés
- Les In-Island Transactions paramétrables finement
Recommandation Vortex : commencez sans Verse, finissez votre première map, publiez-la. Si elle marche, vous aurez une raison concrète d'apprendre Verse pour la version 2. Si elle ne marche pas, vous saurez pourquoi avant d'investir 60 heures à apprendre un langage.
Questions fréquentes
Verse est-il difficile à apprendre quand on vient de Lua ?
Plus difficile, oui. Lua est dynamique, permissif, on apprend en 2 jours pour des scripts simples. Verse demande de comprendre le typage statique, les failable expressions et la concurrence dès le départ. Plan réaliste : 2 à 3 semaines pour être productif sur du code simple, 2 à 3 mois pour maîtriser les concepts avancés (concurrence, modules, specifiers).
Verse est-il open source ?
Non, pas en avril 2026. Le compilateur et le runtime sont propriétaires Epic Games. Tim Sweeney a évoqué publiquement l'idée d'ouvrir Verse à terme et d'en faire un langage utilisable hors Fortnite (côté Unreal Engine notamment), mais aucun calendrier officiel n'est annoncé.
Peut-on coder Verse hors d'UEFN ?
Pas encore. Verse n'est pour l'instant utilisable qu'à travers Unreal Editor for Fortnite. Vous écrivez du Verse dans VS Code (Epic fournit une extension officielle), mais la compilation et l'exécution passent obligatoirement par UEFN et Fortnite.
Verse va-t-il remplacer Blueprints d'Unreal Engine ?
Pas dans Fortnite, ils coexistent : Verse pour la logique, devices visuels pour le glue. Côté Unreal Engine full, Epic n'a pas confirmé de remplacement de Blueprints. La feuille de route officielle est qu'à terme, Verse devienne un langage de scripting unifié à travers les outils Epic, mais pas en éviction de l'existant.
Quelle est la différence entre une `class` et un `creative_device` ?
Un device est une classe Verse qui hérite de creative_device et qui peut être glissée dans la scène UEFN comme un objet 3D. Une class simple reste un objet purement code, manipulé en mémoire mais pas placée visuellement. Pour interagir avec la scène (joueurs, triggers, props), vous passerez par un device.
Aller plus loin
Discutez avec d'autres créateurs UEFN
Salons techniques, partage de templates Verse, retours sur vos maps. Communauté FR active autour de l'écosystème Fortnite.
Rejoindre le DiscordContinuer la lecture
Guides liés
Qu'est-ce que l'UEFN ? Le guide complet en 2026
L'UEFN est l'éditeur officiel d'Epic Games pour créer des maps Fortnite. Définition, fonctionnement, différences avec Creative 1.0 et prérequis pour démarrer.
UEFN vs Roblox Studio : lequel choisir en 2026 ?
Comparatif complet UEFN et Roblox Studio en 2026 : audience, technique, langages, monétisation, courbe d'apprentissage. Verdict tranché par profil de créateur.
Programme Île Soutenue : comment être payé sur Fortnite en 2026
Le programme Île Soutenue (Engagement Payout) reverse aux créateurs UEFN une part des revenus Fortnite. Pool de 40 %, fund mensuel, conditions, calcul du payout, In-Island Transactions.