Guide du débutant en scripting Verse : votre premier dispositif UEFN
Qu'est-ce que Verse ?
Verse est le langage de programmation d'Epic Games conçu spécifiquement pour UEFN. Si vous avez utilisé Python, Verse vous semblera familier — il utilise une syntaxe basée sur l'indentation et se lit presque comme de l'anglais. Mais il emprunte également des concepts de langages de programmation fonctionnelle comme Haskell, ce qui le rend puissant pour la logique de jeu.
Tout comportement personnalisé dans UEFN qui va au-delà des dispositifs Creative de base nécessite Verse. Systèmes de score, interface utilisateur personnalisée, gestionnaires de loadout, gestion des manches, progression classée — tout passe par Verse.
Créer votre premier dispositif Verse
Dans UEFN, créez un nouveau dispositif Verse :
- Ouvrez votre projet dans UEFN
- Allez dans le menu Verse puis Create New Verse File
- Choisissez Creative Device comme modèle
- Nommez-le
my_first_device
UEFN génère un fichier modèle qui ressemble à ceci :
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
# Mon premier dispositif Verse
my_first_device := class(creative_device):
OnBegin<override>()<suspends>:void=
Print("Hello, Fortnite!")Décortiquons ce code.
Comprendre les bases
Instructions `using` — Elles importent des API. /Fortnite.com/Devices donne accès aux dispositifs Creative. /Verse.org/Simulation fournit les fonctionnalités de simulation de base. /UnrealEngine.com/Temporary/Diagnostics donne accès à Print() pour le débogage.
Définition de classe — my_first_device := class(creative_device) crée une nouvelle classe de dispositif qui hérite de creative_device. C'est votre dispositif personnalisé que vous placerez dans le monde.
OnBegin — Cette fonction s'exécute au démarrage de la partie. Le tag <override> signifie que vous remplacez le OnBegin de la classe parente. Le tag <suspends> indique que cette fonction peut utiliser des opérations asynchrones (comme Sleep()).
Construire un compteur d'éliminations
Construisons quelque chose d'utile — un dispositif qui comptabilise les éliminations et les affiche. D'abord, vous devez référencer un dispositif d'interface dans votre niveau :
using { /Fortnite.com/Devices }
using { /Fortnite.com/Characters }
using { /Verse.org/Simulation }
# Compteur d'éliminations
kill_counter := class(creative_device):
@editable
EndGameDevice : end_game_device = end_game_device{}
var KillCounts : [agent]int = map{}
OnBegin<override>()<suspends>:void=
# S'abonner aux événements d'élimination
GetPlayspace().PlayerAddedEvent().Subscribe(OnPlayerAdded)
OnPlayerAdded(Player : player):void=
if (FortCharacter := Player.GetFortCharacter[]):
FortCharacter.EliminatedEvent().Subscribe(OnEliminated)
OnEliminated(Result : elimination_result):void=
if (Eliminator := Result.EliminatingCharacter):
if (Player := player[Eliminator.GetAgent[]]):
if (set KillCounts[Player] += 1) {}Concepts clés de Verse
Expressions faillibles — Verse utilise if pour les opérations qui peuvent échouer. Player.GetFortCharacter[] peut ne rien retourner si le joueur n'a pas de personnage. Les crochets [] indiquent un appel faillible, et l'encapsuler dans un if gère élégamment le cas d'échec.
Mutabilité — Les variables déclarées avec var peuvent être modifiées. Sans var, les valeurs sont immuables par défaut. Cela empêche les mutations d'état accidentelles.
Événements et abonnements — Verse utilise un modèle événementiel. Vous vous abonnez à des événements (PlayerAddedEvent, EliminatedEvent) et fournissez des fonctions de rappel (callbacks). C'est ainsi que vous réagissez au gameplay sans faire de polling.
Maps et tableaux — [agent]int est un type map (dictionnaire) associant des agents à des entiers. map{} en crée un vide.
Motifs courants
Voici des motifs que vous utiliserez dans presque tous vos dispositifs Verse :
Minuterie/délai :
Sleep(5.0) # Attendre 5 secondesBoucle :
loop:
DoSomething()
Sleep(1.0)Itération sur les joueurs :
Players := GetPlayspace().GetPlayers()
for (Player : Players):
# Faire quelque chose avec chaque joueurProchaines étapes
Ce guide couvre les bases absolues. Pour approfondir :
- Consultez la documentation officielle Verse d'Epic
- Étudiez des projets Verse open source sur GitHub
- Entraînez-vous en recréant des dispositifs Creative existants en Verse
- Rejoignez la communauté Discord UEFN pour obtenir de l'aide
La création de dispositifs Verse personnalisés est ce qui distingue les développeurs UEFN professionnels des amateurs. Si vous avez besoin de mécaniques personnalisées complexes pour votre map, notre équipe est spécialisée en scripting Verse — des systèmes de score sur mesure aux frameworks complets de modes de jeu.
Découvrez notre portfolio pour voir Verse en action totalisant plus de 4,8 milliards de minutes jouées.
Kaio
Développeur de maps UEFN chez Kaio Corporation
Développeur professionnel de maps Fortnite UEFN. Plus de 4,8 milliards de minutes jouées. En savoir plus →
Besoin d'une map personnalisée ?
Nous contacter →