Eu já sei que muitos computadores hoje têm uma GPU compatível com DirectX e OpenGL. Mas e os computadores que não? Posso escrever um jogo 2D simples que não dependa da GPU, para que funcione mesmo em máquinas mais antigas?
Existe uma biblioteca de jogos C ou C ++ multiplataforma que me permita fazer isso? Idealmente, essa biblioteca me permitiria alternar a aceleração de hardware com muito poucas linhas de código.
c++
2d
c
cross-platform
hardware-acceleration
user999687
fonte
fonte
Respostas:
Certamente, você pode usar SDL e acredito que ele faz tudo na CPU por padrão. Você pode realmente obter um desempenho muito bom se gerenciar bem seu código.
fonte
Você acha que Pong usou uma GPU?
Os jogos em Flash que você joga na Web o tempo todo, você acha que eles usam uma GPU?
(São apenas nessas últimas semanas que os jogos em Flash podem finalmente ser desenvolvidos para usar o suporte a GPU. E o Flash existe há consideravelmente mais de uma década.)
Claro que é possível. Eu jogava games há uma década antes de existir uma placa gráfica acelerada para o mercado consumidor, sem falar em processadores Turing completos dedicados a gráficos (e mais especificamente, a gráficos de jogos).
fonte
Não se esqueça, os videogames de primeira geração foram criados para um osciloscópio! E por videogames de primeira geração, quero dizer pong. Lembre-se de uma GPU, é um processador matemático, que também é o que é uma CPU. É apenas mais especializado.
fonte
É absolutamente possível: os primeiros jogos de computador existiram antes das GPUs - que, como você aponta, são hardware projetado para acelerar a matemática 3D. Tudo o que está sendo feito na GPU também pode ser feito na CPU, embora geralmente em uma velocidade geral mais lenta. (A versão inicial do Quake, por exemplo, usava apenas renderização de software [1] )
Mesa3D é uma implementação OpenGL que alega suporte à renderização de software completo. (Eu não o usei a não ser como uma implementação de referência).
fonte
se for apenas para jogos em 2D, sugiro que você use um
flash 10
ouSDL
, mas se você acha que seu jogo pode conter recursos 3D e renderização, também pode usar o Irrlicht . é basicamente um mecanismo 3D multiplataforma de código aberto com suporte para renderização de hardware e software:do wiki:
fonte
Enquanto o que você pede é possível, é importante notar que geralmente não há praticamente nenhuma vantagem em descartar a aceleração 3D. Todos os PCs modernos possuem aceleração 3D. As poucas máquinas antigas sem esse recurso constituem um mercado de jogos extremamente pequeno, e você provavelmente teria outros problemas de compatibilidade com elas também.
Receio que você esteja fazendo esta pergunta pelo motivo errado.
fonte