Verse es un lenguaje de programación orientado a objetos de tipo estático creado por Epic Games . Fue lanzado junto con UEFN en marzo de 2023 y fue creado por un equipo de programadores conocidos liderados por Simon Peyton Jones y el director ejecutivo de Epic Games, Tim Sweeney . Verse está diseñado para interactuar con el sistema de dispositivos existente de Fortnite Creative . A partir de junio de 2024, UEFN sigue siendo la única forma de interpretar, analizar, compilar o ejecutar el código de Verse; se han discutido planes para implementar el lenguaje en el lanzamiento de Unreal Engine 6. [1]
Verse admite la programación modular , lo que permite a los desarrolladores importar módulos específicos necesarios para sus scripts. Los módulos más utilizados incluyen los resúmenes de API que se generan cada vez que se abre un proyecto que contiene Verse. Hay un resumen de API para acceder e interactuar con objetos de Fortnite, objetos de Verse y objetos de Unreal Engine. Los desarrolladores también pueden crear sus propios módulos e importarlos a scripts si es necesario.
Verse emplea un modelo de programación orientado a objetos basado en clases . Los desarrolladores pueden definir clases para representar diversas entidades y comportamientos del juego.
Por ejemplo:
hola_mundo_dispositivo := clase(dispositivo_creativo): OnBegin<override>()<suspende>:void= Imprimir("¡Hola, mundo!") Imprimir("2 + 2 = {2 + 2}")
El código anterior define una nueva clase que hereda de `creative_device` e imprime el mensaje tradicional " Hola, mundo ". Todas las clases heredadas de un `creative_device` se pueden colocar en el entorno espacial del motor cuando se compila. La clase `creative_device` es necesaria para interactuar con el conjunto de herramientas preexistente de Fortnite Creative.
Verse permite definir funciones dentro de clases. Estas pueden realizar diversas operaciones, como cálculos matemáticos, lógica de juegos y más. El siguiente ejemplo es un método para determinar si un personaje está mirando una ubicación específica.
IsLookingAtLocation(Carácter:fort_character, Ubicación a comprobar: vector3, Umbral: float):lógica
El lenguaje admite programación basada en eventos, donde eventos como EliminatedEvent
y PlayerAddedEvent
pueden activar funciones específicas. También es posible suscribirse a eventos y escucharlos.
Verse admite varias funciones matemáticas necesarias para el desarrollo de juegos, como calcular magnitudes , normalizar vectores y convertir rotaciones en vectores de dirección. El módulo de matemáticas espaciales proporciona clases y funciones para matemáticas vectoriales y rotacionales, esenciales para tareas de desarrollo de juegos como posicionamiento y movimiento. Cos
, Normalize
, , y son algunas de las funciones disponibles para operaciones matemáticas. [2] [3]Distance , ArcTan
Lerp
El código de Verse comparte varias similitudes con el cálculo lambda , particularmente en cómo maneja funciones y datos. En el cálculo lambda, las funciones son ciudadanos de primera clase, lo que significa que pueden pasarse como argumentos a otras funciones, devolverse como valores de otras funciones y asignarse a variables; mientras que en Verse las funciones pueden pasarse y manipularse de manera similar, mostrando el paradigma de programación funcional. Los ejemplos incluyen métodos como Normalize(v1:vector3)
y DrawDebugLine(LineStart: vector3, LineEnd: vector3)
. Verse admite expresiones lambda y funciones anónimas, lo que permite definiciones de funciones en línea, de manera similar a cómo se usan las funciones lambda en lenguajes como Python o JavaScript . Verse también permite componer funciones encadenando llamadas a métodos y pasando funciones como parámetros. El estilo declarativo utilizado en el cálculo lambda también es una característica destacada de Verse para definir transformaciones y cálculos de datos en lugar de un modelo de flujo de control imperativo. Esto se ve en funciones como Normalize
y DrawDebugLine
que se definen de manera declarativa. [4] [3]
Epic Games ha descrito a Verse como el lenguaje de programación para el metaverso y ha tenido en cuenta la escalabilidad masiva en su desarrollo. Hasta la convergencia propuesta con Unreal Engine , aún está por verse cómo se comportará Verse al interactuar con varios sistemas y procesos fuera del ecosistema de Fortnite .