[リストへもどる]
一括表示
タイトルハードについての技術的な質問です。
記事No15840
投稿日: 2017/08/28(Mon) 20:02:02
投稿者nomad2020
青龍さん、こんばんは。
Steam にてフレンド登録させてもらっている nomad2020 です。

私は、コンソールでもゲームをする人間なのですが、
ちょっと技術的な質問をしてもよろしいでしょうか?

少し前に、PS4 のアンチャーテッド4をプレイしました。
フルHDで、これほどのグラフィックを実現できることに驚きました。
(もっとも、30fpsなのですが…)
AMDのAPUであるA10にカスタマイズを加えただけで、このクオリティが可能になることが不思議に思えます。

Windows 上でA10を使えば、ハーフHDで 30fps を出すのがギリギリだという記事をネット(4gamerのBF4の記事)で読みました。

この差は、一体どこから生まれてくるのでしょうか?
ネットの記事などで、「ハードを直に叩けるからだ」と書いてありましたが、
プログラムの知識を持たない私には、実感としてよく分かりませんでした。

これから DirectX 12 や Vulkan が普及してくると、
ロースペックのPCでも、かなりのグラフィックが可能になる、
と考えても良いのでしょうか?

よろしければ、回答の方をよろしくお願いします。

タイトルRe: ハードについての技術的な質問です。
記事No15841
投稿日: 2017/08/29(Tue) 00:17:30
投稿者青龍 < >
> 少し前に、PS4 のアンチャーテッド4をプレイしました。
> フルHDで、これほどのグラフィックを実現できることに驚きました。
> (もっとも、30fpsなのですが…)
> AMDのAPUであるA10にカスタマイズを加えただけで、このクオリティが可能になることが不思議に思えます。
>
> Windows 上でA10を使えば、ハーフHDで 30fps を出すのがギリギリだという記事をネット(4gamerのBF4の記事)で読みました。
>
> この差は、一体どこから生まれてくるのでしょうか?
> ネットの記事などで、「ハードを直に叩けるからだ」と書いてありましたが、
> プログラムの知識を持たない私には、実感としてよく分かりませんでした。

発売から数年が経過しており「PC相当」で見れば既に遅いとも言えるハードウェアを搭載している
コンソールなのに実行速度が速い。その理由はOSへの依存度にあります。
言ってみればPCのゲームが遅いのはWindows上で動いているからです。

つまりPCのハード性能を活かすには、Windowsを介さずに動かせば良い訳です。
昔のMS-DOS時代の様にシングルタスクでOSの管理下で無ければ高速。
PS4など問題にならない速さでゲームを動かせるでしょう。
しかしOSを介さないとは、ビデオやサウンドのハードウェアを各ゲームが直接制御する事になり
そんな事は実質不可能です。たった一種類のハードウェアで統一されているコンソールと違い
PCのビデオやサウンドカードは多種多様。それを直接コントロールするとなると
全てのハードウェア毎に別々の制御プログラムを書かないとなりません。
しかも新しいハードが次々に出るのでそれ等への対応も困難(コンソールでは変わらないからOK)。

Windows上であればハードウェアの違いは各ハードに添付されるドライバが吸収してくれるので
各会社はWindows対応としてゲームを作れば、後はちゃんと動くのかはドライバ次第。
これにより個々のハードウェアの差を考えずに済むので制作の負荷を大幅に減らす事が出来ます。
しかしこのドライバを介して動く=ハードウェアを直接制御出来ない(叩けないとも言う)となると
実行速度は大幅に落ち込んでしまいます。これが同等のハードウェアでもPCゲームが遅い
(コンソールは速い)という理由です。

ただし大きな利点も在ります。ゲームを含めた全アプリがWindowsの制御下に居るからこそ
ゲームをしている最中に全く別のアプリからオーバーレイ表示をさせたり
サウンドを鳴らしたりが可能になり、ユーザーが自分で選んだ様々なアプリをゲームと平行させて
動かす事が出来ます。ボイスチャット, 動画撮影, 各種Mod等。
対して単体のゲームがハードウェアを独占制御下に置いてしまうと
こういう自由選択は困難となります。(コンソール側で用意しているアプリ限定等)。

なおPC側でもなるべくローレベル(ハードウェアに近い=直接制御の意味)での動作を可能にする様な
仕様は出てきていますが、やはりコンソールと同等というのは難しいでしょう。
しかし逆にコンソール側がユーザーの要望に応えてゲーム中に別アプリの平行稼働という方向も
出してきており、これが複雑化すると速度が落ちるのは確実なので差が詰まるという可能性はあります。

タイトルRe^2: ハードについての技術的な質問です。
記事No15842
投稿日: 2017/08/30(Wed) 19:02:53
投稿者nomad2020
>
> 発売から数年が経過しており「PC相当」で見れば既に遅いとも言えるハードウェアを搭載している
> コンソールなのに実行速度が速い。その理由はOSへの依存度にあります。
> 言ってみればPCのゲームが遅いのはWindows上で動いているからです。
>
> つまりPCのハード性能を活かすには、Windowsを介さずに動かせば良い訳です。
> 昔のMS-DOS時代の様にシングルタスクでOSの管理下で無ければ高速。
> PS4など問題にならない速さでゲームを動かせるでしょう。
> しかしOSを介さないとは、ビデオやサウンドのハードウェアを各ゲームが直接制御する事になり
> そんな事は実質不可能です。たった一種類のハードウェアで統一されているコンソールと違い
> PCのビデオやサウンドカードは多種多様。それを直接コントロールするとなると
> 全てのハードウェア毎に別々の制御プログラムを書かないとなりません。
> しかも新しいハードが次々に出るのでそれ等への対応も困難(コンソールでは変わらないからOK)。
>
> Windows上であればハードウェアの違いは各ハードに添付されるドライバが吸収してくれるので
> 各会社はWindows対応としてゲームを作れば、後はちゃんと動くのかはドライバ次第。
> これにより個々のハードウェアの差を考えずに済むので制作の負荷を大幅に減らす事が出来ます。
> しかしこのドライバを介して動く=ハードウェアを直接制御出来ない(叩けないとも言う)となると
> 実行速度は大幅に落ち込んでしまいます。これが同等のハードウェアでもPCゲームが遅い
> (コンソールは速い)という理由です。
>
> ただし大きな利点も在ります。ゲームを含めた全アプリがWindowsの制御下に居るからこそ
> ゲームをしている最中に全く別のアプリからオーバーレイ表示をさせたり
> サウンドを鳴らしたりが可能になり、ユーザーが自分で選んだ様々なアプリをゲームと平行させて
> 動かす事が出来ます。ボイスチャット, 動画撮影, 各種Mod等。
> 対して単体のゲームがハードウェアを独占制御下に置いてしまうと
> こういう自由選択は困難となります。(コンソール側で用意しているアプリ限定等)。
>
> なおPC側でもなるべくローレベル(ハードウェアに近い=直接制御の意味)での動作を可能にする様な
> 仕様は出てきていますが、やはりコンソールと同等というのは難しいでしょう。
> しかし逆にコンソール側がユーザーの要望に応えてゲーム中に別アプリの平行稼働という方向も
> 出してきており、これが複雑化すると速度が落ちるのは確実なので差が詰まるという可能性はあります。

青龍さん、こんばんは。
nomad2020です。
本当に詳しい解説を、ありがとうございます。

Windowsが途中の処理に関わっているから、どうしても処理速度の低下を招くのですね。
しかし、青龍さんのおっしゃるとおり、PCでゲームをやるという行為は、
一度体験すると、かなりの魅力がありますね。
攻略サイトを見ながら、ゲームをするというのも、PS4で出来ない事もないですが、
かなり面倒です。
私は、コンソールでゲームをやる場合は、大体同時にPCの電源を入れています。

最近、GOGなども使っていると、MS-DOSのゲームが出来たりする互換性も、
Windowsでゲームをやる魅力かな、と思っています。
DoomやQuakeが、最新のPCでも動くというのは、コンソールにはない部分ですね。
Modのサポートは、コンソールの一部のゲーム(Bethesdaの作品とか)で始まりましたが、
どうもハードウェアメーカーは、乗り気でないような気がします。

ドライバー次第で、ハードウェアの違いを乗り越えてしまうというのは、
私には、まるで魔法のように思えます。
私的な感覚ですが、nVidiaに比べてAMDはドライバー周りが弱い(フリーズが多い)
気がします。
次の自作PCはRyzenにしようかと考えているのですが、
そこがちょっと不安です。

青龍さんのおかげで、長年の疑問が氷解しました。
本当にありがとうございました。

タイトルDirectX 12やVulkanでの開発
記事No15843
投稿日: 2017/08/31(Thu) 00:54:28
投稿者青龍 < >
> これから DirectX 12 や Vulkan が普及してくると、
> ロースペックのPCでも、かなりのグラフィックが可能になる、
> と考えても良いのでしょうか?

忘れていたのでちょっと追記。現在グラフィックス関連処理で主流のDirectX11やOpenGLなどは
特にWindowsとの組み合わせではドライバ部分での負荷が高く、もっと速い処理系統として
ハードウェアの直接制御に寄った物であるDirectX 12 や Vulkanが注目されています。
負荷を減らす訳ですから当然ミドルからロークラスのPCにおいて大きな効果が見込めるでしょう。
現時点ではむしろハイエンドクラスだと効果が薄いという話が出てます。

しかし大きな問題もありまして、ハードウェアの直接制御寄りになるという事は
それだけゲームを作るのが大変という意味にもなります。

多数のハードウェアの組み合わせを考えないとならないPCに対して単一設計のコンソールでの
開発はその点では大変に楽ですが、ハードウェアを直接コントロールするというゲーム開発は
実はPCよりもずっと大変です。上手く作れば高速化出来るがその速さを出す為の研究や工夫、
またはバグを修正したりするのが非常に大変という意味です。基本的にはプログラム開発者に
解り易いほど処理は遅く、反対に処理が速い体系(直接制御)にするほど制作は困難となります。

つまりDirectX11やOpenGLで開発した方が実行速度は遅いが楽であり、
それ故にDirectX 12やVulkanでの開発は規模がかなり大きな開発会社にしか向かないという
感じになってます。なのでとにかく速さが欲しいという大物タイトル以外ではあまり採用されない
という可能性もあります。ポイントとしては汎用エンジンの対応です。Unreal EngineとかUnityが
エンジンとしてこれ等のAPIに対応すれば数多くの会社が利用する様になるでしょう。

タイトルRe: DirectX 12やVulkanでの開発
記事No15844
投稿日: 2017/09/01(Fri) 21:56:53
投稿者nomad2020
> > これから DirectX 12 や Vulkan が普及してくると、
> > ロースペックのPCでも、かなりのグラフィックが可能になる、
> > と考えても良いのでしょうか?
>
> 忘れていたのでちょっと追記。現在グラフィックス関連処理で主流のDirectX11やOpenGLなどは
> 特にWindowsとの組み合わせではドライバ部分での負荷が高く、もっと速い処理系統として
> ハードウェアの直接制御に寄った物であるDirectX 12 や Vulkanが注目されています。
> 負荷を減らす訳ですから当然ミドルからロークラスのPCにおいて大きな効果が見込めるでしょう。
> 現時点ではむしろハイエンドクラスだと効果が薄いという話が出てます。
>
> しかし大きな問題もありまして、ハードウェアの直接制御寄りになるという事は
> それだけゲームを作るのが大変という意味にもなります。
>
> 多数のハードウェアの組み合わせを考えないとならないPCに対して単一設計のコンソールでの
> 開発はその点では大変に楽ですが、ハードウェアを直接コントロールするというゲーム開発は
> 実はPCよりもずっと大変です。上手く作れば高速化出来るがその速さを出す為の研究や工夫、
> またはバグを修正したりするのが非常に大変という意味です。基本的にはプログラム開発者に
> 解り易いほど処理は遅く、反対に処理が速い体系(直接制御)にするほど制作は困難となります。
>
> つまりDirectX11やOpenGLで開発した方が実行速度は遅いが楽であり、
> それ故にDirectX 12やVulkanでの開発は規模がかなり大きな開発会社にしか向かないという
> 感じになってます。なのでとにかく速さが欲しいという大物タイトル以外ではあまり採用されない
> という可能性もあります。ポイントとしては汎用エンジンの対応です。Unreal EngineとかUnityが
> エンジンとしてこれ等のAPIに対応すれば数多くの会社が利用する様になるでしょう。

青龍さん、こんばんは。
またまた詳しい解説を、ありがとうございます。
なるほど、DirectX12やVulkanでの開発は難しいのですね。
対応しているゲームが少ないなと思っていたら、
そういう理由があったのですね。

Vulkanに対応しているゲームで知っているのは、
Doom(2016)くらいでしょうか?
DirectX12はメジャーどころで Deus ex Mankind Divided や Rise of the Tomb Raiderが
対応していたように記憶しています(間違っていたら、ごめんなさい)。
普及には、まだまだ時間がかかりそうですね。

同じようなハードウェア直接制御系のAPIに、
AppleのMetalというのがあったように記憶しています。
MacやiPhoneはハードが限定されているので、
これからのゲーム開発には、Apple製品が有利という逆転現象みたいなことも起こるのでしょうか?
(Macはゲームに向かないというイメージがありました)。

私は、五年前に組んだ自作PCを騙し騙し使っているので、
DirectX12等が普及してくれると、凄く助かります。
(GPUだけはGeforce 1050Tiなので、対応してくれているはず)
新規に組むことも考えているのですが、
インディーズや古めのタイトルだと、十分すぎる性能で、
4Kを目指さなければ、重めのタイトルもなんとか動く、と言った感じで悩みどころです。

青龍さんのおかげで、よりPCゲーミングの知識を深めることが出来ました。
ありがとうございました。