O Android Q suportará o Vulkan-back-end do ANGLE para facilitar o desenvolvimento de jogos em 2D

O suporte da API Vulkan para Android foi anunciado com o Android Nougat no Google I / O 2016. Para refrescar sua mente, essa API ajuda os desenvolvedores a obter mais controle do hardware de baixo nível. Esse tipo de acesso os ajuda a aproveitar melhor o poder de processamento e gráfico das respectivas unidades e a otimizar os jogos para que sejam executados da maneira mais suave possível. Não é surpresa que a alocação correta de memória e o gerenciamento de threads sejam importantes em qualquer tipo de tarefa que demanda muita energia, como executar um jogo. Isso é o que os consoles populares como Xbox One e PlayStation 4 fazem há muito tempo - oferecendo 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, direcionado a aplicativos gráficos entre plataformas. No início deste ano, descobrimos uma pista de que o Android Q pode renderizar os elementos da interface do usuário por meio da API Vulkan. Este será um passo para melhorar ainda mais a suavidade do sistema. Agora, recebemos informações de que o Android Q definitivamente suportará ANGLE para facilitar o desenvolvimento de jogos em 2D.

O que é ANGLE?

ANGLE é uma abreviação e significa "Quase nativo Graphics Layer Engine". O surgimento do WebGL fez uma necessidade de uma solução padronizada de suporte ao renderizador. Os drivers OpenGL não são muito estáveis ​​na plataforma Windows há bastante tempo. Portanto, a ANGLE elevou tudo a um nível totalmente novo ao traduzir o código OpenGL para o Direct3D, uma API suportada nativamente no Windows. O principal objetivo do ANGLE é tornar o OpenGL portátil e acessível a todos, traduzindo o conteúdo do WebGL e do OpenGL ES para uma API suportada por hardware disponível na plataforma. Usando o mesmo princípio, o ANGLE converterá o código OpenGL para o código Vulkan no Android, pois o primeiro é uma API de hardware oficialmente suportada no sistema operacional. Você provavelmente usa ANGLE todos os dias sem perceber. O ANGLE está incorporado nos navegadores da web Google Chrome e Mozilla Firefox para a área de trabalho. É usado para renderizar qualquer conteúdo gráfico dentro desses navegadores no Windows.

Vulkan vs OpenGL ES

O Khronos Group está trabalhando duro para tornar o ANGLE o principal renderizador do OpenGL no Vulkan. Muitos de vocês podem não perceber a necessidade de se livrar do OpenGL em favor do Vulkan, mas há definitivamente um espaço para melhorias. Nesse ponto, a API do OpenGL é considerada uma tecnologia antiga. Foi lançado inicialmente em 1992, há 26 anos. 26 anos pode não significar muito para alguns de vocês, mas é um número astronômico quando se trata de desenvolvimento de tecnologia. Em 2016, o mundo foi apresentado ao Vulkan - a API de gráficos de próximo nível. Mas, o 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 o OpenGL ES, saberia que ele é enorme . A API tem mais de 300 extensões e não é fácil de usar. O Vulkan leva tudo em um nível totalmente novo, oferecendo uma API muito menor e controle direto dos 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 threads e memória é completamente deixado ao desenvolvedor do jogo, para que você possa usar os recursos adequadamente. Além disso, há uma diferença muito pequena entre as versões para celular e para desktop do Vulkan, facilitando a transferência de jogos. Para resumir, o Vulkan é um driver de baixo nível que permite liberar todo o potencial da placa gráfica presente no dispositivo específico.

Por que ângulo?

A primeira vantagem do ANGLE é que é uma plataforma padrão aberta. Existem várias maneiras de contribuir para o projeto. Você pode testar o driver em seus dispositivos, relatar bugs, consertar 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 entre plataformas. A natureza do ANGLE facilita o trabalho para desenvolvedores de plataformas e 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 dor para os desenvolvedores. Centralizar todos os drivers necessários em ANGLE significa que os desenvolvedores terão mais facilidade em implementá-los. O desenvolvedor do ANGLE, Jamie Madill, confirmou conosco que, na plataforma Android, o ANGLE receberá atualizações regulares pela Google Play Store. A atualização de drivers por meio do mercado interno incorporado é uma boa idéia, pois o usuário não precisará atualizar todo o sistema toda vez que o driver for atualizado. Além disso, os desenvolvedores não precisariam mexer no código toda vez que ANGLE mudar alguma coisa. Aqui está um vídeo sobre como o ANGLE pode beneficiar o desenvolvimento de jogos para Android.

Como você pode ver, o ANGLE possui inúmeras melhorias em relação ao datado OpenGL ES. A primeira versão do desenvolvedor do Android Q não está tão à frente, portanto podemos esperar e ver como o ANGLE funciona na prática. De acordo com esse commit, os usuários poderão forçar todos os aplicativos a trabalhar com ANGLE a partir das opções do desenvolvedor. O suporte para o renderizador já está mesclado na filial do Android Pie para OEMs testá-lo. Você pode acompanhar o desenvolvimento do ANGLE no site e no repositório GitHub abaixo.

Obrigado ao membro sênior XxPixX pela dica!

Repositório do GITHub