ページ 11

【雑談】必要スペック、推奨スペック

Posted: 2012年2月16日(木) 11:48
by delt
今まで簡単なテーブルゲームの様な物を製作していました。
内容は趣味程度で簡単なものが多く、2、3日で作れるようなボリュームがほとんどでした。
そして、その製作物を「暇つぶしにでも触って下さい」という思いでネットで配布していました。
その際、「ソリティアが動く環境であるならば問題なく動くだろう」と思っていたので特にゲームに関する必要なスペックは記載したことがありませんでした。
実はその理由のひとつに、必要スペックはどうやって決定するのかまるっきしわからなかったと言うのもあります。

そして現在、ちょっと大きいボリュームになりそうなゲームの開発にプログラマとして参加しています。
その開発中にふと、「このゲームを配布する時は必要スペックを記載するべきではないのか」と思うようになってきました。
それは、結構古いマシンではスムーズに動かせない感じが漠然とですがしてきたのが理由です。
しかし、前述したように必要スペックの割り出し方が一切わからず、ネットでも調べ方が悪いのか欲しい情報が得ることが出来ません。

そこで、皆様にお聞きしたいのですが、
開発したプログラムの必要スペックってどうやって決めていますか?

一応、私の予想では以下のパターンになるのではないかな、と思っていますがどうでしょうか?
1.開発したソースから計算する方法がある。
2.起動中にタスクマネージャから実際に使用しているメモリなどから割り出す。
3.必要スペックを割り出すツールなどがある。

なお、スペック項目はCPU、使用メモリ、グラフィックボードなど幾つかありますが、それぞれ違う方法で割り出すものなのでしょうか?
使用メモリはタスクマネージャから割り出せるのかなと思っていますが、それ以外は本当にさっぱりです。
さらに推奨スペックとはいったいどういう基準で割り出しているかが全くわかりません。

みなさんのやり方を参考にしたいと思っているので、
色々と意見を頂けたら幸いです。

Re: 【雑談】必要スペック、推奨スペック

Posted: 2012年2月16日(木) 12:45
by 天空橋光
色々な人に協力してもらったりして、色々な環境で動かしてみて動いた中での最低スペックが必要スペックです!(割と本気で)

・・・これだけだと、あんまりなのでその際に気にすべき留意点などを少々。

・基本的にグラボを見る
ゲームの場合、よっぽどCPUに依存する処理(例えば、大量の経路探索とか)でもしない限り、
昨今のCPU事情を考えると問題になることは少ないです。
そのため、大抵はグラボを中心に見ることになると思います。
グラボを見る場合最低限「GeForce」と「Radeon」の2つはデバッグもかねて動作確認しておいたほうが良いです(後最近だとインテル HD グラフィックスとかも余裕があれば試すといいかも)。
特に3D描画やシェーダーを利用していたりする場合は確認したほうが良いかと。
あと、3D描画やシェーダーを利用している場合はノートPCなどのオンボードのグラフィックチップはサポート対象外にしておくと楽です(これをサポートするとかなり大変)。

・開発環境によって最低スペックを早々に割り出しておく

開発環境によって必然切れるものは早めに切ってしまいます。
たとえば、VisualStudio2010を利用して開発すればWindows2000以前のWinOSは対象外となるとか、
シェーダー3.0を利用していた場合、シェーダー3.0以上対応のグラボが必要とか、
DirectX11で開発したらWindowsXP以前は対象外とか・・・などなど。
逆に言うと、これらのことを考慮して最初に開発環境を選定すると言う意味でもあります。

・最終防衛手段
商用で発売してるPCゲームとかは大抵必要スペックやら、推奨スペックを記載していますが、
必ず「上記環境を満たしていても全てのPCで動作するとは限りません」みたいな表記があります。
これは、PCが汎用パーツの寄せ集めで出来ている限り、相性の問題は回避できないし、
全ての組み合わせをテストすることは出来ないためです。
記載を行う場合は併せて必ず書くといいと思います

Re: 【雑談】必要スペック、推奨スペック

Posted: 2012年2月16日(木) 12:55
by softya(ソフト屋)
必要スペック、推奨スペックは実際にテストしてみないとわからないことが多いです。
ただ、利用するVC++コンパイラやDirectXのバージョンで必然的にOSやGPUの最低スペックは決まると思います。GPUシェーダ機能の必要最低バージョンもプログラムを組んでいる本人なら分かりますよね?
あとは実際に使用しているCPUメモリ容量とVRAMメモリ容量を調べてみましょう。
CPUメモリ容量はタスクマネージャで分かりますね。DXライブラリだとGetVideoMemorySize()関数でVRAM容量を確認できます。
「VRAMの使用量を表示するツール | Fallout New Vegas おぼえがき」 こんなツールもあります。
http://afternun.dyndns.org/blog/newvegas/?p=55

使用するCPUパワーは、INTELからAMDまでどうなるかは予想できませんので今のCPUの使用率から推測するしか有りません。
「CPUパフォーマンス比較表-MAXIMUMs ROOM」
http://maximums.gatt.nobody.jp/cpu.html
こういう所で、相対値から推測するしか無いでしょう。

実際にテストするのに勝るものは無いですけどね。
PCゲームメーカーも、このためだけにいろいろな世代のPCを残してあったりします。

Re: 【雑談】必要スペック、推奨スペック

Posted: 2012年2月16日(木) 18:22
by ISLe
アマチュアの場合、動作実績のあるマシンのスペックを列挙していたりするのをよく見ますね。

Re: 【雑談】必要スペック、推奨スペック

Posted: 2012年2月16日(木) 21:29
by Dixq (管理人)
私は自分のゲームの実行ファイルを持ってあちこちネットカフェを渡り歩いてテストしました。
最近のネットカフェは最新ハイスペックゲーム用マシンから、かなり古いオンボードグラフィックマシンまで幅広いので、とても有効だと思います。
人にテストしてもらうのも良いですが、やはり実際に自分で見られるのが良いですね。
そこで古めかしいPCのオンボードグラフィックでサクサク動くのなら、特に記載は必要ないかと思います。
未だにPen3を使っているような人はゲームをDLしてサクサク動かなかったからと言って文句は言わないでしょう・・。

Re: 【雑談】必要スペック、推奨スペック

Posted: 2012年2月17日(金) 01:20
by delt
色々と教えて頂き、誠にありがとうございます。

みなさんのお話を簡単にまとめてみると、
・まずは開発環境や手段などからある程度足切りが出来る。
・やはり具体的な数値は、実機による計測でないとわからない。
という感じなのですね。

実機の計測は、古いマシンが必要となってきますが、
企業であれば、色々なマシンをそろえることが出来ると思いますけど、
個人だとそれは難しいものではないかと思います。
というのも、私は新しいマシンを購入した時に、それまでのマシンを即処分してきたので古いマシンが残っていません。
(故障したら買い換えるという性分なので・・・)
そこで、Dixqさんのネットカフェを利用するというのはすごい良いアイデアだと思いました。

ちょっと疑問なのですが、
天空橋光さんが仰っていた「上記環境を満たしていても全てのPCで動作するとは限りません」というのはもっともなのですが、
もし製作したゲームを販売した場合はどうなる(どうしてる)のでしょうか?
お金を払った以上、購入者は釈然としない場合、問い合わせてくる可能性があると思いますが、
やはり必要スペックを記載したということは「それ以上のスペックでは動くと思います」という責任が発生するということで、
そのスペックを満たした上で動作しないという例外な状況にも全力でサポートすべきだと思いますか?
それとも、プログラムは性質上、絶対に動作する保障は無いという前提を盾に、サポートをそこそこにしますか?

あともうひとつあるのですが、
PCゲームを販売している企業は特に、必要スペックと推奨スペックの両方を記載していることが多いですが、
その違いとは何なのでしょうか?
なんとなく必要スペックは動作する最低スペック、推奨スペックはスムーズな動作をするスペックだと思っているのですが、
個人的には、ゲームというのは処理落ちがしたりカクついたりしたら、ゲームの内容が変わってしまう(難易度などが変わってしまう)可能性があるので、
スムーズに動くことが必要スペックなのでは?と思っているのですが、
実際の定義と言うのはこれとは違うのでしょうか?

Re: 【雑談】必要スペック、推奨スペック

Posted: 2012年2月17日(金) 02:04
by 天空橋光
僕は同人畑の人なので、販売はしたことなくて有償での配布しかしたことなく、法律の専門家ではないので、あくまで個人の意見として聞いてください。

まず、法的に過失が発生するかは、正直ちょっとわかりませんし、僕の同人活動ではそこまでの事象は発生したことはありません。
同人に関して言えば、自分の思いの強さに応じてでサポートを最大限すればよいと思っていますし、私はそうしています。

具体的に言うと、バグ報告があった際、極力環境を構築できるようにしたり、バグを報告してきた方に協力していただいてデバッグ作業を行ったりして、修正を試みます。
しかし、環境が構築できなかったり、デバッグの協力を断られたり、1週間とか時間をかけても解決が見えなく、自分の環境では問題が起こらない場合、「まことに申し訳ありません」とします。

なお、上記のようなことが起こらないようにするための方法というのは他にもあって、
例えば、動作確認用のゲームなり、体験版を事前に配布することによって事前に予防することなどが、ややできます。

それと、必要スペックについての解釈ですが、
必要スペックはオプションによって処理負荷を軽減すれば動作させることができるなども入るかと思います。
たとえば、「HDR表現をOFFにすれば動く」みたいなことかと。

Re: 【雑談】必要スペック、推奨スペック

Posted: 2012年2月17日(金) 11:21
by softya(ソフト屋)
たとえば、30フレームで一応遊べるレベルは必要スペックですが、60フレーム出すには推奨スペックって切り分けは出来ると思います。

>やはり必要スペックを記載したということは「それ以上のスペックでは動くと思います」という責任が発生するということで、
>そのスペックを満たした上で動作しないという例外な状況にも全力でサポートすべきだと思いますか?
>それとも、プログラムは性質上、絶対に動作する保障は無いという前提を盾に、サポートをそこそこにしますか?

スペック問題よりも全部の環境で動くようにする事自体が困難です。
自分のものより高スペックでも動かないことはありえますが動かない人に協力してもらわない限りバグも取れません。
それに自分が持たない環境のバグを取ることは、非常に高スキルの技術を必要とします。
結局、色々なPCやドライバ・バージョン、OSバージョンを揃えてテストするなんて個人では(会社でも)不可能です。
天空橋光さんのやられているサポートが妥当な線だと思います。

Re: 【雑談】必要スペック、推奨スペック

Posted: 2012年2月18日(土) 11:31
by delt
なるほど、
ハイクオリティな描写などの設定に必要なスペックが推奨スペックであり、
ロークオリティな設定で必要なスペックが必要スペックなのですね。

サポート対応に関しては、
当然絶対的な保障は不可能であることがプログラムが持つ性質だと認識していましたので、完全対応は無理だと思っていましたが、
自分が開発したゲームが金銭(売買)が絡むケースになる経験がありませんでしたので、そこの所は実際にどうやっているのか知りたいというのがありました。
例えば不具合を解消することが不可能となった場合は金銭の払い戻しをしなくてはならないのか、というところが気になっているところでしたので、
皆様の実体験でそういうのがあれば聞きたかったなという思いがありました。

ただ、そういう問題はやはり法律の専門家じゃないと、正しい対処がわからないと思いましたので、
少し話が肥大していくかもしれませんので、ここで解決とさせて頂きたいと思います。

皆様、ありがとうございました。

Re: 【雑談】必要スペック、推奨スペック

Posted: 2012年2月18日(土) 18:02
by ISLe
delt さんが書きました:例えば不具合を解消することが不可能となった場合は金銭の払い戻しをしなくてはならないのか、というところが気になっているところでしたので、
皆様の実体験でそういうのがあれば聞きたかったなという思いがありました。
免責に関する記述は万能ではありません。
相手に権利を放棄させる内容は、法律的に無効となるので、返金や損害賠償を免れる効果は無く、単なる注意書きとしての意味しかありません。

金銭が絡む場合は、必ず返金方法を用意しておいたほうが良いですよ。
そういう要求があったときは穏便に済ますのが得策です。
ただし要求を飲むのではなく返金で解決するという態度をしっかり示さないと付け込まれる可能性がありますので注意してください。