Uma visão do futuro: melhorando a estabilidade e os tempos de iteração do UEFN [thread]

Autores: Aurel Cordonnier @aurel.cordonnier e Kavita Chodavarapu @CKnew234

Olá, comunidade de desenvolvimento do Fortnite,

No ano passado, assumimos o compromisso https://www.youtube.com/watch?v=M1F5CimXO_8&t=2492s de melhorar a estabilidade e a velocidade de iteração do UEFN. Nossa meta é reduzir em 50% o tempo de iteração até junho (ou mais — nossa intenção é prometer menos e entregar mais). Esta publicação descreve as mudanças que fizemos em nossas verificações internas e no processo de controle de qualidade para abordar a estabilidade da versão e a suíte inicial de atualizações que introduziremos nos próximos meses para melhorar os tempos de iteração.

Estabilidade e verificações dos lançamentos
Mudamos nossa abordagem de verificações para nos concentrarmos no que é mais importante para você: ilhas de engajamento intenso e alta persistência. Agora, nossa cobertura de verificaçõe sinclui conteúdo adicional para desenvolvedores mais propensos a regressões e, consequentemente, estamos detectando defeitos críticos mais cedo, antes que eles afetem a experiência do público desenvolvedor.

Também implementamos um processo de escalonamento de triagem 24 horas por dia, o que significa que, quando encontramos problemas, podemos corrigi-los muito mais rápido do que antes. Além disso, agora estamos testando seis ilhas complexas de desenvolvedores duas vezes por semana para acompanhar os principais benchmarks de desempenho, como tempo de inicialização, tempo de carregamento e operações de minijogos, dimensionando imediatamente qualquer regressão.

Até agora, os resultados têm sido animadores. Na versão 39.30, evitamos que 57% dos defeitos passassem para a fase de produção e, nas versões 39.40 e 39.50, não tivemos nenhum defeito crítico relacionado ao conteúdo ou à persistência do desenvolvedor, resultado direto de uma triagem mais rápida e de uma cobertura ampliada. Nossa taxa de escape (defeitos que escapam para lançamentos em produção) também caiu significativamente: de 18,5% na versão 39.11 para apenas 4,7% na versão 39.40.

Sabemos que as métricas internas mostram apenas uma parte da história e, por isso, estamos fazendo uma parceria com a equipe da comunidade para lançar pesquisas mensais de estabilidade, com o objetivo de ouvir diretamente os desenvolvedores e garantir que eles estão percebendo uma diferença significativa. Esse feedback nos ajudará a saber onde concentrar nossos esforços de estabilidade.

Ferramentas de gestão de ativos e estabilidade
Além de um processo interno de controle de qualidade ampliado, também estamos adicionando novas ferramentas e fluxos de trabalho para ajudar a identificar e corrigir erros em seus projetos antes que eles causem falhas ou travamentos.

- Ferramentas para a integridade dos ativos: Resolva problemas de validação de ativos e erros de “memória insuficiente” à medida que você faz iterações usando novos limites de monitoramento, relatórios e memória por plataforma após a importação.

  • Atualizações do gerador de perfil espacial: Com os recursos de geração de perfil ampliados no UEFN, você poderá identificar rapidamente ativos pesados em todas as plataformas. Isso inclui novos resultados de cálculo de memória direta e uma nova Visualização de Ativos em Tempo Real com análise de UObject https://dev.epicgames.com/documentation/unreal-engine/objects-in-unreal-engine.

Otimizações do agente de preparação
Para acelerar o tempo necessário para preparar sua ilha para uma sessão de jogo e melhorar os tempos de iteração, estamos refatorando o pipeline de preparação do UEFN para torná-lo mais eficiente. A “Preparação” https://dev.epicgames.com/documentation/pt-br/fortnite/cook é o processo de converter ativos brutos em um formato otimizado e pronto para o cliente, para que o conteúdo seja carregado e renderizado rapidamente.

Como essas serão melhorias internas na infraestrutrutura de back-end do UEFN, você não precisará alterar nada no seu fluxo de trabalho.

  • CDD (Cache de dados derivados - https://dev.epicgames.com/documentation/unreal-engine/using-derived-data-cache-in-unreal-engine?application_version=5.7 do Zen: Estamos implantando os mais recentes sistemas Zen Server no back-end do UEFN e introduzindo instantâneos preparados para melhorar a eficiência do processo de preparação, reduzindo o ciclo de iteração de “reprodução no cliente”.
  • Preparação incremental: Estamos adicionando um sistema que realiza a preparação apenas dos deltas (alterações) de ativos necessários enviados do seu projeto, em vez de reprocessar os dados inalterados.
  • Compilação distribuída de shaders: Em vez de a sua máquina local arcar com toda a carga, distribuiremos a compilação de shaders para a nuvem, acelerando o tempo de compilação.

Melhorias na edição em tempo real
Estamos expandindo a edição em tempo real, oferecendo mais maneiras de iterar durante uma sessão desse tipo de edição com suporte para tipos de ativos adicionais e novos fluxos de trabalho no editor para editar uma sessão em execução.

  • Suporte ampliado para tipos de ativo: Você poderá modificar mais tipos de ativo diretamente em uma sessão de edição em tempo real, reduzindo a frequência necessária de envio de alterações. Por exemplo: Barramento de Som, Sequência de Nível.
  • Edição em tempo real durante o modo de jogo: Enquanto o modo de jogo estiver em andamento durante uma edição em tempo real, um subconjunto de edições no Editor da UEFN será aplicado sem enviar as alterações e interromper o jogo. Por exemplo: se você estiver construindo uma pista de obstáculos, poderá transformar objetos e ajustar sua posição.
  • Painel de histórico de edições: Mostra quais alterações na sua sessão foram implementadas e as edições cujas alterações ainda precisam ser enviadas. Esse painel funcionará durante o Modo de Edição e o Modo de Jogo enquanto a sessão estiver em execução.

Você pode acompanhar essas atualizações no Roteiro para Desenvolvedores do Fortnite https://trello.com/b/nnpaY0cM/fortnite-creator-roadmap. Também utilizaremos esse tópico para compartilhar atualizações sobre nosso trabalho contínuo no sentido de melhorar a estabilidade e os tempos de iteração no UEFN.