Um novo framework de jogabilidade
A UE6 incluirá um framework de jogabilidade inteiramente novo, conhecido coletivamente como Scene Graph, construído do zero no Verse. O Verse é a base para o futuro modelo de programação da Epic. É uma linguagem de programação de próxima geração construída com o propósito de permitir a construção de mundos de jogos massivos e persistentes em escala, onde o estado global apenas funciona e a simultaneidade transacionalmente correta é tratada pelo tempo de execução. O Scene Graph é um framework de jogabilidade moderna e de alto nível que lhe dará uma verdadeira base para criar jogos e experiências com facilidade, enquanto compartilha seus componentes interoperáveis entre jogos.
O Verse aproveita ideias de linguagens funcionais, lógicas e imperativas, e deve parecer imediatamente familiar para qualquer pessoa que tenha trabalhado com linguagens como Python ou C#. Mas também possui alguns recursos exclusivos, destinados a resolver os problemas de complexidade e escalabilidade do desenvolvimento de jogos modernos — começando com seu modelo exclusivo de memória transacional de software.
Todas as funções no Verse são executadas como parte de transações atômicas, que podem ser revertidas e simuladas novamente quando necessário. Essas semânticas transacionais também se estendem a qualquer código C++ que é chamado do Verse. Por enquanto, para fazer tudo isso funcionar, o Verse é executado em um único thread e chama o código C++ criado por meio de um compilador LLVM personalizado que automaticamente transacionaliza o código C++. Em princípio, podemos estender este método para executar automaticamente transações simultaneamente em diferentes threads, mas ainda temos que trabalhar um pouco para conseguir isso em um hardware que dimensionará adequadamente.
A coisa mais interessante que isso permite para mundos grandes e vivos é que, com a UE6, estamos trabalhando para construir um sistema completo de memória transacional de software distribuído. Pretendemos usar o código de jogo do Verse existente no estilo de thread único e, em seguida, distribuí-lo por vários servidores automaticamente. Quando um objeto é necessário em um servidor no cluster, o tempo de execução do Verse reverte a transação atual, migra o objeto para o servidor apropriado e, em seguida, executa novamente a transação com o objeto agora presente.
A mágica aqui é que seu código de jogo pode ser escrito como se estivesse sendo executado em uma única máquina, sem precisar coordenar o código de rede personalizado espalhado em todos os lugares. Nos bastidores, muitos servidores podem ser ativados para distribuir o trabalho automaticamente. Nosso trabalho inicial com protótipos é promissor e mostrou que podemos escrever códigos de ‘servidor único’ e obter escalabilidade de desempenho distribuindo o trabalho de forma transparente.
Melhor ainda, a distribuição e a semântica transacional simplificam muito o salvamento de dados do jogo. O tempo de execução do Verse pode sincronizar e salvar automaticamente qualquer estado global para o programa e compartilhar esse estado em todas as instâncias em execução de um jogo ou ecossistema.
Para o programador de jogos, isso significa que configurar algo como o estado de salvamento para um jogador é tão simples quanto definir um único mapa global de jogador para estado salvo. Não é mais necessário configurar bancos de dados e coordenar esquemas entre seu jogo e outros serviços de backend. Você pode fazer tudo isso sem sair do Verse. Você pode ver os estágios iniciais disso em ação nos recursos de persistência de weak_map do UEFN, que são compatíveis com versões futuras do método de uso geral descrito aqui.
Acreditamos que tudo isso junto resulta em um novo modelo de programação realmente poderoso para o futuro.
Você verá tudo isso sendo lançado incrementalmente no UEFN e na UE6 à medida que avançamos para unificar os dois produtos.
Portabilidade de conteúdo
Agora, vamos falar sobre o segundo princípio fundamental da UE6: o conteúdo e o código devem ser portáveis entre jogos e motores. Nosso objetivo é dar à indústria de jogos uma maneira totalmente nova de expandir nossos ecossistemas com promoção cruzada, valor de jogador portável e realmente aproveitar todas as dinâmicas de soma positiva que a Lei de Metcalfe prevê para conectar experiências e gráficos sociais juntos.
Faremos isso com um esforço determinado para levar a UE além da extensibilidade e para especificações abertas de interoperabilidade. Onde os padrões existentes, como glTF ou USD, são capazes de atender às necessidades da UE6, nós os tornaremos formatos de primeira classe dentro da engine. Onde ainda não existe um padrão que atenda às necessidades dos ecossistemas de jogos, abriremos os próprios sistemas da Unreal Engine como especificações abertas com APIs do Verse, convenções de ativos definidas e documentação que qualquer engine, ferramenta ou estúdio possa implementar.
Os itens cosméticos do Fortnite serão nosso primeiro ponto de prova real de portabilidade. Começaremos movendo o sistema base para um módulo UE6 aberto. Isso significa que você terá a opção de usar os trajes do Fortnite aos quais um jogador tem direito em seus próprios jogos, e você obterá as ferramentas para construir trajes que funcionam dentro do Fortnite em seus próprios jogos. Estamos abordando este problema primeiro porque queremos provar as coisas usando um sistema complexo o suficiente para ser uma prova de existência significativa da ideia, e um que inerentemente acompanhe muito valor para o jogador, respeitando suas compras em um ecossistema interconectado de jogos.
Vemos isso como o primeiro passo para construir uma economia compartilhada para ativos inteligentes: ativos funcionais com lógica e funcionalidade que funcionam em vários jogos, para reconhecer o tempo e os gastos dos jogadores de uma forma melhor. No final, esta não é exatamente uma história sobre o Fortnite. Trata-se de provar que um sistema tão maduro e complexo pode funcionar em escala — e que todo jogo que funciona com esses sistemas se beneficiará imediatamente deles.
Multiplicadores de criatividade e produtividade com seus modelos preferidos
Sobre o tema da criação assistida por modelo, vemos que ela ajuda a estreitar os loops de iteração e a reduzir a configuração manual e demorada de níveis, rigs de personagens, sistemas de partículas, pesos de revestimento de ossos, bem como ajustar a iluminação, etc.: todo o trabalho manual necessário para traduzir a intenção criativa profissional em jogos interativos, de alto desempenho e multiplataforma. Fundamentalmente, a Unreal Engine está em uma posição única para ser o tempo de execução eficiente, multiplataforma e de alta fidelidade que permanecerá o substrato no qual muitos dos melhores jogos do mundo são executados.
Assim, para a UE6, vemos LLMs, modelos de IA generativa e ferramentas como Claude e Codex desempenhando um papel central para ajudar você a criar conteúdo mais rapidamente, mantendo o controle criativo de que precisa. Uma grande parte do nosso esforço está sendo direcionada para expor um amplo conjunto de recursos da engine por meio do protocolo MCP, para que os desenvolvedores possam misturar e combinar os melhores modelos de ponta e criar integrações personalizadas de todos os tipos em uma base aberta do MCP da Unreal Engine 6. Também estamos aprimorando o Epic Developer Assistant (EDA) como uma solução opcional pronta para uso, disponível para todos por padrão.
Nosso objetivo para a UE6 é reduzir consideravelmente o trabalho tedioso na criação de conteúdo para deixar mais tempo para a exploração criativa e aumentar a quantidade de iterações que uma equipe pode fazer para aprimorar seu conteúdo. A UE6 será lançada com ferramentas e fluxos de trabalho em que você pode optar por trazer seus próprios modelos favoritos, testados arduamente contra o desenvolvimento interno e no UEFN.
Além disso, internamente na Epic, estamos investigando bastante para descobrir o que funciona e o que não funciona para a geração de código. Recentemente, abrimos um uso bastante amplo para geração de código e análise de IA em nossas equipes de engenharia de backend, engine e desenvolvimento de jogos.
Tivemos sucesso particular com pessoas escrevendo ferramentas personalizadas para o próprio trabalho, ferramentas de indexação de código rápidas para ajudar LLMs a lidar com grandes bases de código como a Unreal Engine, análise rápida de resposta a incidentes, análise automatizada de falhas de travamentos de causa raiz e de falhas de trabalho CIS, geração de teste automatizada e, claro, a aceleração e paralelização que você esperaria no desenvolvimento de serviços de backend.
É interessante notar que a maioria desses casos de uso nem sequer está gerando código principal da Unreal Engine, embora isso provavelmente também venha a acontecer. Você pode esperar que a Unreal Engine 6 também inclua todos os principais aprendizados para usar a geração de código para engenharia junto de fluxos de trabalho de conteúdo.
Construindo juntos
A UE6 vai mudar bastante a forma como os jogos são feitos. Não mudará o que mais importa, que é que as pessoas desta indústria, os desenvolvedores de jogos, os cineastas, nossa família da Unreal Engine, são quem faz tudo acontecer de verdade. Obrigado por fazer a Unreal Engine realmente brilhar.
Teremos muito mais para compartilhar no caminho para o Acesso Antecipado, incluindo análises aprofundadas sobre a nova estrutura de jogabilidade, o Verse, o Scene Graph e os fluxos de trabalho assistidos por modelo que estamos incorporando às ferramentas de produção. Enquanto isso, continue construindo na UE5 e no UEFN. Tudo o que você lança hoje é um passo em direção ao que vamos lançar juntos na UE6.