Guía de Verse para principiantes: tu primer dispositivo en UEFN
¿Qué es Verse?
Verse es el lenguaje de programación de Epic Games diseñado específicamente para UEFN. Si has usado Python, Verse te resultará familiar: usa sintaxis basada en indentación y se lee casi como inglés. Pero también toma ideas de lenguajes de programación funcional como Haskell, lo que lo hace potente para la lógica de juego.
Todo comportamiento personalizado en UEFN que vaya más allá de los dispositivos básicos de Creative requiere Verse. Sistemas de puntuación, interfaz personalizada, gestores de equipamiento, gestión de rondas, progresión competitiva: todo es Verse.
Configurando tu primer dispositivo en Verse
En UEFN, crea un nuevo dispositivo Verse:
- Abre tu proyecto en UEFN
- Ve al menú Verse → Create New Verse File
- Elige Creative Device como plantilla
- Nómbralo
my_first_device
UEFN genera un archivo base que se ve así:
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
my_first_device := class(creative_device):
OnBegin<override>()<suspends>:void=
Print("Hello, Fortnite!")Veamos qué significa cada parte.
Entendiendo los fundamentos
Sentencias `using` — Estas importan APIs. /Fortnite.com/Devices te da acceso a los dispositivos de Creative. /Verse.org/Simulation proporciona funciones básicas de simulación. /UnrealEngine.com/Temporary/Diagnostics te da Print() para depuración.
Definición de clase — my_first_device := class(creative_device) crea una nueva clase de dispositivo que hereda de creative_device. Este es tu dispositivo personalizado que colocarás en el mundo.
OnBegin — Esta función se ejecuta cuando comienza el juego. La etiqueta <override> significa que estás reemplazando el OnBegin de la clase padre. La etiqueta <suspends> significa que esta función puede usar operaciones asíncronas (como Sleep()).
Construyendo un contador de eliminaciones
Construyamos algo útil: un dispositivo que rastrea eliminaciones y las muestra. Primero, necesitas referenciar un dispositivo de UI en tu nivel:
using { /Fortnite.com/Devices }
using { /Fortnite.com/Characters }
using { /Verse.org/Simulation }
kill_counter := class(creative_device):
@editable
EndGameDevice : end_game_device = end_game_device{}
var KillCounts : [agent]int = map{}
OnBegin<override>()<suspends>:void=
# Subscribe to elimination events
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) {}Conceptos clave de Verse
Expresiones falibles — Verse usa if para operaciones que pueden fallar. Player.GetFortCharacter[] puede no devolver nada si el jugador no tiene personaje. Los corchetes [] indican una llamada falible, y envolverla en if maneja el caso de fallo de manera elegante.
Mutabilidad — Las variables declaradas con var pueden modificarse. Sin var, los valores son inmutables por defecto. Esto previene mutaciones accidentales de estado.
Eventos y suscripciones — Verse usa un patrón basado en eventos. Te suscribes a eventos (PlayerAddedEvent, EliminatedEvent) y proporcionas funciones callback. Así es como reaccionas al gameplay sin hacer polling.
Maps y arrays — [agent]int es un tipo map (diccionario) que mapea agentes a enteros. map{} crea uno vacío.
Patrones comunes
Aquí tienes patrones que usarás en casi todos los dispositivos Verse:
Temporizador/delay:
Sleep(5.0) # Esperar 5 segundosBucle:
loop:
DoSomething()
Sleep(1.0)Iteración de jugadores:
Players := GetPlayspace().GetPlayers()
for (Player : Players):
# Hacer algo con cada jugadorPróximos pasos
Esta guía cubre lo más básico. Para profundizar:
- Lee la documentación oficial de Verse de Epic
- Estudia proyectos open-source de Verse en GitHub
- Practica reconstruyendo dispositivos existentes de Creative en Verse
- Únete a la comunidad de Discord de UEFN para obtener ayuda
Construir dispositivos personalizados en Verse es lo que separa a los desarrolladores profesionales de UEFN de los aficionados. Si necesitas mecánicas personalizadas complejas para tu mapa, nuestro equipo está especializado en scripting de Verse — desde sistemas de puntuación personalizados hasta frameworks completos de modos de juego.
Echa un vistazo a nuestro portfolio para ver Verse en acción con más de 4.800 millones de minutos jugados.
Kaio
Desarrollador de mapas UEFN en Kaio Corporation
Desarrollador profesional de mapas UEFN para Fortnite. Más de 4.800M de minutos jugados. Más información →
¿Necesita un mapa personalizado?
Contactar →