Ambient, um mecanismo de jogo multijogador de código aberto

Ambiente

Ambient é um tempo de execução para criar jogos multijogador de alto desempenho e aplicativos 3D, desenvolvido com WebAssembly, Rust e WebGPU.

Após um ano de desenvolvimento, se revelou o primeiro lançamento do novo mecanismo de jogo de código aberto Ambiente. O motor fornece um tempo de execução para criar jogos multijogador e aplicativos 3D que são compilados em uma representação WebAssembly e usam a API WebGPU para renderização.

Um objetivo fundamental no desenvolvimento do Ambient é fornecer ferramentas que simplifiquem o desenvolvimento de jogos multijogador e tornem sua criação não mais difícil do que projetos para um jogador.

O mecanismo visa inicialmente criar um tempo de execução universal que suporte o desenvolvimento de jogos e aplicativos em qualquer linguagem de programação para a qual a compilação para o código WebAssembly intermediário seja possível. No entanto, a primeira versão suporta apenas o desenvolvimento Rust até agora.

Sobre ambiente

Das características que se destacam do Ambient, é mencionado que tem suporte transparente para rede. O mecanismo combina as funções de um cliente e um servidor, fornece todos os componentes necessários para criar a lógica do cliente e do servidor e sincroniza automaticamente o estado do servidor nos clientes.

Também é mencionado que um modelo de dados comum é usado nos lados do cliente e do servidor, o que facilita a transferência de código entre o back-end e o front-end. Ele executa cada módulo em seu próprio ambiente isolado para limitar o impacto de código não confiável, e travar um módulo não trava o aplicativo inteiro.

ambiente, cPossui uma arquitetura orientada a dados, fornecendo assim um modelo de dados baseado em um sistema de componentes que cada WASM pode manipular. Usando o padrão de projeto ECS (Entity Component System).

Além disso, também armazena os dados de todos os componentes em um banco de dados centralizado no servidorr, cujo estado é replicado automaticamente para o cliente, que por sua vez pode estender os dados levando em consideração o estado local.

A capacidade de criar módulos Ambient em qualquer linguagem de programação que compila para WebAssembly (até agora apenas Rust é suportado), enquanto gera arquivos de saída executáveis ​​universais, pode ser executado em Windows, macOS e Linux e funciona como cliente e como servidor.

Por outro lado, destaca-se também quetem a capacidade de definir seus próprios componentes e “conceitos” (coleções de componentes). Projetos que usam os mesmos componentes e conceitos garantem que os dados sejam portáteis e compartilhados, mesmo que os dados não sejam projetados especificamente para uso em projetos específicos.

Dos outros recursos que se destacam do Ambient:

  • Suporte para compilação de recursos em diferentes formatos, incluindo ".glb" e ".fbx". Capacidade de transmitir recursos pela rede: o cliente pode obter todos os recursos necessários ao se conectar ao servidor (você pode começar a jogar sem esperar que todos os recursos sejam carregados).
  • Formatos de modelo FBX e glTF, vários formatos de som e imagem são suportados.
  • Um sistema de renderização avançado que usa a GPU para acelerar a renderização e suporta LOD e recorte do lado da GPU.
  • Uso de renderização com base física (PBR) por padrão, suporte para animação e mapas de sombra em cascata.
  • Suporte para simulação de processos físicos baseados no motor PhysX.
  • Sistema de construção de IU do tipo React.
  • Sistema de entrada unificado independente da plataforma atual.
  • Sistema de som espacial com filtros plug-in.
  • O desenvolvimento ainda está em fase alfa. Das funcionalidades ainda não implementadas podemos destacar a capacidade de rodar na Web, uma API de cliente, uma API para gerenciamento de multi-threading, uma biblioteca para criação de uma interface de usuário, uma API para usar seus próprios shaders, suporte de som, carregar e salve
  • Componentes ECS (Entity Component System), recarregando recursos em tempo real, escalonamento automático do servidor, um editor para co-criar mapas e cenas do jogo.

Finalmente, para os interessados ​​em aprender mais sobre isso, devem saber que o código é escrito em Rust e é distribuído sob a licença do MIT.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.