Superando o limite de 32 caracteres do EventName no UEFN Analytics Device (Tutorial de Verse)
Todo desenvolvedor técnico de jogos conhece o momento exato em que seu pipeline de telemetria quebra: quando você precisa rastrear um estado complexo do jogador, mas sua engine restringe a quantidade de dados que você pode enviar. Se você está criando no Unreal Editor for Fortnite, provavelmente já deu de cara com o limite de caracteres do EventName do dispositivo de análise (analytics device) do UEFN.
Como o analytics_device nativo não suporta a passagem de argumentos arbitrários ou payloads JSON, os desenvolvedores são forçados a ser "criativos". Você acaba juntando variáveis em strings horríveis e ilegíveis como Player_Left_During_G1_F_Active_M apenas para construir um funil de análise básico.
Mas há um limite rígido: o nome do evento não pode exceder 32 caracteres.
Neste tutorial, vamos arquitetar um sistema robusto de codificação de telemetria usando Verse. Veremos como comprimir sistematicamente estados complexos de jogo em strings de menos de 32 caracteres, centralizar suas chamadas de analytics e decodificar essas strings no seu backend.
A Anatomia de um Gargalo de Telemetria
Plataformas como Mixpanel ou Amplitude tratam eventos como objetos estruturados (JSON). O UEFN força você a achatar tudo em uma única chave primária: o EventName. Com apenas 32 caracteres, cada byte é valioso. A abordagem profissional é construir um codificador de telemetria baseado em esquema.
Passo 1: Arquitetando um Codificador em Verse
Centralize suas chamadas em um script Verse que funciona como middleware. Use códigos curtos: PQ para "Player_Quit", M para "Medic".
# Exemplo de formato: E:Tipo|C:Código|Z:ID|T:Tempo
Payload := "E:{EventType}|C:{ClassCode}|Z:{ZoneStr}|T:{TimeStr}"
if (Payload.Length <= 32):
AnalyticsDevice.RecordEvent(Payload)
Passo 2: Bit-Packing para Dados de Alta Densidade
Para rastrear coordenadas X/Y, use spatial hashing ou um sistema de grade (grid). Divida o mapa em células e atribua IDs curtos (ex: A01) em vez de usar floats longos.
Passo 3: Decodificação no Backend
Exporte os dados em CSV do Creator Portal da Epic e use um script Python (com Pandas) para processar as strings e reconstruir os dados para análise.
O Ponto de Ruptura: Quando Sair do Sandbox
Se você está gastando semanas criando compressores de strings, você está lutando contra a engine. Ao mudar para o Unreal Engine 5 padrão, esses limites somem. Você pode usar HttpModule ou WebSockets. Confira nosso guia Ditch Http Polling An Unreal Engine Websockets Tutorial For Real Time Backends.
Com o horizOn, esses serviços de backend já vêm configurados. Você envia JSON via API e visualiza funis instantaneamente.
5 Melhores Práticas
- Padronize Delimitadores: Use sempre o mesmo (ex:
|). - Evite Tracking Contínuo: Não use o
Tick; envie eventos apenas em mudanças de estado. - Documente o Esquema: Mantenha uma planilha com os códigos curtos.
- Separe Telemetria Técnica de Business Analytics.
- Valide Antes de Enviar: Verifique o tamanho da string no Verse.