Verse est un langage de programmation développé par Epic Games que vous pouvez utiliser pour créer votre propre gameplay dans l'Unreal Editor for Fortnite (UEFF), y compris pour personnaliser vos appareils pour Fortnite Creative.
Les principaux objectifs de Verse
- Suffisamment simple pour être appris par un programmeur débutant.
- Assez général pour écrire n'importe quel type de code et de données.
- Productif dans le contexte de la construction, de l'itération et de l'expédition d'un projet en équipe, et de l'intégration du code et du contenu.
- Vérifié de manière statique pour détecter autant de catégories de problèmes d'exécution que possible au moment de la compilation.
- Performant pour l'écriture de jeux multijoueurs en temps réel dans un monde ouvert.
- Complet, c'est-à-dire que chaque caractéristique du langage permet aux programmeurs de s'abstraire de cette caractéristique.
- Intemporel - construit pour les besoins d'aujourd'hui et pour les besoins futurs prévisibles, sans être enraciné dans les artefacts passés d'autres langages.
Les principales caractéristiques du langage de programmation Verse
- Fortement typé pour minimiser les opportunités d'erreurs non capturées lors du développement ou du déploiement et pour soutenir la vérification statique.
- Multi-paradigme pour utiliser le meilleur de la programmation fonctionnelle, de la programmation orientée objet et de la programmation impérative, notamment en étant aussi déterministe que possible. Par exemple, les données sont immuables par défaut et, si le code et les données sont identiques, les résultats seront toujours identiques.
Il n'y a pas de distinction entre les déclarations et les expressions. Dans Verse, tout est une expression, ce qui signifie que tout a un résultat.
- L'échec est un flux de contrôle. Au lieu d'utiliser des valeurs vrai/faux pour changer le flux de votre programme (comme avec les points de décision), Verse utilise des expressions faillibles, qui produisent une valeur si elles réussissent ou n'en produisent pas si elles échouent. Les expressions faillibles ne peuvent être exécutées que dans des contextes d'échec, comme les expressions if.
- La possibilité d'effectuer une exécution spéculative dans des contextes d'échec, ce qui signifie que vous pouvez essayer des actions sans les engager. Lorsqu'une expression réussit, les effets de l'expression sont validés, mais si l'expression échoue, les effets de l'expression sont annulés comme si l'expression n'avait jamais eu lieu. De cette façon, vous pouvez exécuter une série d'actions qui accumulent des changements, mais ces actions seront annulées si un échec se produit dans le contexte d'échec.
- Concurrence au niveau du langage, de sorte qu'il n'est pas nécessaire de s'appuyer sur des threads au niveau du système sur plusieurs processeurs pour exécuter des actions simultanément. Vous pouvez autoriser le flux temporel de la même manière que vous le faites pour le flux de contrôle en utilisant des expressions de concurrence intégrées dans le langage.
Epic Games continue de développer le langage de programmation Verse et d'y ajouter de nouvelles fonctionnalités. Pour le code Verse que vous écrivez aujourd'hui, vous pouvez vous attendre à ce que Verse offre une compatibilité ascendante et continue à fonctionner avec les futures mises à jour du langage.
Explorer le langage
Utilisez les pages suivantes comme référence pour le langage de programmation Verse.
- Expressions
Tout dans Verse est une expression et a un résultat. Cette page décrit tous les types d'expressions dans Verse.
https://dev.epicgames.com/documentation/en-us/uefn/expressions-in-verse
- Commentaires
Un commentaire de code explique quelque chose à propos du code. Les commentaires sont ignorés lors de l'exécution du programme.
https://dev.epicgames.com/documentation/en-us/uefn/comments-in-verse
- Constantes et variables
Les variables et les constantes permettent de stocker des informations, ou des valeurs, que votre programme utilise.
https://dev.epicgames.com/documentation/en-us/uefn/variables-in-verse
- Types communs
Les types communs prennent en charge les opérations fondamentales utilisées par la plupart des programmes.
https://dev.epicgames.com/documentation/en-us/uefn/common-types-in-verse
- Opérateurs
Les opérateurs sont des fonctions spéciales définies dans le langage de programmation Verse pour effectuer des actions telles que les opérations mathématiques d'addition et de multiplication.
https://dev.epicgames.com/documentation/en-us/uefn/operators-in-verse
- Regroupement
Regroupez vos expressions Verse pour spécifier l'ordre d'évaluation et améliorer la lisibilité.
https://dev.epicgames.com/documentation/en-us/uefn/grouping-in-verse
- Blocs de code
Un bloc de code est un groupe d'expressions et introduit un nouveau champ d'application pour les variables et les constantes.
https://dev.epicgames.com/documentation/en-us/uefn/code-blocks-in-verse
- Fonctions
Une fonction est un code réutilisable qui effectue une action et produit différents résultats en fonction des données fournies.
https://dev.epicgames.com/documentation/en-us/uefn/functions-in-verse
- Échec
L'échec est un moyen de contrôler la séquence dans laquelle un programme effectue des actions, appelée flux de contrôle.
https://dev.epicgames.com/documentation/en-us/uefn/failure-in-verse
- Spécificateurs et attributs
Découvrez les spécificateurs et les attributs et apprenez comment appliquer une sémantique et un comportement supplémentaires à votre code Verse.
https://dev.epicgames.com/documentation/en-us/uefn/specifiers-and-attributes-in-verse
- Flux de contrôle
Le flux de contrôle est l'ordre dans lequel un ordinateur exécute les instructions. Verse propose plusieurs façons de modifier le flux de contrôle de votre programme.
https://dev.epicgames.com/documentation/en-us/uefn/control-flow-in-verse
- Flux temporel et simultanéité
Vous pouvez créer un flux temporel de la même manière que vous créez un flux de contrôle, en exécutant des expressions simultanément à l'aide des expressions de simultanéité intégrées dans Verse.
https://dev.epicgames.com/documentation/en-us/uefn/concurrency-in-verse
- Types de conteneurs
Stockez plusieurs valeurs ensemble en utilisant un type de conteneur.
https://dev.epicgames.com/documentation/en-us/uefn/container-types-in-verse
- Types composites
Créez votre propre type unique à partir d'un type composite.
https://dev.epicgames.com/documentation/en-us/uefn/composite-types-in-verse
- Travailler avec les types Verse
Apprenez à faire plus avec les types dans Verse.
https://dev.epicgames.com/documentation/en-us/uefn/working-with-verse-types-in-verse
- Modules et chemins
Un module Verse est une unité atomique de code qui peut être redistribuée et dont on peut dépendre, et que vous pouvez importer dans votre fichier Verse pour utiliser des définitions de code provenant d'autres fichiers Verse.
https://dev.epicgames.com/documentation/en-us/uefn/modules-and-paths-in-verse