Materia feita na data de 14/01/2020, Autor: Leonardo Silva
Quando falamos de Pcs para jogos, quase nunca entramos nas guerras de consoles ou outras disputas, por se tratar de uma plataforma totalmente moldável, quer dizer, você pode comprar ou montar um PC do jeito que você quiser, dificultando a comparação com qualquer outro dispositivo vendido no mercado. Dentre tantos itens, tais como as memórias, o processador, a placa mãe que você pode instalar no seu computador, um deles é o sistema operacional, o sistema que vai gerir todas as funcionalidades da sua maquina, tanto de hardware quanto de software. Apesar de termos dois grandes S.O no mercado, Windows e Linux, geralmente essa peleja fica entre alguma das versões do Windows, relegando o Linux a um papel ainda não tão forte dentro desse mercado especifico. Mas será que o Linux realmente não presta para jogos? Sera que não da pra usar de forma alguma o Linux nesse sentido? Qual é o cenário atual de jogos para Linux e qual é o futuro?
Bem, para isso temos que entender que usar Windows é quase como uma tradição para boa parte dos usuários. Os mais leigos chegam a pensar que quando se compra um computador, o Windows é parte integrada dele, assim como os antigos aparelhos de DVD player de uma determinada marca, que é pra funcionar daquele jeito, ter aquela mesma cara (interface) e pronto, alias, esse é o mesmo perfil de usuário que sofreu com a transição do Windows 7 para o Windows 8, ou do 7 para o 10 (nesse caso, pulando o 8). Outro tipo de perfil, são aqueles que podemos até considerar mais avançados, mas no entanto, não encontraram vantagem em migrar ou usar paralelamente o Linux para qualquer atividade que seja, quem dirá, para jogar games. Em qualquer um desses casos, é perfeitamente normal que as pessoas façam as escolhas que as deixem mais confortáveis, afinal, o que importa é sentar na frente do computador e fazer o que se quer, da forma mais produtiva possível, no entanto, é interessante que se tenha o mínimo de informação para embasar sua opinião.
DirectX, o grande lance da Microsoft
O Windows entrou no mercado próximo ao final do ano de 1985, com o Windows 1.0, sendo um dos primeiros sistemas operacionais a trazer para os computadores uma interface gráfica, onde as pessoas poderiam manipular os programas como se fossem janelas (Windows = janela), isso ajudou a impulsionar as vendas e o desenvolvimento dos PCs fortemente. Uma década depois, já com o Windows 95 no mercado, é lançada a primeira versão do DirectX, que tornou bem mais prático o desenvolvimento dos jogos para os desenvolvedores, trazendo uma qualidade melhor e aproveitando com maior eficiência, o hardware do computador.
O DirectX é uma API, uma sigla para “Application Programming Interface" que por sua vez significa "Interface de Programação de Aplicativos”, ou seja, é um grande “facilitador” entre o jogo e o seu computador. Ela não foi a primeira API a surgir no mercado, diga-se de passagem, antes dela, tínhamos outras, destaque para a grandiosa OpenGL, API de condigo aberto, que já foi e ainda é usada em alguns jogos para Windows, e usada maciçamente nos jogos que rodam no Linux, no entanto, a API DirectX foi feita sobre medida pela própria Microsoft, para auxiliar nos jogos que rodam no seus sistema. Foi ela quem ajudou a consolidar a qualidade e a quantidade de jogos que temos no Windows.
OK, mas na prática, o que uma API como o DirectX faz?
Vamos entender melhor: Um jogo nada mais é do que um programa, porém, diferente da maioria dos programas convencionais, que você pede para executar determinada tarefa, ele executa, mostra o que foi feito e para (players de música ou de vídeo), ou mesmo programas que necessitam da continua interação do usuário, chegando a consumir determinada quantidade de memória RAM, de processador, e as vezes, de dispositivo gráfico, enquanto estão sendo executados, (Photoshop, Autocad e Blender), os jogos irão requerer determinado desempenho gráfico, inserções no teclado, execução de áudios e efeitos sonoros, de uma forma constante e sincronizada. Cada ação feita durante um jogo, irá trazer uma animação dos personagens diferente, talvez apresentará mais personagens na tela, um determinado efeito sonoro, e tudo isso fará com que se consuma mais do processador.
É preciso que tudo isso funcione da melhor forma possível, para que simples ações dentro do jogo não aumente desnecessariamente o consumo da CPU, ou encontremos delay nas combinações de movimentos que fazemos no teclado, não reconhecimento de joystick e outros hardwares que se possam usar no gameplay do jogo, e etc. Tudo isso é coordenado por uma API, que dependendo de sua versão, poderá trazer uma experiencia melhor ao jogador, deixando o jogo muito mais fluido e obtendo o melhor desempenho, tanto do jogo como do hardware.
Vulkan vem pra competir com o DirectX
Citamos até o momento as APIs OpenGL e DirectX. O DirectX está na sua versão 12, trazendo grandes melhorias nos desempenhos dos jogos. A API Vulkan vem para substituir a OpenGL, conta a ajuda da AMD, que doou para o projeto, a Mantle, outra API que a AMD estava desenvolvendo. A API Vulkan trabalha melhor com processadores e GPUs de múltiplos núcleos, distribuindo a carga de trabalho entre todos os núcleos ao invés de um só, como a OpenGL era propensa a fazer. Pode acessar e executar instruções que antes não dava pra fazer com seu antecessor e, como grande atrativo, é uma API multiplataforma, quer dizer, ela serve tanto para Linux como para Windows, Android e outros. Isso é muito bom para os desenvolvedores, porque acaba facilitando muito na hora de fazer um porte de um jogo de uma determinada plataforma para outra.
O fato do Vulkan ser multiplataforma não ajuda tão somente no porte de algum jogo, mas faz também com que este possa ter um desempenho bem mais próximo dos jogos no Windows que o OpenGL conseguia se comparado ao DirectX.
O Vulkan, de fato, ajuda o Linux na questão dos jogos?
A API Vulkan não só ajuda diretamente o Linux no desenvolvimento de portes de jogos do Windows, como também já é usado no Proton, um software desenvolvido pela Valve, usando como base o código fonte do Wine, só que, em vez de traduzir as bibliotecas dos programas baseados em DirectX para o OpenGL, ele traduz para o Vulkan.
Já que tocamos no assunto, também vamos falar sobre o Wine e o Proton. Para aqueles que já conhecem o Linux, o Wine dispensa apresentações, mas para aqueles que estão começando a conhecer, o Wine é um software usado para rodar programas que foram feitos para Windows, no Linux. Não consegue fazer isso com tanta eficiência, até porque Windows e Linux são sistemas completamente diferentes, mas pode ser encarado como um ótimo quebra galho para quem está chegando no Linux. Wine é o acrônimo para “Wine Is Not an Emulator”, pessoalmente odeio esse acrônimo por ele conter o próprio nome dentro do acrônimo, acho uma forçação de barra, mas enfim … O acrônimo “Wine” indica que ele não é apenas um emulador, ou seja, um programa que simula (emula) outro, na verdade o Wine é um tradutor. Quando o usuário tenta executar um programa do Windows no Linux pelo Wine, ele irá verificar os arquivos nativos do Windows que esse programa precisa e fará a tradução para arquivos da biblioteca do Linux.
O Proton foi desenvolvido pela Valve para funcionar na Steam para Linux, fazendo a tradução dos jogos nativos do Windows para a plataforma do pinguim. Como dito acima, o Proton faz a tradução dos arquivos do DirectX para os arquivos do Vulkan, por conta disso, é de se imaginar que o trabalho será muito menor quando o jogo nativo Windows seja feito já em cima da API Vulkan.
Perfil de jogadores no Linux
Cada plataforma tem seu perfil de jogadores e com o Linux não poderia ser diferente. Os jogadores Linux são uma pequena subdivisão do total de jogadores que encontramos para Pcs. Como é de se imaginar, jogadores Linux são o tipo de jogadores que amam o sistema operacional, que tentam fazer todas as suas atividades nele. Quando aparentemente não dá pra fazer o que eles querem, eles dão um jeito, chegando muitas vezes a perder mais tempo tentando fazer algo rodar no Linux do que de fato executando a tarefa que tanto queriam, mas esse perfil não é só o do usuário Linux, e sim, do usuário técnico, que sente prazer em resolver problemas, de encontrar soluções, que tem em mente que podem perder algum tempo pra resolver determinada questão, mas quando sentar na frente do PC novamente, será apenas para utilizar, pois a bronca já foi resolvida. Esse tipo de usuário já passa boa parte do seu dia na frente de um Linux, então, até mesmo por uma questão de conveniência, é melhor para ele que o jogo que ele joga pra se distrair consiga rodar no Linux.
Muitas e muitas vezes, esses usuários tentam engolir desempenhos mais baixos, quedas de fps, falhas nos gráficos, falha nos efeitos de iluminação apenas para ter o gosto de rodar tudo no Linux e não ter que dividir espaço no HD com outro sistema operacional que eles só instalariam em suas maquinas para poder jogar os jogos que gostam. Para alguns pode parecer masoquismo, mas na verdade, se trata de um publico exigente e que vai atrás de soluções, e é justamente por sua perseverança que os avanços nessa área vem crescendo cada vez mais e o quadro de jogos nativos para Linux vem crescendo vertiginosamente.
Mas e aí? a coisa para o Linux vai melhorar ou não?
A quantidade de jogos feitos para Linux vem crescendo e muito conforme o tempo passa. Há anos atrás seria improvável ver títulos como Ark – Survival Envolved, CS GO, Shadow of the Tomb Raider, Mad Max, SID MEIER'S CIVILIZATION VI e muitos outros saindo nativamente para Linux, e isso se deve, em boa parte aos usuários e a empresas como a Steam, AMD e outras, que querem ver um ambiente mais livre e competitivo, ao invés de um mercado que se resuma apenas a um sistema operacional (Windows), a uma empresa (Microsoft). Inclusive, a Valve já chegou a fazer uma distribuição Linux voltada para jogos, o SteamOS, e incentivou a produção de computadores com sua marca, objetivando funcionar nas salas dos usuários como se fossem consoles de vídeo game, as chamadas “Steam Machines”. Tudo isso por considerar que a Microsoft estava tomando medidas monopolistas com relação a loja da Xbox embutida no Windows 8, lá pelos idos de seu lançamento, mas isso é história para uma próxima postagem.
No geral, o quadro que podemos avaliar é que a venda e a produção de jogos está melhorando, e muito para o Linux, mas guardamos sempre o bom senso em entender que não dá pra fazer comparações com a plataforma Windows, pois a mesma impera absoluto nos desktops e laptops. A maioria dos jogos nativos do Linux, são portes feitos do Windows, e a gama de jogos que funcionam no Linux mas não são nativos, são “gambiarras” feitas no Wine ou no Proton para conseguir rodar. Como o futuro a deus pertence, talvez com uma futura mudança de paradigma, o Linux venha a ganhar um destaque ainda maior no mercado de jogos, o que não é uma coisa que podemos estranhar se acontecer. A Valve já deixou BEM a entender que estaria disposta a investir pesado no Linux para que ele possa entrar no páreo, caso a Microsoft tenha algum chilique absolutista.
O que os usuários de Linux podem fazer para esse quadro continuar melhorando, é continuar comprando jogos compatíveis com o Linux, e principalmente, OS JOGANDO NA PLATAFORMA. Na Steam, caso você compre um jogo que tenha sua versão nativa para Windows e para Linux, você não precisa escolher uma das versões, o jogo será instalado em sua respectiva versão quando for requisitado. É bom sempre que possível, jogar sua versão de jogo nativa do Linux, principalmente em plataformas de vendas como a Steam, pois a mesma tem mecanismos para identificar como estão a quantidade de jogos que estão sendo vendidas para os sistemas operacionais e como esses jogadores estão jogando, se passam mais tempo jogando seu jogo multiplataforma no Windows ou Linux. Fazendo medidas simples como essas, com certeza o quadro tende a melhorar ainda mais para os jogadores da plataforma do pinguim, pois essas empresas demonstram sua inclinação para fortalecer o comercio de jogos no Linux.
Até a próxima