Siga a cinegames

FeedBurner

Enter your email address:

Delivered by FeedBurner

Porque muitos dos jogos ainda estão usando Dx9.Programador da Eletronic Arts explica



imagem
Porque muitos dos jogos ainda estão usando Dx9c
A Microsoft lançou o DirectX 9 para o mundo no final de 2002. Tinha muitas melhorias em relação às versões anteriores (mais notavelmente a possibilidade de unidades de vertex e pixel serem programáveis totalmente), e provou ser uma API gráfica muito popular com desenvolvedores de jogos PC.


Ao longo dos anos, DirectX 9 recebeu várias e pequenas atualizações, culminando com DirectX 9.0c em 2004. Esta viria a ser a API gráfica para o Xbox 360 com algumas melhorias especificamente para esse hardware, ampliando ainda mais seu alcance.

Desde então, DirectX 10 foi lançado para o Windows Vista em 2006, o DirectX 11 foi para o Windows 7 em 2009.

Games de PC Hoje

A maioria dos jogos para PC lançados hoje ainda usam DirectX 9. Por exemplo, Portal 2, Fable III e Crysis 2 foram lançados em 2011 e todos usam DirectX 9 como sua API gráfica (embora no caso de Crysis 2 exista um patch disponível DirectX 11, oferecendo melhorias gráficas ). O único jogo importante que não suporta DirectX 9 em tudo é Battlefield 3. Um monte de jogos a partir dos últimos anos têm suporte para DirectX 10 ou 11, mas quase todos estes também suportam DirectX 9 também.

Este padrão de focar no DirectX 9 é contrário ao comportamento dos desenvolvedores de jogos para versões anteriores do DirectX 9, que saltavam para a mais nova versão assim que possível. Então por que pararam no DirectX 9?

Na opinião de Keith Judge, um desenvolvedor de games inscrito no AltDevBlogADay, existem várias razões para isso. Mais precisamente nesta ordem particular ...

Windows XP - DirectX 10 foi a primeira versão da API a completamente quebrar compatibilidade com versões anteriores. Só iria rodar no Windows Vista e Windows 7. Isso foi necessário devido a uma mudança fundamental no modelo de driver para DirectX (apesar de muitos na época acharem que isso não era necessário e a Microsoft tivesse cometido um erro) , mas como resultado deste movimento, a adoção da nova tecnologia foi mais lenta. Para um jogo suportar somente DirectX 10, só em 2006, quando o Vista foi lançado, significando perder quase todas as vendas deste jogo, nem preciso lembrar que a grande maioria dos gamers no momento ainda estavam usando o Windows XP. No entanto, isso está mudando rapidamente , pela pesquisa da Valve (provavelmente a melhor fonte de informação à disposição do público deste tipo) mostra que menos de 20% dos jogadores ainda estavam usando o Windows XP em junho de 2011 e este percentual está caindo. Pessoalmente, acho que agora é a hora para os jogos serem escritos usando DirectX 11.

imagem

Xbox 360 - Um monte de jogos são lançados em múltiplas plataformas. Para os jogos que estão no Xbox 360 e PC, faz sentido usar o DirectX 9 em ambas as versões para minimizar o trabalho necessário ao invés de manter dois engines gráficos separados. Por outro lado, é complicado manter algumas coisas com o DirectX 9 no PC que são simples na Xbox 360. Por exemplo, no Xbox 360 é simples de ler um buffer de profundidade a partir de um shader, mas no PC com DirectX 9, você tem que recuperar os parâmetros de profundidade escrevendo para uma textura segundo formato R32 (que é lento) ou usando driver hacks (modos alternativos), como o formato de textura INTZ e depois lidar com diferentes placas de vídeo separadamente, isso complica e aumenta os custos. Estas questões foram resolvidas no DirectX 10/11.

Novo modelo de driver - Devido à mudança no modelo de driver para o DirectX 10, todos os fabricantes de placas de vídeo tinham que escrever novos drivers para suportar o novo sistema. Isto resultou em erros e problemas de desempenho em DirectX 10 nos jogos na época. Isso é totalmente compreensível para qualquer nova peça complicada de tecnologia , tais problemas preliminares sempre acontecem (e os problemas já foram resolvidos para quem não sabe), o efeito negativo disso, foi que o DirectX 10 ganhou uma má reputação (talvez imerecida?) junto com o Windows Vista. Quando o Windows 7 foi lançado, a nova versão do DirectX 11 foi lançada, não foi usada a numeração de versão 10.2 o que talvez demontra que a Microsoft estivesse ciente desta percepção das pessoas e queria fazer um reboot no DirectX.

Impacto tecnológico - DirectX 9 foi revolucionário, já as versões 10/11 Direct X não foram - O que quero dizer com isto é que DirextX 9 abriu riqueza para novas possibilidades gráficas se comparado às versões anteriores. A capacidade de escrever longos shaders HLSL significava que os jogos, de repente tinham a capacidade de usar modelos mais sofisticados de iluminação, materiais mais variados e pós-processamento - todos com uma programação bastante simples (e uma boa compreensão da matemática). Há muitos jogos DirectX 9, que simplesmente não teriam sido possíveis visualmente antes. Por esta razão, DirectX 9 ainda é suficientemente bom para gráficos e para os jogos modernos. DirectX 10 e 11 adicionaram novos recursos - shaders, geometria DirectCompute, tessellation, etc, ótimos em resumo, mas não significam o mesmo salto técnico que o DirectX 9 permitiu. Para Keith, a maior parte dos novos recursos do DirectX 10 / 11 são projetados para tornar as coisas mais fáceis para desenvolvedores ou permitir o aumenta o desempenho, ao invés de adicionar inteiramente novas possibilidades gráficas. Ele ainda acredita que as características melhoradas do recente patch DirectX 11 para Crysis 2 são provavelmente possíveis de se fazer no DirectX 9, mas seria um pesadelo para implementar, ou teria sido muito lento durante a execução.

Driver novo, placa nova? - A Percepção de que um novo DirectX significa sempre comprar uma placa gráfica nova, na opinião de Keith é apenas parcialmente verdadeiro - mas apenas para placas DirectX 10 , o que determinou um conjunto de recursos mínimos,porém o DirectX 11 adicionou um novo recurso para permitir que as placas de vídeo antigas (DX9) possam "usar" seus recursos. Para aproveitar o DirectX 11 (tessellation, computeshader, por exemplo), você precisa de uma placa gráfica que implementa tais recursos, mas é perfeitamente possível executar jogos DirectX 11 em hardware mais antigo, desde que o desenvolvedor permita usar o recurso correto no nível adequado. Por exemplo, o desenvolvedor pode testar o nível de funcionalidade suportada e substituir geometria tessellatada por geometria texturizada em hardware, onde o tessellation não seja suportado (claro que a qualidade gráfica e performance poderão não ser as mesmas, mas o jogo não deixará de ser executado). Keith também diz que está desenvolvendo seu próprio engine em DirectX 11 em uma GeForce 8800 GTX (um modelo limitado a DirectX 10), e caso ele queira pode desenvolver também para modelos anteriores como o DirectX 9, não teria limitações. O sistema de ajuste de níveis de recursos do DirectX 11 me permite simular hardware mais antigo, a camada de debug vai avisar se eu tentar usar um recurso que não esteja disponível para determinado nível. No entanto, Keith não tentou usar seu engine numa placa DirectX 9 pura, mas que assim que chegar a época dos testes, ele vai submeter a engine a um modelo desses para descobrir os problemas (provavelmente o engine vai rodar numa qualidade inferior, mas vai rodar).

Movimento para o futuro.

imagem

Tal como a equipe de Battlefield 3, a DICE, Keith produziu o seu engine usando somente DirectX 11, o foco é na facilidade de uso e flexibilidade da nova API, para que eu possa literalmente construir o jogo mais rápido sem se preocupar com truques diferentes para diferentes modelos de placas de vídeo. Além disso, mais de 80% dos jogadores de PC podem, teoricamente, poderiam executar a sua engine ou jogo (segundo o Steam) - certamente uma proporção ainda maior no momento em que for lançado, daqui a alguns meses. As razões listadas acima para a vida prolongada do DirectX 9 são em sua maioria históricas e hoje já não servem mais para justificar um engine sendo escrito somente em DirectX 9. Keith lembrou uma frase de um desenvolvedor na GDC (provavelmente da DICE) dizendo que eles escrevem seus novos recursos gráficos em DirectX 11 em primeiro lugar, então criam os demais recursos para o Xbox 360 e PS3 onde dá, esta é a maneira mais fácil e permite que suas versões de PC brilharem (e manterem a compatibilidade com os consoles e seus recursos mais limitados).

A aposentadoria do DirectX 9 chegou , vamos deixá-lo viver o resto de seu tempo em paz e sossego.


Comente com sua conta Blogger
Comente com sua conta Google+

0 comentários:

Postar um comentário