Agora sabemos que o Android Q oferecerá suporte ao backend Vulkan para ANGLE para facilitar o desenvolvimento de jogos 2D. Continue lendo para saber mais sobre o que isso significa.
API Vulkan suporte para Android foi anunciado com Android Nougat de volta ao Google I/O 2016. Para refrescar sua mente, esta API ajuda os desenvolvedores a obter mais controle sobre hardware de baixo nível. Este tipo de acesso ajuda-os a aproveitar melhor o poder de processamento e gráfico das respetivas unidades e a otimizar os jogos para que rodem da forma mais suave possível. Não é nenhuma surpresa que a alocação correta de memória e o gerenciamento de threads sejam importantes em qualquer tipo de tarefa que consome muita energia, como executar um jogo. Isso é o que consoles populares como Xbox One e PlayStation 4 fazem há muito tempo – dando aos desenvolvedores um controle de baixo nível do hardware dentro dos dispositivos.
O que também é interessante é que o Vulkan é um padrão aberto multiplataforma, voltado para aplicativos gráficos em todas as plataformas. No início deste ano,
encontramos uma pista que o Android Q pode renderizar os elementos da interface do usuário por meio da API Vulkan. Este será um passo dado para melhorar ainda mais a suavidade do sistema. Agora, recebemos informações de que o Android Q certamente oferecerá suporte ao ANGLE para facilitar o desenvolvimento de jogos 2D.O que é ÂNGULO?
ANGLE é uma abreviatura e significa "Almost Native Graphics Layer Engine". A ascensão do WebGL tornou necessária uma solução padronizada de suporte ao renderizador. Os drivers OpenGL não são muito estáveis na plataforma Windows há algum tempo. Portanto, o ANGLE levou tudo a um nível totalmente novo ao traduzir o código OpenGL para Direct3D, uma API com suporte nativo no Windows. O principal objetivo do ANGLE é tornar o OpenGL portátil e acessível para todos, traduzindo o conteúdo WebGL e OpenGL ES para uma API suportada por hardware disponível na plataforma. Usando o mesmo princípio, ANGLE traduzirá o código OpenGL para código Vulkan no Android, já que o primeiro é uma API de hardware com suporte oficial no sistema operacional. Você provavelmente usa ANGLE todos os dias sem perceber. ANGLE está integrado aos navegadores Google Chrome e Mozilla Firefox para desktop. Ele é usado para renderizar qualquer conteúdo gráfico dentro desses navegadores no Windows.
OpenGL ES x Vulkan
O Grupo Khronos está trabalhando duro para tornar o ANGLE o principal renderizador do OpenGL no Vulkan. Muitos de vocês podem não ver a necessidade de se livrar do OpenGL em favor do Vulkan, mas definitivamente há espaço para melhorias. Neste ponto, a API OpenGL é considerada uma tecnologia antiga. Foi lançado inicialmente em 1992, ou seja, há 26 anos. 26 anos podem não significar muito para alguns de vocês, mas é um número astronômico quando se trata de desenvolvimento tecnológico. Em 2016, o mundo conheceu o Vulkan – a API gráfica de próximo nível. Mas, mais novo não significa automaticamente melhor, certo? Deixe-me explicar por que o Vulkan é muito melhor que o OpenGL/OpenGL ES.
Se você já lidou com OpenGL ES, sabe que é enorme. A API tem mais de 300 extensões e não é nada fácil de usar. Vulkan leva tudo a um nível totalmente novo, oferecendo uma API muito menor e controle direto de gráficos. Também é mais fácil de implementar. Embora o Vulkan funcione em um nível inferior ao OpenGL ES, isso significa mais poder de controle. Com o Vulkan, o gerenciamento de thread e memória é totalmente deixado para o desenvolvedor do jogo, para que você possa usar os recursos de forma adequada. Além disso, há uma diferença muito pequena entre as versões móvel e desktop do Vulkan, tornando a portabilidade de jogos muito mais fácil. Resumindo, Vulkan é um driver de baixo nível que permite liberar todo o potencial da placa gráfica presente em um dispositivo específico.
Por que ÂNGULO?
A primeira vantagem do ANGLE é que ele é uma plataforma de padrão aberto. Existem inúmeras maneiras de contribuir para o projeto. Você pode testar o driver em seus dispositivos, relatar bugs, corrigir bugs, ajudar os desenvolvedores a encontrar soluções, enviar sugestões, doar algum dinheiro para o desenvolvimento, etc. Tudo isso aumentará a velocidade do desenvolvimento. A próxima grande vantagem em comparação com o OpenGL ES é a portabilidade e o suporte multiplataforma. A natureza do ANGLE facilita o trabalho tanto para desenvolvedores de plataformas quanto de jogos. Manter e implementar o ANGLE é muito mais fácil do que as implementações anteriores. O OpenGL é tão fragmentado que rastrear os bugs e corrigi-los em diferentes dispositivos é uma tarefa difícil para os desenvolvedores. Centralizar todos os drivers necessários no ANGLE significa que os desenvolvedores terão mais facilidade para implementá-los. O desenvolvedor do ANGLE, Jamie Madill, confirmou conosco que na plataforma Android, o ANGLE receberá atualizações regulares através da Google Play Store. Atualizar drivers por meio do mercado interno integrado é uma boa ideia porque o usuário não precisará atualizar todo o sistema sempre que o driver for atualizado. Além disso, os desenvolvedores não precisariam mexer no código toda vez que o ANGLE mudasse alguma coisa. Aqui está um vídeo sobre como o ANGLE pode beneficiar o desenvolvimento de jogos Android.
Como você pode ver, o ANGLE tem inúmeras melhorias em relação ao desatualizado OpenGL ES. A primeira versão prévia para desenvolvedores do Android Q não está muito à frente, então podemos esperar e ver como o ANGLE funciona na prática. De acordo com este commit, os usuários poderão forçar todos os aplicativos a funcionarem com ANGLE nas opções do desenvolvedor. O suporte para o renderizador é já mesclado no ramo Android Pie para OEMs testá-lo. Você pode acompanhar o desenvolvimento do ANGLE no site e no repositório GitHub abaixo.
Agradecimentos ao membro sênior do XDA XxPixX pela dica!
Site do ÂNGULORepositório GitHub