今日の多くのコンピューターに、DirectXとOpenGLをサポートするGPUが搭載されていることはすでに知っています。しかし、そうでないコンピュータはどうでしょうか?古いマシンでも動作するように、GPUに依存しないシンプルな2Dゲームを作成できますか?
これを可能にするクロスプラットフォームのCまたはC ++ゲームライブラリはありますか?理想的には、このようなライブラリを使用すると、ほんの数行のコードでハードウェアアクセラレーションを切り替えることができます。
今日の多くのコンピューターに、DirectXとOpenGLをサポートするGPUが搭載されていることはすでに知っています。しかし、そうでないコンピュータはどうでしょうか?古いマシンでも動作するように、GPUに依存しないシンプルな2Dゲームを作成できますか?
これを可能にするクロスプラットフォームのCまたはC ++ゲームライブラリはありますか?理想的には、このようなライブラリを使用すると、ほんの数行のコードでハードウェアアクセラレーションを切り替えることができます。
回答:
確かに、あなたはSDLを使うことができ、私はそれがデフォルトでCPU上ですべてを行うと信じています。コードをうまく管理すれば、実際にはかなり良いパフォーマンスを得ることができます。
PongがGPUを使用したと思いますか?
あなたがいつもウェブでプレイしているFlashゲームは、GPUを使用していると思いますか?
(GPUサポートを使用するためにFlashゲームを開発できるのは、ここ数週間だけです。Flashは10年以上前から存在しています。)
もちろん可能です。私は、コンシューマ市場向けの高速グラフィックスカードなど、グラフィックス専用の(さらに具体的には、ゲームグラフィックス専用の)チューリングコンプリートプロセッサが登場するまで、10年間ゲームをプレイしてきました。
それは絶対に可能です。最初のコンピューターゲームはGPUよりも前に存在していました。GPUで実行されている処理はすべてCPUでも実行できますが、通常は全体的な速度は遅くなります。(たとえば、Quakeの最初のリリースでは、ソフトウェアレンダリングのみが使用されていました[1])
Mesa3Dは、完全なソフトウェアレンダリングをサポートすると主張するOpenGL実装です。(ただし、リファレンス実装として以外は使用していません)。
質問することは可能ですが、3Dアクセラレーションを破棄しても通常はほとんどメリットがないことに注意してください。最近のすべてのPCには3Dアクセラレーションが組み込まれています。この機能のない数台の古いマシンは非常に小さなゲーム市場を構成しており、おそらくそれらとの互換性の問題も他にもあるでしょう。
あなたが間違った理由でこの質問をしているのを恐れています。