Guia de Verse para Iniciantes: O Seu Primeiro Dispositivo UEFN
O Que É o Verse?
Verse é a linguagem de programação da Epic Games, concebida especificamente para o UEFN. Se já utilizou Python, vai achar o Verse familiar — utiliza sintaxe baseada em indentação e lê-se quase como inglês. Mas também empresta ideias de linguagens de programação funcional como Haskell, tornando-o poderoso para lógica de jogo.
Todo o comportamento personalizado no UEFN que vai além dos dispositivos básicos do Creative requer Verse. Sistemas de pontuação, interfaces personalizadas, gestores de loadout, gestão de rondas, progressão ranked — tudo em Verse.
Configurar o Seu Primeiro Dispositivo Verse
No UEFN, crie um novo dispositivo Verse:
- Abra o seu projeto no UEFN
- Vá ao menu Verse → Create New Verse File
- Escolha Creative Device como modelo
- Nomeie-o
my_first_device
O UEFN gera um ficheiro base com este aspeto:
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!")Vamos analisar isto.
Compreender as Bases
Instruções `using` — Estas importam APIs. /Fortnite.com/Devices dá acesso aos dispositivos Creative. /Verse.org/Simulation fornece funcionalidades base de simulação. /UnrealEngine.com/Temporary/Diagnostics dá acesso ao Print() para depuração.
Definição de classe — my_first_device := class(creative_device) cria uma nova classe de dispositivo que herda de creative_device. Este é o seu dispositivo personalizado que vai colocar no mundo.
OnBegin — Esta função executa quando o jogo começa. A etiqueta <override> significa que está a substituir o OnBegin da classe-mãe. A etiqueta <suspends> significa que esta função pode utilizar operações assíncronas (como Sleep()).
Construir um Contador de Eliminações
Vamos construir algo útil — um dispositivo que regista eliminações e as apresenta. Primeiro, precisa de referenciar um dispositivo de UI no seu nível:
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=
# Subscrever eventos de eliminação
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) {}Conceitos-Chave do Verse
Expressões falíveis — O Verse utiliza if para operações que podem falhar. Player.GetFortCharacter[] pode não retornar nada se o jogador não tiver personagem. Os parêntesis retos [] indicam uma chamada falível, e envolvê-la num if lida com o caso de falha de forma elegante.
Mutabilidade — Variáveis declaradas com var podem ser alteradas. Sem var, os valores são imutáveis por defeito. Isto previne mutações de estado acidentais.
Eventos e subscrições — O Verse utiliza um padrão orientado a eventos. Subscreve eventos (PlayerAddedEvent, EliminatedEvent) e fornece funções de callback. É assim que se reage ao gameplay sem fazer polling.
Maps e arrays — [agent]int é um tipo map (dicionário) que mapeia agentes para inteiros. map{} cria um vazio.
Padrões Comuns
Eis padrões que vai utilizar em praticamente todos os dispositivos Verse:
Temporizador/atraso:
Sleep(5.0) # Esperar 5 segundosCiclo:
loop:
DoSomething()
Sleep(1.0)Iteração de jogadores:
Players := GetPlayspace().GetPlayers()
for (Player : Players):
# Fazer algo com cada jogadorPróximos Passos
Este guia cobre o básico absoluto. Para aprofundar:
- Leia a documentação oficial do Verse da Epic
- Estude projetos Verse de código aberto no GitHub
- Pratique recriando dispositivos Creative existentes em Verse
- Junte-se à comunidade Discord do UEFN para obter ajuda
Construir dispositivos Verse personalizados é o que separa programadores UEFN profissionais de entusiastas. Se precisa de mecânicas personalizadas complexas para o seu mapa, a nossa equipa é especialista em programação Verse — desde sistemas de pontuação personalizados a frameworks completos de modos de jogo.
Consulte o nosso portfólio para ver o Verse em ação com mais de 4,8 mil milhões de minutos jogados.
Kaio
Developer de Mapas UEFN na Kaio Corporation
Developer profissional de mapas Fortnite UEFN. Mais de 4,8 mil milhões de minutos jogados. Saber mais →
Precisa de um mapa personalizado?
Contactar →