トップページ⇒tech
908コメント345KB

ゲームプログラミング相談室

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。 NGNG
おもにDirectXに間してのFAQ
0002名無しさん@お腹いっぱい。 NGNG
VC6.0+DirectX7SDKでプログラムしています。
フルスクリーンでダブルバッファを用いたゲームを作っているのですが、
環境によってリフレッシュレートが変わり、ゲーム速度が変わるために困っております。

これを解決するために、まずゲーム開始時にリフレッシュレートを取得して
1フレームごとの移動量を計算しようと思っているのですが
肝心のリフレッシュレートを調べる方法がわかりません。
知っている方が居れば教えてください。
0003名無しさん@お腹いっぱい。 NGNG
>これを解決するために、まずゲーム開始時にリフレッシュレートを取得して
>1フレームごとの移動量を計算しようと思っているのですが
ここら辺がよく分からんけど
FlipのかわりにBltを使いタイマーでタイミングを取るってのじゃ駄目なのか?

0004名無しさん@お腹いっぱい。 NGNG
>2
難しく考えすぎ、タイマかパフォーマンスカウンタで制御すればいい
そういう資料もってないなら上記のキーワードで検索してくれ
0005名無しさん@お腹いっぱい。 NGNG
ようはFPSが求められればいいんだろ?
メインループの中にカウンタを作って通過するたびに+1
タイマーを使って1秒過ぎるたびにカウンタの値を取って0に初期化
を繰り返せばOK
00062 NGNG
レスありがとうございます。

タイマを使う方法も以前に試して見ましたが、どうもカクカクして使い物になりませんでした。
上の移動量を計算〜…ですが、仮にFPS=60のときxが1ずつ進むなら、
FPS=75の場合はxは0.8ずつ進むようにしたいということです。
00072>5 NGNG
できればもっと正確に、しかも時間をかけずに求めたいのですが…
デバイスから現在のリフレッシュレートを取得するといった感じで。
0008名無しさん@お腹いっぱい。 NGNG
リフレッシュレートって昔はドライバーによって嘘返してきたりつかえなかったけど
最近はマトモになったのか?

>>6
キャラクターの座標を256倍とかして管理するんだよ
60FPSの時は +256、 75FPSの時は +256*60/75

で表示する時は 内部座標/256ね。これでスムーズに動くよ
0009名無しさん@お腹いっぱい。 NGNG
x += vx * dt;
y += vy * dy;
サンプルのDonutsのソース見てみるといいんでないかい。
方法の1つに過ぎないけどね。

>リフレッシュレートって昔はドライバーによって嘘返してきたりつかえなかったけど
>最近はマトモになったのか?
なってません。うちのGeForce2MXも返してこないし
Forced Refresh Rateすらちゃんと効きません。てめーNVIDIA!!!!
00109 NGNG
s/dy/dt
鬱だ死のう。
0011名無しさん@お腹いっぱい。 NGNG
つーかVSYNCなんてシカトしようぜ。
どうせWindowsモードではSYNCできねーんだからさ。
無理するこたーねぇ、意外とティアリングなんて気になんねーぜ。
0012名無しさん@お腹いっぱい。 NGNG
GetTickCountあたりで解決するほうが楽な気がする。
0013名無しさん@お腹いっぱい。 NGNG
GetTickCount使うくらいならtimeGetTime使いなさい。
えっと、こちらとか↓
http://www1.odn.ne.jp/synsyr/prog_t1.html
0014名無しさん@お腹いっぱい。 NGNG

DEVMODE devmode;
devmoce.dmBitsPerPel = 16;
devmoce.dmPelsWidth = 640;
devmoce.dmPelsHeight = 480;
devmoce.dmDisplayFrequency = 60;
devmode.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT | DM_DISPLAYFREQUENCY;
ChangeDisplaySettings( &devmode, 0 );
001514 NGNG
devmoce -> devmode

逝ってきます。
0016名無しさん@お腹いっぱい。 NGNG
>14
それってどの環境でも動作するんですか?
ChangeDisplaySettings()は動作が不安定だって聞いたことあるんですけど。
(2ちゃんで聞いたから、もしかすると嘘かもしれない)
0017名称未設定 NGNG

みんなで動作試験してみるってのはどうだ?
0018名称未設定 NGNG
ちゃんと動くようにするのはMS(とビデオカードのメーカー)の仕事だよなあ・・・。
DirectXできちんとリフレッシュレート変更できるようにしやがれ!

0019名無しさん@お腹いっぱい。 NGNG
リフレッシュレートは変更しないでー
モニターの相性によっては画面うつらなくなることもある
そのへん考慮するのも良いプログラムの条件だろ

それとなんでリフレッシュレートにこだわるかな
0020名無しさん@お腹いっぱい。 NGNG
>17
確認用のexeを作って、どっかにUPして。
0021>19 NGNG
>それとなんでリフレッシュレートにこだわるかな

そりゃ、同期映像と非同期映像は明らかに品質が違いすぎ、
完全な(時間軸の誤差ゼロの)同期映像を得る現実的な手段は
リフレッシュレートの変更しかないからです。

実は2、3ほど他の解法も考えてるけど、研究中なのでしばし待たれぃ。
#VSyncMAME萌え〜
0022名無しさん@お腹いっぱい。 NGNG
>>19
ゲームの映像は、アニメやCGと同様に1フレーム単位の芸術だから(3DCGもフレーム単位でいじくったりしてるのだ)その1フレームの時間がバラバラだと困るんスよ。
�冲を掛けるやり方は、実はある程度日常的な物理法則が働く場面にしか使えないんだけど、見過ごされがちなんだよなあ。
002322 NGNG
あ、1フレーム単位の芸術ってのは、カプコンの対戦格ゲーあたりが特に顕著なので、そのあたり観察してもらえるとお分かりいただけるかと・・・。
0024名無しさん@お腹いっぱい。 NGNG
FPS調整の話をしてるの?
0025名無しさん@お腹いっぱい。 NGNG
19 > 21,22 & 23
2が質問でリフレッシュレートの設定でDirectXのVSyncの頻度が
変わるからゲームの速度がたもてないよーって質問があったんですよ

それならばタイマかパフォーマンスカウンタを使えば
前回の更新からどのくらいの「時間」が経過したかを計算できますから
モニターのリフレッシュレートにわずらわされることもなく
ゲームのフレームレートもウェイトをかけて調節可能ですし
3Dならば時間単位での計算をすればいいんでないかということ
だったんですが

リフレッシュレートとアニメーションのフレームは同一の単語だとは
知りませんでした

モニターのリフレッシュレートを無視した映像更新はノイズがでるから
だめってことでVSync待ちして更新するんだとおもってましたが
違いましたか
0026名無しさん@お腹いっぱい。 NGNG
<VSYNC待ち
きょうび、プログラムが意識する必要は無いとおもうけど。
0027名無しさん@お腹いっぱい。 NGNG
3Dのゲームは場面やマシンスペックによって1フレームの画像を
作るのにかかる時間が何十倍も違っちゃうからねぇ…
0028>26 NGNG
んなわけないない。絶対にないない。思いっきり否定させてもらおう。

ていうか、Windowsユーザーが垂直同期取ってない映像に
慣れてしまっただけでしょう。
ゲーム機やアーケードのゲーマーには、
PCのゲーム動きがカクカクしていや〜んって嫌ってる人結構見かけますよ。
弾幕系2Dシューティングに至っては非同期だと完全にプレイに支障が出るし。
0029>27 NGNG
それと同期取りの問題とは違うと思うです。
まあ、確かにブラウン管が画面を1回走査する間に
フレームを1回確実に更新しないと
単なるティアリング防止にしかならないわけだけど。
0030名無しさん@お腹いっぱい。 NGNG
>まあ、確かに
意味通じてんじゃん(藁
0031名無しさん@お腹いっぱい。 NGNG
>26
Flip()使えばいいんでないの?
003231は >28 だ。 NGNG
 
0033名無しさん@お腹いっぱい。 NGNG
論点がちがうんだってば
PCではVSyncの頻度は変更できるからVSyncはモニターの更新同期に使えってことで
ゲームのフレームレートなんかはタイマー使えってことです
ゲームの画像生成とモニターへの映像更新は別ってことで

それとタイマーにGetTickCountやSetTimerは使ってはだめです
0034名無しさん@お腹いっぱい。 NGNG
>33
論点は1つだと思ってない?
リフレッシュレートをフレームレートに一致させる話も出てるんだよ。
VSYNCを変える話はここでも出てるから関係無いわけないだろ。
あと、フレームレートが保証できる場合の話と保証できない場合の話も出てるし。
0035名無しさん@お腹いっぱい。 NGNG
33>34
そうでしたか、すみません
0036名無しさん@お腹いっぱい。 NGNG
>それとタイマーにGetTickCountやSetTimerは使ってはだめです

なんで?
Windowsのメッセージループを通るたびにtimeGetTimeで時間を調べて
今すべきイベントをメッセージキューに投げる、ってわかりやすくて
よくない?
っていうか私の作ったゲームは全部これを使ってるよ。

0037名無しさん@お腹いっぱい。 NGNG
単に、GetTickCountの精度問題なんとちゃう?
003836 NGNG
あ、GetTickCountとSetTimer限定の話なのか。
鬱だ。
0039名無しさん@お腹いっぱい。 NGNG
 家庭用ゲーム機やアーケードのゲームはほぼすべて、ブラウン管の垂直帰線をそのまま実行速度の調整に使用している。リフレッシュ・レートは60Hz前後で固定だから実にシンプルなもので、走査線が1回画面を走査するごとにゲームの処理を1ステップ進めて、1回フレームを更新するわけだ。処理負荷が一定を超えない限り、同じフレームが2度走査されたり、飛ばされたりすることはない。結果、得られるのはブラウン管の毎秒60回の走査と完全に同期した60fpsの動画であり、すなわちこれは通常のテレビ放映と同等の滑らかな映像ということになる。

……というところまではいいッスか? 分かります?>たぶんWindowsオンリーな方々
0040>31 NGNG
だから、PCではリフレッシュレートが一定じゃないから
/* ゲームループ */ while (true) { ... Flip(); }
はダメなんですよ。
0041名無しさん@お腹いっぱい。 NGNG
>28
>弾幕系2Dシューティングに至っては非同期だと完全にプレイに支障が出るし。

はっきり言って、VSYNCに同期してるゲームの方が支障おおアリ。
60Hzでスピード調整してるから85Hzのモードでは速くなっちゃったり、
逆に極端に遅くなっちゃったり、スピードは変わらないけど85Hzで
60回だけ更新するからカクカクしちゃったり。

VSYNCをON/OFFできる設定が付いてるゲームでは、絶対OFFに
した方がプレイしやすいもの。
004231>40 NGNG
VSYNCをタイマーがわりに使う話でなくて、Flip()使えばVSYNC
の回帰中に切り替えてくれる話なのだ。
0043>41 NGNG
うう、やっぱりPC系の方にはなかなか話が通じにくいですな(笑)。
慣れてるんでいいけど。全部クソゲイツのせいだし。

>はっきり言って、VSYNCに同期してるゲームの方が支障おおアリ。
>60Hzでスピード調整してるから85Hzのモードでは速くなっちゃったり、

あたしは同じ60fpsで同期の場合と非同期の場合を比較してるのであって、
実行速度が変わっちゃっちゃあそりゃ問題外です。

>逆に極端に遅くなっちゃったり、スピードは変わらないけど85Hzで
>60回だけ更新するからカクカクしちゃったり。

そう。それは非同期なせいで支障が起きてるわけでしょ?

>VSYNCをON/OFFできる設定が付いてるゲームでは、絶対OFFに
>した方がプレイしやすいもの。

そのかわりティアリングが起きてますがな(これも非同期の支障)。
そこで、リフレッシュレートを60Hzにしてフレームの更新と同期できれば
すべて解決するわけでしょ? 理論的にも最高品質の映像が得られます。
0044>42 NGNG
dtを掛ける方法使います? 2Dだとイベントの発生タイミングの誤差やら
デモやリプレイなんかの問題やら、難題山ほど抱え込むことになると思う。
それこそDirectXのサンプルのDonutsのようなゲームにしか
通用しないでしょう。
結局ティアリング無視して60fpsくらいしか方策ないのかもね。
0045名無しさん@お腹いっぱい。 NGNG
内部処理15300fpsという荒業を考えてみたが、どうだろうか。
ちなみに60と75と85の最小公倍数だ。
リフレッシュレート70Hzとか80Hzの人は死んでくれ(w
0046名無しさん@お腹いっぱい。 NGNG
キーフレームを20fpsくらいの頻度で入れとくってぇのは?(だれに逝ってるか自分でわからんが…)
0047魁!名無しさん NGNG
>>45
・・・5100じゃないのか?>最小公倍数
0048名無しさん@お腹いっぱい。 NGNG
うーん、VSYNCを基準タイマーにした場合、重いシーンだと60fpsに
間に合わなかった場合、そのままコマ落ちするんじゃないの?
プレイヤーからはゲームの進行が遅くなったように見えるように。
特に最近のネットゲームの場合、1/60secでデータの交換が終わる
わけはないので、どうしても非同期にせざるを得ないような気がする。

俺は素人なんで間違ってたらつっこんで。
0049名無しさん@お腹いっぱい。 NGNG
>>逆に極端に遅くなっちゃったり、スピードは変わらないけど85Hzで
>>60回だけ更新するからカクカクしちゃったり。
>
>そう。それは非同期なせいで支障が起きてるわけでしょ?
こういうのって、やっぱ、見ててわかるもんなんですか?
005049 NGNG
あ、なんとなくわかった。
たとえば、リフレッシュが80Hzで、フレームレートが最高60fps
までしか出せないような場合、リフレッシュ4サイクルに3フレーム
切りかえるくらいなら、リフレッシュを60Hzに落とすとか、じゃ
なかったら、フレームレート40fpsに落としてでも、2サイクル
に1フレームとした方が見てて気持悪くないヨ、っていうような
話ですか??
0051名無しさん@お腹いっぱい。 NGNG
わかる。以上。
細かく言えば、いまのゲーム映像文法では絶対に分かる。

解決のためには、やっぱ、Vシンク60hz決め打ち法案を可決するか、
あらたなゲーム文法を開発するしかないね。

とにかく、ソフト内部のフレーム更新周波数とディスプレイの周波数が違う場合、
なれてくれば絶対にわかってしまう。
この辺が理解できないのは、やっぱ、Winゲーマーが洗脳されてるんだろうな。
0052名無しさん@お腹いっぱい。 NGNG
>>51
ゲーム映像文法というか、認知心理学の領域というか。(^^;
人間の目って時間が均等に割られていない動きにはかなり敏感です。
特に3D CGのような輪郭のはっきりした画像はね。
逆にいうと均等になっていて、blurがかかっている画像だったりすると
フレーム数が少なくても割とごまかせたりするんですけどね。

0053名無しさん@お腹いっぱい。 NGNG
DirectXのサンプルファイルをコンパイルしようとすると、
2001リンクエラーがどわーっと出てきます。
プロパティの設定で.libの設定はしたし、SDKへのパスは通しました。

VC++6.0 SP4
Win98
DirectX7.0a
タコな質問で住みません。
0054名称未設定 NGNG
結局、ChangeDisplaySettingsは使えるのか?
使えないのか?
0055名無しさん@お腹いっぱい。 NGNG
>54
使えないというか、絶対使っちゃダメ。(マジレス!)
0056名無しさん@お腹いっぱい。 NGNG
>43
>そこで、リフレッシュレートを60Hzにしてフレームの更新と同期できれば
>すべて解決するわけでしょ? 理論的にも最高品質の映像が得られます。

PCではVSYNC固定が不可能だから議論してるんじゃ〜ん。
今は120Hzとかが主流みたいだけど、今後はこの数値もどんどん
大きくなっていくだろうし、とにかくVSYNCに依存するような
アルゴリズムは危険なのだ。
0057名無しさん@お腹いっぱい。 NGNG
なーんか どっから60Hzってでてくるかな 最近のゲームにでも毒されてるんじゃないのか
VSyncとれないハードだったらどうすんだこいつら
「VSyncとれないんでこんなハードじゃゲームつくれませーん」て上司に泣き付くのか
こんなやつらばっかりか最近のプログラマって。理屈ばっかりならべて。
0058名無しさん@お腹いっぱい。 NGNG
ハードの問題をプログラマがうだうだ言ったってなにも進展しないね(ワラ
0059pipi NGNG
現在、WinSDKにてシューティングゲームに挑戦しております。
DirectXは使ってないのですが、フルスクリーンで表示することは
可能でしょうか?
006059> NGNG
可能です
006160 NGNG
鬱だ…
0062名無しさん@お腹いっぱい。 NGNG
どうでもいいけど、BeOSのフルスクリーンウィンドウは
デフォルトのリフレッシュ・レート60.1Hzが保証されている模様。
さすがだぜメディアOS。

>>57,58
そりゃその通りだけどさ、これってはっきり言って
まともなリアルタイムゲーム作るには致命的な問題だぜ。
今日ゲーセンで改めてマーベルvsカプコン2とか見て確信したよオイラは。

皆でゲイツに訴えるという手もある気がするんだが、その辺どうなんかな。
0063名無しさん@お腹いっぱい。 NGNG
そもそも、リフレッシュレートなんつーものがある
今のモニタがタコな気がしてきたんだが、どうよ?
リフレッシュレートレスなモニタとか作れないのか?

毎秒n回画面を上から下に電子ビームで走査して……って、
冷静に考えてみると、これで動画として見えてるらしいのが不思議だ。
0064名無しさん@お腹いっぱい。 NGNG
>60
方法を教えてください。(土下座)
006545 NGNG
>・・・5100じゃないのか?>最小公倍数
かたじけない。その通りだ。
嗚呼嗚呼嗚呼最小公倍数の求め方忘れてるなんて鬱だ死のう
0066名無しさん@お腹いっぱい。 NGNG
>64
本気で言ってんの?
0067Be名無しさん NGNG
>64
ChangeDisplaySettingsで目的の解像度に変更して画面を覆うサイズの
ウインドウを作れば可能です
上の方で使うなって言われてますが 解像度変更だけならOK
ただしこの場合は DirectX みたいにかってに元の解像度に戻してくれないので
プログラム終了時に同じくChangeDisplaySettingsでもとに戻してね
0068名無しさん@お腹いっぱい。 NGNG
64>66
あ、「フルスクリーン」か。
解像度変更と勘違いした。土下座損。
0069名無しさん@お腹いっぱい。 NGNG
冗談か本気か知らないけどさ
ちゃんとtimeGetTime()使って調整しているよね?
0070>69 NGNG
誰に言ってるの?
0071名無しさん@お腹いっぱい。 NGNG
で、結局どうすりゃええの?
0072名無しさん@お腹いっぱい。 NGNG
格ゲーオタクは逝ってよしってことだ
0073名無しさん@お腹いっぱい。 NGNG
なんだ、そっか。
0074名無しさん@お腹いっぱい。 NGNG
適当にまとめ
・CRTを使う限りVSYNC以外のタイミングでの
 flipは映像にうねりが生じる。

PCの場合はこのVSYNCの間隔がハードウェア、
解像度によりまちまち。逆に専用機は固定に
できる。
例えばVSYNC間隔を1/60sec固定にし、全ての
描画が1/60secに間に合うのであれば問題は
ないはず。が、実際問題それはありえない。
格闘ゲームの場合、描画対象がほとんど固定の
ため、fpsの低下は少ないがもっと一般化された
3D空間の描画にはシーンによりかなりのfpsの
変動が発生する。描画対象が少ないときは
100fps、多いときは20〜30fpsってことはよく
ある。
0075名無しさん@お腹いっぱい。 NGNG
長いので分割
なのでPC環境ではdt間隔をVSYNCと別のタイマー
で用意してflipをVSYNCのタイミングで行うことが
多いはず。(もちろんVSYNCのタイミングを外して
行うことも可能)ただし、この場合人間が見て
不自然さがないかどうかってことが問題になるの
かも。(十分速いPCであればそう問題は無いはず)
あと、FPS系(1人称シューティング)のゲームでは
少しでもfpsをかせぐ方がよいので、画面がうねって
でもfpsを上げるセッティングにするのが普通。
0076名無しさん@お腹いっぱい。 NGNG
一つの妥協策としては、プログラム開始時にリフレッシュ・レートを計測して、60HzであればVSYNCを基準タイマーに、そうでなければパフォーマンスカウンタを基準タイマにしてティアリング無視で動かすってのがあります。で、同期映像が欲しい人は、自分でForced Refresh RateかDirectX診断ツール>DirectDrawのリフレッシュ・レート上書きを60Hzに設定してくれとドキュメントに書いておく。これが精一杯のとこかと。
ChangeDisplaySettingsについては吾輩も分からんので誰か調べてちょ。他の周波数ならともかく、勝手に60Hzに設定して問題のある環境があるとは思えないんだが、なんせWindowsだからね。結構恐い。
0077名無しさん@お腹いっぱい。 NGNG
ま、これってハードではなくOSの仕様の問題だし、DirectXレベルでどうにかして欲しいもんではあります。Xboxのラインも生まれることだし、もう少し日本のゲームメーカーもMSに声を伝えるべきだと思う。外国のデベロッパーとかNVIDIAとかに任せてたらいつまで経っても解決しないんじゃなかろうか。
困ったちゃんなのは、ビデオカードの性能を云々する以前の段階で映像品質を大幅に向上させる手段が存在するのに、それが思いっきり見過ごされてることでしょう。ゲームだけでなく、DVDのフルスクリーン再生なんかも、モニタと非同期やったら全然意味ないやんって感じなんだけれども。
0078名無しさん@お腹いっぱい。 NGNG
>この辺が理解できないのは、やっぱ、Winゲーマーが洗脳されてるんだろうな。

同期映像見たことないんちゃうかって危惧はありますね。エミュレータの話でアレですが、NESticleを動かせる人は、Settings>Vsyncをチェックして、FrameskipをAUTOではなく1に設定してみて下され。それで完全な同期60fpsが体験できるはず。

とりあえず、ゲームプログラミングスレの幕開けにふさわしい話題ではあった。
0079名無しさん@お腹いっぱい。 NGNG
>76
だれもタイマー使うときにVSync無視するっていってねーじゃん ちゃんと読めよ

>78
>同期映像見たことないんちゃうかって危惧はありますね。エミュレータの話でアレですが、NESticleを動かせる人は、Settings>Vsyncをチェックして、FrameskipをAUTOではなく1に設定してみて下され。それで完全な同期60fpsが体験できるはず。
>とりあえず、ゲームプログラミングスレの幕開けにふさわしい話題ではあった。
おまえが一番わかっていない
0080名無しさん@お腹いっぱい。 NGNG
で、ビデオカードってホントに割り込みしてるの?
0081名称未設定 NGNG

>ビデオカードの割り込み
PROGRAMMER'S GUIDE PC&PS/2 VIDEO SYSTEMSによると、
PC/AT互換機の仕様としては必須ではないようです。
VSYNCの検出はできないとまずいみたいですが。

0082名無しさん@お腹いっぱい。 NGNG
>プログラム開始時にリフレッシュ・レートを計測して
んで結局どうやって計るのですか?
0083>79 NGNG
キミが一番話の流れ読めてないと思うが……。
0084>82 NGNG
プロセスの優先度を最大にして、
数秒間Flipのループを回して実測するしかないんじゃないかな。
メーカーロゴでも表示してる間にやりますかね。
Win環境だと59Hzとか61Hzとかはないわけだから、
ある程度判定に遊びを持たせといて。
0085名無しさん@お腹いっぱい。 NGNG
>>78
>Forced Refresh RateかDirectX診断ツール>DirectDrawのリフレッシュ・レート上書き
ちなみにそこの設定、レジストリの
HKEY_LOCAL_MACHINE\Software\Microsoft\DirectDraw\ForceRefreshRate
に保存されてるぞ。こんなこと書いたらまだ潔癖なPC主義者に怒られそうだが(w
いや、当然のことながらユーザーに無断で書き換えたりはしないがね。
008676>>79,83 NGNG
えっと、たぶん吾輩のミスのせいです。訂正しときますので険悪にならないでぇ。
・パフォーマンスカウンタ→マルチメディアタイマ
・ティアリング無視で→(削除)

>>85
なんだ、それなら60Hzにする方法あるんじゃん(もちジョークよ)。
008779 NGNG
>>86
パフォーマンスカウンタは存在しますし使われていますので気にしないで
QueryPerformanceCounterとQueryPerformanceFrequencyのセットを使って
マルチメディアタイマよりも高精度の時間計測が可能です

悪いのはすべて私 私が馬鹿でした♥
みんなリフレッシュレートを60Hzに設定すればなにも問題はないんだよね
60Hz以外に設定してるユーザーなんて糞 無視無視 ゲーム遊ぶ資格なし
ユーザーの用意された環境なんて糞くらえだ
もしゲーム中にリフレッシュレートの変更なんかしやがったら
ハードディスククラッシュの刑に決定
CPUに俺のゲーム以外の無用な負荷かけるアプリはプロセスkillだ
みんなこれからは安心して60Hz固定でゲームつくろうぜ
0088名無しさん@お腹いっぱい。 NGNG
だからーFPSゲーマーは60fpsじゃ足らんのよ
なんのために金突っ込んでCPUとビデオしょっ中
アップグレードしてると思ってんのよ。
0089名無しさん@お腹いっぱい。 NGNG
だからー、ゲーム作るときはさ、
どんなFPSでもいいんだけど、
まず、デザイン段階から、とにかくFPSを決め打ちしなきゃ
ダメなのよ。
でもって、ソフトの内部FPSと、ディスプレイ側のFPSが
一致しなきゃダメなのよ。

まあ、80Hz決め打ち、なんて奇特なゲームメーカーが現れる
ことを祈ったら?
0090名無しさん@お腹いっぱい。 NGNG
100Hz決め打ちで作れたらどんなに爽快だろう。
0091名無しさん@お腹いっぱい。 NGNG
>でもって、ソフトの内部FPSと、ディスプレイ側のFPSが
べつに内部の更新回数とディスプレイに表示する回数が一致しなくてもいい
内部で10回更新して1回表示でもかまわない
そのときそれが必要でありそう決めておけばね ゲームにもよるけど
0092名無しさん@お腹いっぱい。 NGNG
とりあえず、IDirectDraw7::SetDisplayModeの引数dwRefreshRateは
何のためにあるのか、なんでこいつが事実上使用不能なのか
DirectX開発者チームに詰問してみたい気はする。
009392 NGNG
あと、Forced Refreah Rateをどういう意図で用意したのかってのも。
本当は問題あるのは分かってるけどハードベンダに強制できない……
なんてことはないよなあ。MSの政治力を考えれば。
0094名称未設定 NGNG

やはりガイジンはティアリングとかあまり気にしないんだろうな。

Macゲーム開発者はリフレッシュレートにはうるさいぞ。
OS X公開ベータではVSYNC割り込みがまともにかからないらしくて騒いでるし。
0095名無しさん@お腹いっぱい。 NGNG
MacってVSYNC割り込みあるんスか? いいなあ。
0096名称未設定 NGNG

>95
ありますよ。
でもiMacのおかげで、いまいち使えなくなっちゃいましたけど。
iMac以外は、CRTに問題なければ640*480*60Hzに設定できるんですけど
iMacの640*480モードは117Hz固定なんですわ・・・・・。

0097名無しさん@お腹いっぱい。 NGNG
>iMacの640*480モードは117Hz固定なんですわ・・・・・。

ほら。こうゆう事があるから、リフレッシュレートに頼れないのよ。
今後発売される新ハードでまともに動かないかもしれないゲームなんて
作りたくないでしょ?
0098名無しさん@お腹いっぱい。 NGNG
>63
>リフレッシュレートレスなモニタとか作れないのか?

液晶モニタ。

0099名無しさん@お腹いっぱい。 NGNG
>89
>まず、デザイン段階から、とにかくFPSを決め打ちしなきゃダメなのよ。

2D時代の話ね。
3Dゲーはマシンのスピードに合わせてfpsが変化できるような
アルゴリズムにしましょう。
0100名無しさん@お腹いっぱい。 NGNG
>>98
そうそうPC98のノートとかで初めて知ったときは
「いや〜んVSyncウェイトがきいてなーい」とかで人前で恥かいちゃったよ おぢさんは
0101名無しさん@お腹いっぱい。 NGNG
>97

117/2=58.5なんで、それほど問題なかったりします。
ちょっと遅くなる程度。
厳しいゲーマーの方ならわかるかも。

Apple、というかジョブズはゲームなんてどうでもいいと考えてるんで
先の事を考えてもどうしょうもないです。
PCでの話に戻しましょう。
■ このスレッドは過去ログ倉庫に格納されています