C/C++ゲーム製作総合スレッド Part4
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2013/08/12(月) NY:AN:NY.ANID:RPqvnGkC元スレ
DXライブラリ 総合スレッド その12
http://toro.2ch.net/test/read.cgi/gamedev/1330000532/
前スレ
C/C++ゲーム製作総合スレッド Part1
http://toro.2ch.net/test/read.cgi/gamedev/1337516528/
C/C++ゲーム製作総合スレッド Part2
http://toro.2ch.net/test/read.cgi/gamedev/1351015269/
C/C++ゲーム製作総合スレッド Part3
http://toro.2ch.net/test/read.cgi/gamedev/1357899040/
0385名前は開発中のものです。
2013/10/13(日) 20:28:08.87ID:YUP9zYJgVSYNCに同期してるならね
0386名前は開発中のものです。
2013/10/13(日) 20:58:38.68ID:LrrmUogoリフレッシュレートが60だとして描画処理が1秒に180回回ってるとしたら
画面に表示されないグラフィックの描画処理が無駄に走ってることになる
描画は別スレッドにしてVSYNC同期で問題ない
0387名前は開発中のものです。
2013/10/13(日) 21:12:00.51ID:YUP9zYJg0388名前は開発中のものです。
2013/10/13(日) 21:41:53.14ID:vCxPl4Ox0389名前は開発中のものです。
2013/10/13(日) 22:17:46.54ID:ZaPY3z080390名前は開発中のものです。
2013/10/13(日) 22:23:38.42ID:CojupSXd0391名前は開発中のものです。
2013/10/13(日) 22:56:03.24ID:sU9FZP/8そこの前提ぼやっとしたまま聞きかじりの単語だけで話して無いか?
0392名前は開発中のものです。
2013/10/13(日) 23:10:39.75ID:LrrmUogo0393名前は開発中のものです。
2013/10/14(月) 00:46:43.39ID:oyCSEsA5>>386の条件だと、非同期だと画面VSYNC中だろうと反映されるので、1/3ずつ重なって描画しているが、
同期の場合はVSYNCを待つので最大1/60秒遅れる。
0394名前は開発中のものです。
2013/10/14(月) 02:18:15.78ID:FmafERBv0395名前は開発中のものです。
2013/10/14(月) 09:52:13.67ID:8QY3sUz10396名前は開発中のものです。
2013/10/14(月) 10:01:17.72ID:S89Kd2Q2csvでスクリプト言語っぽい事をしてもいい
0397名前は開発中のものです。
2013/10/14(月) 10:13:56.59ID:Dsm1aRHIテキストのリソースは基本的に外出しでないかい?
まぁ作りやすい方でどうぞ
0398名前は開発中のものです。
2013/10/14(月) 12:11:32.12ID:S89Kd2Q20399名前は開発中のものです。
2013/10/14(月) 13:28:32.89ID:HeDXOIcS機能が少ないのが難点だけど
0400名前は開発中のものです。
2013/10/14(月) 16:11:37.68ID:+kTCTzldピーチ姫を救出して"Thank you,Mario!"って言うくらいなら
ソースにべた書きでもいいし。
アクションRPGとかになると外部ファイルが普通になるかな?
0401名前は開発中のものです。
2013/10/14(月) 16:27:54.27ID:XeHXaNThソースに組み込むとしてもテキストが主のファイルに分離するだろ
他人が作業に介入するなら完全にソースと切り離した方が良い
0402名前は開発中のものです。
2013/10/14(月) 16:29:41.18ID:oyCSEsA5シナリオ担当から「ここ変更してー」っての毎回聞いてるとめんどくさくてかなわん。
そいつらが変更できる形式だと、そんなん自分でやっといてやーって言える。
0403名前は開発中のものです。
2013/10/14(月) 16:37:13.37ID:PCej0/9E0404名前は開発中のものです。
2013/10/14(月) 16:51:29.46ID:vMfc4V6eスクリプトチックな仕様は必須だと思うわ
制御文字は固定の仕様として決めておいて
置換文字はcsvで自由に登録できるようにしておくといいかもね
0405名前は開発中のものです。
2013/10/14(月) 17:00:43.81ID:plLnv93X1/60秒じゃないぞ、スレッド分けてるならトリプルバッファのはず
最大3フレーム+vista以降なら遅延バッファの影響で、さらに8フレーム
0406名前は開発中のものです。
2013/10/14(月) 17:09:18.22ID:8QY3sUz1所でどうやって実装すればいいか悩んでたんです。
スクリプトでやってみようと思ってluaを入れたけど、ビルドエラーがなかなか解決
できなかったから、別の方法でしてみようと思って。まだ文字コードでつまづいたからとか
そこまで行き着けていませんでした。一人で全部担当です。
0407名前は開発中のものです。
2013/10/14(月) 17:40:23.21ID:XSFqpZZf0408名前は開発中のものです。
2013/10/14(月) 17:45:24.43ID:3HOEa5kHうそつけ!
0409名前は開発中のものです。
2013/10/14(月) 17:59:13.13ID:dGeDTpNi8なんて中途半端な数どっからでてきたの
vista以降の遅延は3で設定で0にできるんじゃ?
0410名前は開発中のものです。
2013/10/14(月) 18:01:36.06ID:vMfc4V6eてかlua使いこなそうと思ったらエンジン以外は全部luaで作った方がいいってレベルになるだろうし
0411名前は開発中のものです。
2013/10/14(月) 18:28:53.56ID:3HOEa5kHソースも無いし誰も説明してくれない
それはディスプレイドライバの設定の問題ではないのか?
トリプルバッファリングでも表示されるまでの時間は最大16msだろ
それは間違いない
0412名前は開発中のものです。
2013/10/14(月) 19:08:11.61ID:S89Kd2Q2文字コード 読み込み テキスト C++でぐぐっとけば良いかと
0413名前は開発中のものです。
2013/10/14(月) 19:45:35.78ID:S89Kd2Q2#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int _tmain(int argc, _TCHAR* argv[])
{
if(argc != 2)return 0;
FILE * fp;
if( _tfopen_s( &fp, argv[1], _T("r") ) != 0 )
return 0;
char buf[32767];
_TCHAR buf2[32767];
if( fgets(buf,32767,fp) == NULL )
return false;
size_t size = strlen(buf);
if( size > 1 ){
if( buf[ size - 1 ] == '\n')
buf[ size - 1 ] = 0;
}
int len = MultiByteToWideChar( CP_THREAD_ACP,0,buf,32767,buf2,32767 );
MessageBox(NULL,buf2,_T(""),MB_OK);
fclose( fp );
return 0;
}
0414名前は開発中のものです。
2013/10/14(月) 19:51:31.44ID:oyCSEsA5トリプルバッファで1フレームキャッシュするから+1だが、最大3フレームじゃないだろ。
Aeroの3フレーム遅延とごっちゃになってないか?
>>411
ここが詳しい
ttp://www.ouma.jp/ootake/delay-win7vista-j.html
0415名前は開発中のものです。
2013/10/14(月) 20:13:23.82ID:S89Kd2Q2実行ファイルにテキストファイルをドラッグ&ドロップすれば動く
0416名前は開発中のものです。
2013/10/14(月) 20:22:24.31ID:jxwmi6Hiそのページに書いてあることって根拠のない迷信だよね
0417名前は開発中のものです。
2013/10/14(月) 20:23:31.08ID:3HOEa5kHいや…
3フレームまで遅延おkってMSが言ったのならソースが何処か知りたいが見つからないんだもの
0418名前は開発中のものです。
2013/10/14(月) 20:39:33.29ID:3HOEa5kHでもこれMSに責任ないでしょ
先読みレンダリングはサードパーティのツールで無効に出来るって書いてある所もある
0419名前は開発中のものです。
2013/10/14(月) 20:55:35.70ID:xCUMszQmリフレッシュレート以上の回数描画処理を走らせるメリットなんかあるのか
むしろティアリング発生するデメリットしかないじゃん
描画処理でなく内部の計算処理をリフレッシュレートを超えて走らすのはメリットあるかもしれんが
0420名前は開発中のものです。
2013/10/14(月) 20:56:39.75ID:oyCSEsA5迷信じゃないはず。
だいぶ昔なので詳細は忘れたが、同期フリップしても一瞬でもどってくるのでおかしいと思って調べたことがある。
そしたらバッファがいっぱいになるまで待ってくれないことが判明。
DRM切ったら正常になったけど、クレームが来たwww
ドライバで3を0にできるとか当時わからんかったので、その辺は詳しくない。
0421名前は開発中のものです。
2013/10/14(月) 22:45:49.83ID:3HOEa5kH●垂直同期を使った時
画面の書き換えが終わるまで待つので処理は最小でも16ms間隔になり遅延は最大16msになる
→待っている時間が無駄に思えるが遅延は少なくティアリングは発生しない
●垂直同期を使わなかった時
ドライバの設定した値を上限に先読みレンダーが行われるが
0にすれば遅延無し
→CPU、GPUをフルに使えるし、DWMなしかつ先読み0なら遅延無し(DWM有効時はそれでも最大16ms遅延?)無論DWMなしではティアリングする
0422名前は開発中のものです。
2013/10/14(月) 22:54:15.60ID:3HOEa5kH画面が書き換わるまで処理をブロックする通常の垂直同期はそんなに問題ないと思う
画面を書き換えている間に処理を行う方法もあるようだな
次のフレームの処理まで行ったら遅延するかもしれないが、これはプログラマーが決められるから問題ないだろう
0423名前は開発中のものです。
2013/10/14(月) 23:17:16.15ID:3HOEa5kHソフトウェア側で垂直同期を実装した時もドライバ側がもう画面書き換え終わったって嘘付いたら処理が16ms間隔じゃなくなるけどそんな事する?
0424名前は開発中のものです。
2013/10/14(月) 23:24:53.43ID:oyCSEsA5ttp://kultur2.blog.fc2.com/blog-entry-913.html
0425名前は開発中のものです。
2013/10/15(火) 00:06:21.68ID:xZaV/k5A垂直同期のサンプルコードちょうだいよ
0426名前は開発中のものです。
2013/10/15(火) 12:06:29.46ID:eNYxuu1N0427名前は開発中のものです。
2013/10/15(火) 12:24:18.14ID:hzCTJnfX例えば1秒間に60回処理を更新するゲームで120fps出しても、(処理によるけど)同じ画面が2回描画されるわけだろ?
0428名前は開発中のものです。
2013/10/15(火) 15:06:51.59ID:1QrNksxQ実験したって奴ですらどうやったの?って聞くといなくなる
自分でやらなくてもどっかの有名なサイトとかで実証してそうなもんだが
まあいいけど
DirectxX11.2のLow-latency APIも画面の更新の話じゃなくインプットの話だよね
0429名前は開発中のものです。
2013/10/15(火) 15:15:53.99ID:vyqpf8iGでいいと思うけどなw
0430名前は開発中のものです。
2013/10/15(火) 15:20:20.59ID:11TSa3Ygそんなずっと張り付いてられるかよw
昔のことなのでソース出せと言われてももうないし、やるなら新規に作らんといかんわ。
当時パフォーマンスカウンタとDwmGetCompositionTimingInfoなぞを使って組んだのしか覚えてない。
だいたい、こりゃだめだと思ってもうプログラム側でどうにかするのあきらめたし。
0431名前は開発中のものです。
2013/10/15(火) 15:28:04.76ID:vyqpf8iGhttp://www.4gamer.net/games/126/G012689/20130705055/
これか??
なんかよさげだけど8.1しか使えないじゃないのこれw
0432名前は開発中のものです。
2013/10/15(火) 15:32:57.08ID:11TSa3Ygやるなら内部処理は当然60以上じゃないと。
あと、最近は120Hzのリフレッシュレートを持ったディスプレイがあるからね。
欲しいがいかんせん金がないw
0433名前は開発中のものです。
2013/10/15(火) 16:46:38.17ID:1CMGJaICというかこれがベストな解でこれ以外ありえないと思うんだけど
0434名前は開発中のものです。
2013/10/15(火) 17:01:51.50ID:9FpDK6sK0435名前は開発中のものです。
2013/10/15(火) 18:18:29.63ID:r2Ud4Hn1http://shikihuiku.wordpress.com/2012/06/12/DirectXにおける描画フレームの遅延について
設定で最少1フレームまでは出来るみたいだけどあるのは間違えないのかな
0436名前は開発中のものです。
2013/10/15(火) 19:29:40.24ID:r2Ud4Hn1>>431のMSのサンプルが今までの状態だと46ms遅れてるらしいから
IDXGIDevice1::SetMaximumFrameLatencyの設定は同じ?って事かな
でそのLow-latency presentation APIなるものを使う事によってこれを16msまで
縮めることができますよって事かな???
0437名前は開発中のものです。
2013/10/15(火) 19:31:08.83ID:7gfhDCZ/みんなにごめんなさいしてね!
0438名前は開発中のものです。
2013/10/15(火) 19:55:38.01ID:r2Ud4Hn10439名前は開発中のものです。
2013/10/15(火) 20:21:15.30ID:KlaooEsuもしまだならば、unicode Shift-JIS _TCHARで検索する事をオススメする。
このスレの住人は、自分らが初心者だった頃を忘れてないかい?
0440名前は開発中のものです。
2013/10/15(火) 20:39:07.33ID:AzsG7fb4>>439みたいな馬鹿は早く死滅すればいいのに。
0441名前は開発中のものです。
2013/10/15(火) 20:51:31.75ID:qytxVZMa>>435は*描画の*遅延の話
描画が遅れたら結果的に入力遅延になるのだが
結局垂直同期オンではそんな問題にならないって事で良いだろ
使わない場合でも、Direct3D9ExのSetMaximumFrameLatencyでレイテンシを1フレームに設定できるとある
MSが新設するのは必ず毎フレーム入力処理が出来るようにするAPIっぽい
0442名前は開発中のものです。
2013/10/15(火) 20:55:34.94ID:KlaooEsu理解しているなら自分で教えたら?そうすりゃ間違えて教える人も減るから
0443名前は開発中のものです。
2013/10/15(火) 21:04:14.65ID:RUDXx8qG0444名前は開発中のものです。
2013/10/15(火) 21:48:44.55ID:11TSa3Yg0445名前は開発中のものです。
2013/10/16(水) 00:52:18.15ID:Z0cE1bpK垂直同期っていったって電子銃ってやつは一個しかなくて左上から順番に打ってくわけだろ
何が同期されんの
0446名前は開発中のものです。
2013/10/16(水) 01:13:03.73ID:lgAm+riKint i=0;
void update() {
i++;
}
void draw() {
printf("%d\n", i);
}
画面のフレームレートが60fpsで、実行時のフレームレートが180fpsとする
垂直同期が有効なら
1秒で1〜60の数字が描画される
1/60秒毎に1増えた数字が表示される
垂直同期が無効なら
1秒で1〜180の数字が描画される
だが、1/60秒後とに3つの数字が同時に表示される
これでわかんなかったらどう説明したら良いかわからん
0447名前は開発中のものです。
2013/10/16(水) 04:03:31.33ID:B/+e+WNxその電子銃が下から上に移動する一瞬の時間の事だ
ちなみに今はCRTなんてほとんど売ってないぞ
0448名前は開発中のものです。
2013/10/16(水) 07:10:58.80ID:L8mOrdaC俺はUTF-8に対応済み
しかし海外に対応する気は全く無い
0449名前は開発中のものです。
2013/10/16(水) 07:26:54.00ID:L8mOrdaCWindows-31Jの頃は運用で回避してきたが
0450名前は開発中のものです。
2013/10/16(水) 08:07:02.94ID:umSiVyCpなんでUTF-8でバグが直るんだ?
0451名前は開発中のものです。
2013/10/16(水) 10:14:36.63ID:OgPi9Jui0452名前は開発中のものです。
2013/10/16(水) 17:52:35.98ID:B/+e+WNx0453名前は開発中のものです。
2013/10/16(水) 18:21:31.42ID:J+ERhyUQ0454名前は開発中のものです。
2013/10/16(水) 18:32:38.56ID:Z0cE1bpK0455名前は開発中のものです。
2013/10/17(木) 18:38:36.38ID:n2Urv0VX0456名前は開発中のものです。
2013/10/17(木) 18:40:34.59ID:GUz904Uc0457名前は開発中のものです。
2013/10/17(木) 18:41:51.86ID:L9H0bqaE0458名前は開発中のものです。
2013/10/17(木) 19:51:07.97ID:4aABW+0o0459名前は開発中のものです。
2013/10/17(木) 22:56:47.94ID:vaYuLY100460名前は開発中のものです。
2013/10/17(木) 23:23:47.17ID:HnsHZ9SY0461名前は開発中のものです。
2013/10/18(金) 00:34:01.43ID:GBldfOBg俺も昔、灰プレイしてたけど
友人の一言でゲームしなく成った
友人「無限ループって怖くねぇ」
俺「………」
殆ど同じ毎日を過ごしてる俺にとって
一番、効いた一言だったかもな…
年を取ると分かるが
狭く見えてた地域が大きく感じる
若い内から此処は狭いと決め付けてたから
気付くのに時間がかかった
色んな事に目を向けると見たものだけ世界が広がるぞ
0462名前は開発中のものです。
2013/10/18(金) 21:03:24.92ID:dgvIsp3H俺は日替わりanvaderだ。
日替わりモードでは、ランダムにレベルデザインされてるんだが、これが熱い!
くそっ、アイツに負けたくない!
スレチだが、ランダム要素が増えると、スコアアタックに対する情熱が冷めやすくなるな。
0463名前は開発中のものです。
2013/10/19(土) 02:36:23.45ID:/a7EdBZAタイトル画面開発:正確な時間でアクション処理させる - C言語/C++ゲーム開発の章
http://c-games.main.jp/ckaihatu/ckaihatu6.html
0464名前は開発中のものです。
2013/10/19(土) 09:57:23.64ID:9CwPsbm2なんか色々怪しい解説だな…。
Windowsは1/60秒ごとにメッセージを送ってくるとか、パソコンのFPSの設定とか…。(リフレッシュレートの事?)
フレームレートに依存しないことと、タイミングが正確なことは別もんなんだけど、あまり区別がついていないようにも感じる…。
0465名前は開発中のものです。
2013/10/19(土) 10:18:56.36ID:1nFuLmGb計算処理は経過時間を考慮してモニタのリフレッシュレート以上の速度で実行すれば問題ない
描画処理と計算処理を分けて考えるべき
描画処理はリフレッシュレートを超えて実行するのは無駄だし
VSYNC固定してないとティアリングが発生するから固定するべき
0466名前は開発中のものです。
2013/10/19(土) 11:36:03.36ID:VlhENTvs走査線も無いのに
0467名前は開発中のものです。
2013/10/19(土) 11:54:46.10ID:bsz0ZbF+昔は液晶だと動画がブレまくってねぇ・・・・・・
0468名前は開発中のものです。
2013/10/19(土) 12:00:53.90ID:9CwPsbm22D画像の合成の事を、本来のモノと仕組みも出来ることの幅もまるで違うのに、未だにスプライトって呼んでるのと似たようなもんじゃない?
0469名前は開発中のものです。
2013/10/19(土) 12:58:18.70ID:sRchjxIh0470名前は開発中のものです。
2013/10/19(土) 14:49:46.80ID:MKjjfqZL1/60でなんで固定してんだよ
120Hzのモニターだったらタイミングが変わるだろ・・・
0471名前は開発中のものです。
2013/10/19(土) 14:51:05.16ID:MKjjfqZLお察し・・・・
0472名前は開発中のものです。
2013/10/19(土) 14:54:29.50ID:/3z9MfkX0473名前は開発中のものです。
2013/10/19(土) 15:14:17.22ID:/BqcH5CG勝手に住人全員とばかりに決めつけるんじゃねえよ
0474名前は開発中のものです。
2013/10/19(土) 15:19:11.27ID:zlmhW9Ft全員なんて書いてないっしょ
0475名前は開発中のものです。
2013/10/19(土) 15:43:14.27ID:8wPLLvttこいつ何年もタイトル画面ばっか作ってんな
なのに、いつもサイトの名前が「ゲーム開発〜」っていう。
タイトル画面しかないゲームとか斬新すぎるわ
0476名前は開発中のものです。
2013/10/19(土) 16:14:34.31ID:u+UBGDr9ありがとう。
共通するメンバをできるだけ基底クラスに集めて、
ロジックだけ差し替える感じでやってみる。
0477名前は開発中のものです。
2013/10/19(土) 16:27:28.79ID:igbx0LRU基礎の部分は既存のフレームワークを参考に作ればすぐ終わるのに・・・
0478名前は開発中のものです。
2013/10/19(土) 17:11:31.92ID:HNInh2Mx他の解説記事も見てきたけどあっちこっち怪しいところ間違ってるところ多いな
解説を書くならもうちょっと勉強してからの方がよくね?
0479名前は開発中のものです。
2013/10/19(土) 20:47:59.48ID:MKjjfqZLすでに何人も改めるように提言したが無理
風物詩と思ってアキラメロン
0480名前は開発中のものです。
2013/10/19(土) 22:01:09.82ID:a2djsHc3キタ━━━━(゚∀゚)━━━━ッ!!
0481名前は開発中のものです。
2013/10/20(日) 00:07:55.13ID:0ur5LLqt60Hzのモニターでも120Hzのモニターでも
その速度で描画可能にするためには
パソコンがその速度に対応している必要があります
そのパソコンが管理している時間(カウント)を扱って処理制御しているので
問題ないと思われますが
>>464
「Windowsは1/60秒ごとにメッセージを送ってくる」ではなく
「Windowsに1/60秒ごとにメッセージを送る必要がある」です
そうやってメッセージを送ってる時に
例外ハンドラーが働き
Windowsがエラーであることを理解するのです
0482名前は開発中のものです。
2013/10/20(日) 00:12:43.33ID:CCOva6ntkazukiはblogに帰れ
0483名前は開発中のものです。
2013/10/20(日) 00:19:45.50ID:0ur5LLqthttp://c-games.main.jp/img/bbs/bbs1.png
以上
0484名前は開発中のものです。
2013/10/20(日) 00:41:34.00ID:m5Iqtrsbさすがは現実逃避を繰り返し続ける
コミュ不全なナマポニートのやる事は一味違うなw
■ このスレッドは過去ログ倉庫に格納されています