[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 05/22 09:48 / Filesize : 257 KB / Number-of Response : 1036
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C/C++ゲーム製作総合スレッド Part5



1 名前:名前は開発中のものです。 mailto:sage [2014/01/16(木) 00:00:31.27 ID:w6WW3hAo.net]
ゲーム製作におけるC/C++全般に関するスレです。

元スレ
DXライブラリ 総合スレッド その17
toro.2ch.net/test/read.cgi/gamedev/1383795645/

前スレ
C/C++ゲーム製作総合スレッド Part1
toro.2ch.net/test/read.cgi/gamedev/1337516528/
C/C++ゲーム製作総合スレッド Part2
toro.2ch.net/test/read.cgi/gamedev/1351015269/
C/C++ゲーム製作総合スレッド Part3
toro.2ch.net/test/read.cgi/gamedev/1357899040/
C/C++ゲーム製作総合スレッド Part4
toro.2ch.net/test/read.cgi/gamedev/1376262450/

199 名前:名前は開発中のものです。 mailto:sage [2014/02/06(木) 21:01:16.01 ID:YaLd/g6Z.net]
軽井沢なんとかのことだろうかw

200 名前:名前は開発中のものです。 mailto:sage [2014/02/06(木) 21:10:32.33 ID:wgo5Jh7Q.net]
複雑な操作や手抜きグラフィックに怒ったりしてた話やね

201 名前:名前は開発中のものです。 [2014/02/09(日) 03:20:30.53 ID:yNPMLa+Y.net]
中村光一って不思議のダンジョンシリーズ一発屋で終わったな

202 名前:名前は開発中のものです。 mailto:sage [2014/02/09(日) 03:48:09.82 ID:n/hHVigC.net]
高校時代から名作を生み出してる中村光一が一発屋……?

203 名前:名前は開発中のものです。 mailto:sage [2014/02/09(日) 03:53:10.61 ID:CEeCxVwx.net]
まぁウィザードリィみたいに不思議のダンジョンを伝統化しようとして
燃え尽きた印象があるな
一発屋というより、沢山あった弾を同じ場所に撃ち込んじゃった感じ

204 名前:名前は開発中のものです。 mailto:sage [2014/02/09(日) 04:22:56.68 ID:eECi/LC1.net]
ドアドアいまいちだったけど
あの時代にスクランブルを完全移植した情熱の炎は、そう簡単には消えないさ!
俺は信じてるぜ!

205 名前:名前は開発中のものです。 mailto:sage [2014/02/09(日) 16:33:33.68 ID:Om4RLWnj.net]
今C言語でオセロゲームを作成中なのですが、AIを作るところで行き詰ってしまいました。
とりあえずminiMax法で作ろうとしており参考にしているサイトのURLは
hp.vector.co.jp/authors/VA015468/platina/algo/2_2.html
です。

このサイトの
for(最初の子節点の手; 未評価の子節点がある; 次の子節点に移る)
という部分を見る限り先に子節点がいくつあるのか調べておく必要があると思うのですが
その解釈でよろしいですか?

206 名前:名前は開発中のものです。 mailto:sage [2014/02/09(日) 16:43:02.64 ID:c5g9RcWt.net]
>>201
先に子節点を調べなくてもできるけど
先に調べておかないと置けないにも拘わらず置くかどうかを計算するから無駄な計算が増えるし、バグで置いた場合に何処でバグが発生してるのか調べるのが大変になる

207 名前:名前は開発中のものです。 mailto:sage [2014/02/09(日) 16:50:59.29 ID:Om4RLWnj.net]
>>202
ありがとうございます。
先に子節点を調べることにします。
調べる上で、次の子節点を調べるときにその前に調べた子節点以外から探す方法が
よくわからないのですが、どのような実装を行えばいいでしょうか



208 名前:名前は開発中のものです。 [2014/02/10(月) 08:15:56.04 ID:EeAxagpY.net]
木構造の探索はスタック使うと楽
再帰処理で実装するといいよ

209 名前:名前は開発中のものです。 mailto:sage [2014/02/10(月) 16:50:10.78 ID:r9rJHs9v.net]
>>204
スタックとはどのようなものかはわかりますが、実装法などは全くわかりません。
二分木なら
typedef struct node_t{
typedef struct node_t *left;
typedef struct node_t *right;
int data;
}NODE;
のようにすればいいと思うのですが、探索となると多分木になると思うので
同じようには実装できませんよね?

210 名前:名前は開発中のものです。 mailto:sage [2014/02/10(月) 17:57:20.00 ID:zYS9MiyX.net]
typedef struct node_t{
 struct node_t *child;
 struct node_t *next;
 int data;
}NODE;

211 名前:名前は開発中のものです。 mailto:sage [2014/02/10(月) 18:19:16.50 ID:r9rJHs9v.net]
>>206
つまり二分木と同じ実装法で見方を変えるということですか?

212 名前:名前は開発中のものです。 mailto:sage [2014/02/10(月) 19:22:37.65 ID:zYS9MiyX.net]
多分木を表現できるデータ構造の一例ってだけだよ
要件は、多分木であることと、ルートから葉に向かって再帰的に処理できること、でしょ?
その要件に足るようなデータ構造で自分の使いやすいものを選択すればいい

213 名前:名前は開発中のものです。 mailto:sage [2014/02/11(火) 10:42:36.42 ID:MuB9VwbG.net]
三角関数を使ったカメラの回転が上手くいきません・・・
横回転は綺麗に回るんですが、縦回転がY軸しか動かず変な動きになります
分かりやすく解説してるとこは無いですか?

214 名前:名前は開発中のものです。 mailto:sage [2014/02/11(火) 14:18:07.24 ID:EVFbkSHB.net]
>>209
クォータニオンで球面線形補間すると
理論はよく分からないけど何故かうまくいくよ

215 名前:名前は開発中のものです。 mailto:sage [2014/02/11(火) 14:32:23.80 ID:pu0dsTgx.net]
ビューの回転は注視点を移動させた後に組み直せばいい。

216 名前:名前は開発中のものです。 mailto:sage [2014/02/11(火) 22:12:14.10 ID:sWtHnyX5.net]
>>210-211
ありがとう、ちょっと見てみたんですが、
私のコードは三角関数メインなので行列の理解が追いつきませんでした
根本のコードの変更も考えてみます

217 名前:名前は開発中のものです。 [2014/02/21(金) 22:16:42.52 ID:WPj1YKPY.net]
船のゲーム創りたいんですが、
どういう考え方で波を作れば船が上下したり傾いたりするでしょうか?
波を表すメッシュの頂点にベクトルを紐付けて、それを隣の頂点に伝搬する・・・
みたいな事は想像してるんですが、あんまりうまくないというか、
あまり効率的ではないですよね?
いい方法ないですか?



218 名前:名前は開発中のものです。 mailto:sage [2014/02/22(土) 05:41:07.36 ID:zZnD13Ju.net]
>>205
2分探索木を自分で作らなくても、ライブラリにあるでしょ?
B-Tree(self-balancing search tree)平衡2分探索木
B+Tree、赤黒木など

キューやスタックも、ライブラリにあるでしょ?
優先度つきキュー(priority queue)はよく使うよ

詳細はWikipediaなどで、調べて

219 名前:名前は開発中のものです。 mailto:sage [2014/02/22(土) 10:17:30.51 ID:YdhdLZfz.net]
>>213
なんちゃって水面は基本的にはそういう作り方だよ。バネダンパの二次元格子。
お船は、近傍の格子の頂点や面に反発させてどんぶらこさせればいいやという。
トライアル&エラーでパラメータ適当にいじって見た目の調整。おしまい

あ、リアル志向のゲームは何やってるのか知らないよ。学生時代に数値流体
やってたけど、あっちに凝り出すと際限がないからみんなどっかで折り合い
付けて端折ってそれっぽく見せてるだけだと思うよ

220 名前:名前は開発中のものです。 mailto:sage [2014/02/22(土) 10:56:40.26 ID:4BDQmNHU.net]
DirectComputeのサンプルをみると、パーリンノイズから低周波成分を取り除いて地面全体に繰り返し、ハイマップとして地面に適用してるみたい

221 名前:名前は開発中のものです。 mailto:sage [2014/02/22(土) 11:39:42.84 ID:YdhdLZfz.net]
>>216
DX7以前の頃だとテクスチャを2枚用意してマルチテクスチャにして
UV値の操作で各々のテクスチャを交差するように移動させると水面ぽく
見せられるよー的なやり方が多かったけど、あれをハイトマップにも
使う感じかな?

222 名前:名前は開発中のものです。 mailto:sage [2014/02/27( ]
[ここ壊れてます]

223 名前:木) 22:01:09.66 ID:XfV+syCM.net mailto: イケメンがいい []
[ここ壊れてます]

224 名前:名前は開発中のものです。 mailto:sage [2014/02/28(金) 02:45:29.15 ID:WKCAf0/q.net]
>>218
鏡を見てため息をつけばいいと思う

225 名前:名前は開発中のものです。 mailto:sage [2014/03/01(土) 15:31:28.07 ID:xOOTC3SX.net]
c++で別のクラスの数値が欲しいときはメソッドに相手クラスのポインタ変数を持ってコンストラクタでポインタを渡せばいいのですか?

226 名前:名前は開発中のものです。 mailto:sage [2014/03/01(土) 15:36:42.26 ID:ckzLhO0U.net]
コンストラクタ?

227 名前:名前は開発中のものです。 mailto:sage [2014/03/01(土) 17:29:52.27 ID:P6ZwcTGw.net]
コンス卜ラクタはコンス卜ラクタなんじゃ…?



228 名前:名前は開発中のものです。 mailto:sage [2014/03/01(土) 17:49:25.00 ID:ckzLhO0U.net]
ああ理解した、メソッド→メンバか
メンバ関数にポインタ変数を渡して…何でここでコンストラクタ??って思った

229 名前:名前は開発中のものです。 mailto:sage [2014/03/01(土) 23:00:27.16 ID:B/y6lyvX.net]
>>220
メンバにポインタ持たせてもいいし、相手クラスを継承してしまうとか、
その数値が必要になる関数の引数に、ポインタや参照で渡したり、
数値そのものを引数で渡すだけでも、好きなのでいいと思うよ

230 名前:名前は開発中のものです。 mailto:sage [2014/03/02(日) 01:12:07.39 ID:One/ooAB.net]
で、どこにゲーム関係あるの?

231 名前:名前は開発中のものです。 mailto:sage [2014/03/02(日) 18:14:52.71 ID:eSGAMgB8.net]
暗号化した外部ファイルとかセーブファイルの拡張子ってどうしてる?
foobarとかhogeみたいに意味のない文字なのがベストなんだけど
既存で使われているdatとかsavだと既になんらかの関連付けが
されてしまってる場合がありえるよね

232 名前:名前は開発中のものです。 mailto:sage [2014/03/02(日) 18:30:57.68 ID:RKme8rWA.net]
ユーザが開くことを前提としないなら気にしない。

233 名前:名前は開発中のものです。 mailto:sage [2014/03/02(日) 18:34:29.49 ID:eSGAMgB8.net]
そうか、むしろ無しでもいいか

234 名前:名前は開発中のものです。 mailto:sage [2014/03/02(日) 19:12:19.16 ID:odwxDc0w.net]
というか、ユーザーでもすぐ「あ、これがセーブファイルだな」と判るようにしておいたほうがいいだろ。
データのバックアップを取りたいことあるだろうし。

235 名前:名前は開発中のものです。 mailto:sage [2014/03/02(日) 19:15:46.36 ID:Oh6AuFJG.net]
何でも.dbにしてる

236 名前:名前は開発中のものです。 mailto:sage [2014/03/02(日) 19:21:49.81 ID:XPJItCw9.net]
bin

237 名前:名前は開発中のものです。 [2014/03/02(日) 20:11:55.85 ID:uIAHAPdg.net]
gyazo.com/c12e1b45288577f41bce47f9a3c3b457.png

マルチスレッドってオブジェクトリストの更新中に
オブジェクトリストを参照できないんだから意味なくないですか?
どうしてマルチスレッドで動作が軽くなるんですか?
セマフォをオブジェクト単位でかけてたらセマフォの処理で余計重くなるのでは



238 名前:名前は開発中のものです。 mailto:sage [2014/03/02(日) 20:20:19.85 ID:9+Akgo4p.net]
ダブルバッファで検索するんだ

239 名前:名前は開発中のものです。 mailto:sage [2014/03/02(日) 20:21:15.86 ID:Oac8ta12.net]
誰か使ってないですかねぇ
oxygine.org/

240 名前:名前は開発中のものです。 [2014/03/02(日) 20:51:20.45 ID:uIAHAPdg.net]
>>233
画面のチラツキを抑えるほうが出てきて、出てきても申し訳程度の説明しかない・・・
www.cs.tsukuba.ac.jp/~yas/cs/csys-2007/2007-12-14/
>◆ダブルバッファリング
> 整数を1つバッファに書き込むだけでロック/アンロックを行なっていると、 実際の並列処理では重たい。
> ロックの回数を減らすために、ダブルバッファリ ングと呼ばれる技術がよく使われる。読み手と書き手で別々にバッファをもうけ、1つのバッファの処理をしている間は、ロックを行なわない。

リストで1つのオブジェクトを更新してる間は「描画スレッドが使っちゃだめですよフラグ」でもたてるのか?
それを参照する時点でスレッドセーフじゃなさそうだけど

それともリスト内の全部のインスタンスのコピーを毎フレーム作るのか?

241 名前:名前は開発中のものです。 [2014/03/02(日) 20:59:31.72 ID:uIAHAPdg.net]
あいや、これは循環バッファ?というやつでダブルバッファとは違うのか

242 名前:名前は開発中のものです。 mailto:sage [2014/03/02(日) 22:59:32.88 ID:bJnQrcsZ.net]
計算したデータを参照渡しせずに、値渡しすればいいだけの話

243 名前:名前は開発中のものです。 mailto:sage [2014/03/02(日) 23:13:50.02 ID:0kUNTeet.net]
マルチスレッドを効果的に使う場面は、
BGM,効果音など
背景の処理、草や木が風でゆらゆらする
シェダー関係もそう

244 名前:名前は開発中のものです。 mailto:sage [2014/03/02(日) 23:15:24.40 ID:YZ+wwGoZ.net]
インスタンスのセットを2つ(AとBとする)作っておいて
・描画スレッドがAの状態を使用して描画している間、更新スレッドは
 Aの状態をもとに更新後の状態をBに作成する。
・両方が完了したらAとBをスワップする
って方法かなぁ

>>232の図で言えば、Subスレッドが描画している間に
Mainスレッドがもう次のフレームの接触判定を処理し始めてる感じ

245 名前:名前は開発中のものです。 mailto:sage [2014/03/02(日) 23:23:34.37 ID:bJnQrcsZ.net]
計算したデータを描画用のバッファに積んで、描画処理に引き渡せばいいだけ。
なんで単純に出来ることを複雑にやろうとするんだ?

246 名前:名前は開発中のものです。 mailto:sage [2014/03/02(日) 23:31:43.29 ID:Oh6AuFJG.net]
>>231
.binはlinuxの.exeって感じでデータっぽくない

247 名前:名前は開発中のものです。 mailto:sage [2014/03/02(日) 23:37:13.73 ID:Oh6AuFJG.net]
>>234
面白そうだけど利用者ほとんどいないようだし、すぐに消えそうだな
cocos2dのほうが良いよ



248 名前:名前は開発中のものです。 mailto:sage [2014/03/02(日) 23:44:39.24 ID:Oh6AuFJG.net]
>>239
それって概念的には全てのインスタンスx2だけど、
描画スレッドは描画に関するデータ(それも画面内に入るもの)だけあれば良いから
実際には必要なメモリ量を削った実装で実現できるな

249 名前:239 mailto:sage [2014/03/03(月) 00:29:47.75 ID:+ppeC4rH.net]
>>243
確かにそうだ
そして多分それが>>240が言っている
「計算したデータを描画用のバッファに積んで、描画処理に引き渡」す
ってのに近いのかも

この辺で思ったんだが、もしDirectX11を生で叩いてるなら
DeferredContextとか使うといいのかな

250 名前:名前は開発中のものです。 [2014/03/03(月) 00:38:44.19 ID:/CdxWaD8.net ?BRZ(10000)]
sssp://img.2ch.net/ico/u_01.gif
>>239
スカラだけならともかく毎フレーム描画に必要な情報全てをnewするのか?

>>239
描画用のバッファを積む時にスレッドぶつかるかもしれないって話では?

class aiueo{
private:
Position* position;
Position* drawPosition;
public:
void func(){
position->setX(position->getX+1);
Position* tmp=position;
position = drawPosition;
drawPosition = tmp;
}
void draw(){
image.draw(drawPosition);
}
};

251 名前:名前は開発中のものです。 mailto:sage [2014/03/03(月) 07:13:32.62 ID:mjyyGJWK.net]
一フレームぶんのバッファに積み終わってから引き渡せばいいだけの話。
引き渡したら描画を描画スレッドにやらせて、計算スレッドは次の計算に入ればいい。
なんで単純で簡単なことを複雑に考えるのか、さっぱり理解できない。

そもそも描画順序などを考えると、座標がすべて確定した後で無ければ、
描画処理なんて出来ないのに、なんで計算直後にチマチマ描画しようという発想になってるんだ?

毎フレームnewとかも、嫌なら最初からある程度の領域を作っておけばいいだけの話で、
そんな簡単に解決できるどうでもいいことをイチイチ聞く意味が分からない。

なにこの思考能力の欠如?

252 名前:名前は開発中のものです。 mailto:sage [2014/03/03(月) 07:44:19.21 ID:+ppeC4rH.net]
別の書き方は出来ないのかあんたは

253 名前:名前は開発中のものです。 [2014/03/03(月) 08:19:00.54 ID:/CdxWaD8.net ?BRZ(10000)]
sssp://img.2ch.net/ico/u_01.gif
gyazo.com/7984315b649ca2378a5b63989ada2874.png
図で確認するとこんな感じ?
ロックの仕方がよくわからんけど、
メインスレッド側のバッファは描画スレッドに必要な情報(頂点とか)いらないからトントンになるのかな
そうすると、毎フレームnew

254 名前:キるより保持してたほうが楽そう

描画スレッドはモデルの頂点の展開とかやらずに文字通りZバッファに登録するだけだったりする?
[]
[ここ壊れてます]

255 名前:名前は開発中のものです。 mailto:sage [2014/03/03(月) 14:38:46.71 ID:7XSFdIT2.net]
>文字通りZバッファに登録するだけだったりする?
意味不明

256 名前:名前は開発中のものです。 mailto:sage [2014/03/03(月) 20:28:03.25 ID:+ppeC4rH.net]
>>248
使ってるライブラリ教えて

257 名前:名前は開発中のものです。 [2014/03/04(火) 00:42:30.15 ID:tv4RC6nv.net]
なんか描画スレッド分けるのがマルチスレッドみたいな流れになってるけど
処理の分割しないと複数コアの性能いかせないよね

>>238以外にも分割出来るところはあるんじゃないの
AIなんかのフレームと分けられる箇所が効果的だとは思うんだが



258 名前:名前は開発中のものです。 mailto:sage [2014/03/04(火) 00:54:00.93 ID:Tkd6LlXd.net]
>>248
君はレベルが低すぎる。基礎的なことすら理解していないようだから
身の丈に合った技術で制作するべきだ

259 名前:名前は開発中のものです。 mailto:sage [2014/03/04(火) 01:01:46.35 ID:Tkd6LlXd.net]
ゲームロジック以外については定番のパターンがあるわけで、
ゲームロジックについてはゲームの性質次第だから汎用的な議論はできん

260 名前:名前は開発中のものです。 [2014/03/04(火) 01:12:12.33 ID:eUCtnBam.net ?BRZ(10000)]
sssp://img.2ch.net/ico/u_01.gif
>>250
DXライブラリです

261 名前:名前は開発中のものです。 mailto:sage [2014/03/04(火) 01:22:03.26 ID:eUCtnBam.net]
>>252
そんなこと言わないで><

262 名前:名前は開発中のものです。 mailto:sage [2014/03/04(火) 01:45:49.24 ID:MGr4iOMf.net]
身の丈に合った技術で満足してたら俺みたいに全然成長しないままになるしいいんじゃね?

263 名前:名前は開発中のものです。 mailto:sage [2014/03/04(火) 03:19:20.41 ID:NSoGUl2d.net]
自称デキル人の大半はエセ
バグ生産しまくるのは得意みたいだがw

無視するに限るよ(ry

264 名前:名前は開発中のものです。 mailto:sage [2014/03/04(火) 03:24:44.21 ID:6r8+3FgW.net]
>>256
満足するならなw

265 名前:名前は開発中のものです。 mailto:sage [2014/03/04(火) 09:14:16.41 ID:Tkd6LlXd.net]
いまどきDXライブラリの初心者でマルチスレッドの基礎も理解してないのに
無理に背伸びした結果が「文字通りZバッファに登録するだけだったりする?」
格好ばかりつけて内容がなさすぎだろ

上で新技術OpenMPとかドヤってたやつといい、もう少し自惚れを抑えて
真摯な姿勢で学ばんと時間の無駄だよ

266 名前:名前は開発中のものです。 mailto:sage [2014/03/04(火) 09:15:50.51 ID:A1Dcjr5j.net]
そもそもグラボの基礎から学びなおせ。
明らかにZバッファが何か分かってないだろ。

267 名前:名前は開発中のものです。 mailto:sage [2014/03/04(火) 12:24:51.64 ID:VEfOUnzL.net]
>>254
Zソートの機能があるライブラリって訳じゃ無いのね



268 名前:名前は開発中のものです。 [2014/03/04(火) 21:19:35.34 ID:eUCtnBam.net ?BRZ(10000)]
sssp://img.2ch.net/ico/u_01.gif
>>261
アルファ値がある面だけZソートして、不透明な面の後から描画しています。

マルチスレッドの基礎はわかりませんが、
勉強目的で実装してみようかなと考えて、疑問点があったので質問しました。

質問の内容に戻りたいのですが、
メインスレッドではオブジェクトの座標だけ計算して、
描画スレッドでオブジェクトの座標からモデルの頂点等を展開すると
メインスレッドと描画スレッドが共有する値が少なくなっていいかなと考えたんですが、
実際に使われているスタンダードな方法とかあれば教えていただけると助かります。

269 名前:名前は開発中のものです。 mailto:sage [2014/03/05(水) 00:56:58.44 ID:vvepHaRA.net]
struct Node {
....Image* image; // D3DMesh mesh でもFontSprite fontでもいい
....Rect bounds;
....Rect src;
....double angle;
};

struct Layer {
....int usingLength = 0;
....Chain<Node> chain; // std::list<Node>
/*
Chain<Node2DImage> chain1;
Chain<Node2DFont> chain2;
Chain<Node3DModel> chain3;
*/
....bool isUpdate = false;
};

270 名前:名前は開発中のものです。 mailto:sage [2014/03/05(水) 00:58:26.26 ID:vvepHaRA.net]
Lock g_sync; // winならクリティカルセクシ

271 名前:ョン、linuxならセマフォ

Layer g_layers[3]; // instance;
Layer *g_pFront = &g_layers[0];
Layer *g_pSwap = &g_layers[1];
Layer *g_pBack = &g_layers[2];

void threadFront(){ // GUI Thread = main thread
....while(true){
........g_sync.lock();
........if(g_pSwap->isUpdate == true){ // ロジック側がスワップした
............Layer *swap = g_pFront;
............g_pFront = g_pSwap;
............g_pSwap = swap;
............g_pSwap = false;
........}
........g_sync.unlock();
........render(g_pFront);
....}
}
[]
[ここ壊れてます]

272 名前:名前は開発中のものです。 mailto:sage [2014/03/05(水) 01:01:42.52 ID:vvepHaRA.net]
void threadBack(){ // Logic
....while(true){
........g_sync.lock();
........if(g_pSwap->isUpdate == false){ // 描画側がスワップした
............Layer *swap = g_pBack;
............g_pBack = g_pSwap;
............g_pSwap = swap;
............g_pSwap = true;
........}
........g_sync.unlock();
........update(g_pBack);
....}
}


class Scene {
public:
....virtual void update = null;
....virtual void render() = null;
}

273 名前:名前は開発中のものです。 mailto:sage [2014/03/05(水) 01:07:10.79 ID:vvepHaRA.net]
class Game : public Scene {
....Sprite sprite;
public:
....void update(){
........sprite.x++;
....}

....void render(){
........sprite.render(); // g_pBackにデータを渡す
....}
}

Scene* g_pScene = new Game();

// Logic Thread update()
void update(Layer* layer){
....g_pScene->update();
....g_pScene->render();
}

問題は、GUIスレッドしかテクスチャーとかの生成と破棄ができないのだが、
ロジック側の要請をキューにしてメッセージパッシングするのは
少し複雑な実装になるこった。

274 名前:名前は開発中のものです。 mailto:sage [2014/03/05(水) 16:23:12.96 ID:x8H/gaMj.net]
ideoneとかcodepadとか使えばよかったのに

275 名前:名前は開発中のものです。 [2014/03/05(水) 20:45:55.74 ID:6x2/6ZGn.net]
sleepってなくてもいいもんなの?

276 名前:名前は開発中のものです。 [2014/03/05(水) 21:47:30.12 ID:6x2/6ZGn.net]
マルチスレッドプログラミングの基本について書いてる記事があった
www.kumikomi.net/archives/2005/02/02multi.php?page=1

組み込みのサイトだけど基礎だからゲーム製作にも役立つかな
まあこれ見ても具体的な実装なんてさっぱりわからんけど

277 名前:名前は開発中のものです。 mailto:sage [2014/03/05(水) 22:22:10.31 ID:vvepHaRA.net]
マルチスレッドプログラミングしなくてもいいじゃん



278 名前:名前は開発中のものです。 mailto:sage [2014/03/05(水) 22:28:07.13 ID:xpm2EzP6.net]
起動時のスプラッシュ画面を出すときに欲しくなるんじゃない?(適当)

279 名前:名前は開発中のものです。 mailto:sage [2014/03/06(木) 22:54:49.68 ID:wXpbFvTO.net]
マルチスレッドと言えばQtのQMutexLockerはとても便利だった
ミューテックスのロックとアンロックが一行でできる

280 名前:名前は開発中のものです。 mailto:sage [2014/03/06(木) 23:58:17.76 ID:g6URqktg.net]
>>266
書いてくれて嬉しいですが、処理の流れが見えないですね・・・
swapは裏画面と表画面を入れ替えてるというのはわかるんですが
ロジック側も入れ替えるんですか?
layerとかchainとか何を指してるのかイマイチわからないです・・・

g_sync.lockというのはロック出来るまで待機すんるでしょうか?
そうするといい感じに交互に処理できそう?

281 名前:名前は開発中のものです。 mailto:sage [2014/03/07(金) 16:53:26.89 ID:fjndePR8.net]
だから基礎知識のないやつに教えてもこうなるだけだと言ったろう?
時間の無駄だから諦めたほうがいい

282 名前:名前は開発中のものです。 [2014/03/07(金) 18:45:58.30 ID:p/ke0iDn.net ?BRZ(10000)]
sssp://img.2ch.net/ico/u_01.gif
マルチスレッドで描画しているゲームで、FPSが60以上出るゲームがあるけど
あれって一秒間に60回以上オブジェクトの更新しているってこと?

それとも更新側も全力でループ回して、前フレームからの経過時間を測って処理落ちにも対応する感じ?

283 名前:名前は開発中のものです。 mailto:sage [2014/03/07(金) 19:37:40.45 ID:fjndePR8.net]
シングルスレッドでも余裕で1000FPSでますよ?
すっげー爆速だー()

284 名前:名前は開発中のものです。 mailto:sage [2014/03/07(金) 19:48:26.65 ID:DRlt5 ]
[ここ壊れてます]

285 名前:uyo.net mailto: 1フレームの処理に16ミリ秒も使えるんだぜ
16,000マイクロ秒だぜ
16,000,000ナノ秒だぜ
[]
[ここ壊れてます]

286 名前:名前は開発中のものです。 mailto:sage [2014/03/07(金) 20:16:57.82 ID:fjndePR8.net]
XNAは50FPS推奨だったような気がする
俺もなんとなく50FPSで同期とってる

287 名前:名前は開発中のものです。 [2014/03/07(金) 21:10:47.46 ID:p/ke0iDn.net]
1000FPSでたってモニタがせいぜい120FPSまでしか対応してないじゃん(´・ω・`)



288 名前:名前は開発中のものです。 mailto:sage [2014/03/07(金) 21:28:42.22 ID:EnJ3GPFi.net]
>>279
見た目はそうだけど、例えば 当たり判定があるなら、見えない部分でも計算処理がなされる。

289 名前:名前は開発中のものです。 mailto:sage [2014/03/07(金) 21:44:38.99 ID:Gh0ocgNA.net]
だから、それに何か意味があるのか?
フレーム飛ぶだろ。

290 名前:名前は開発中のものです。 mailto:sage [2014/03/07(金) 21:54:40.27 ID:5nTupHrf.net]
裸の王様的当たり判定

291 名前:名前は開発中のものです。 mailto:sage [2014/03/07(金) 22:08:10.09 ID:7HkmM3vq.net]
>>281
あくまで精度を高めるための処理であって、フレーム飛ぶとかは関係なくね?

よくあるネタとして、毎フレーム32ドットで飛んでいく弾丸は、
大きさ30ドットの敵キャラをすり抜けちゃうとか、そういうやつ。

292 名前:名前は開発中のものです。 mailto:sage [2014/03/07(金) 22:42:09.70 ID:fjndePR8.net]
そういうやつで、あんなやつで、いいかんじに、そんなかんじみたいな?

293 名前:名前は開発中のものです。 mailto:sage [2014/03/07(金) 22:50:16.12 ID:fjndePR8.net]
画面は秒間60回、ロジックは秒間100回更新するより時間差分を使うほうが
一般的じゃないかな。アニメーションなんかでは。

ちなみにマウスを使ったお絵描きソフトをつくると60FPSでは
線が途切れてしまうわけだけど、こちらでは更新回数を増やすのではなく
前回の座標と今回の座標の差分から埋め合わせを計算するのが普通。

294 名前:名前は開発中のものです。 mailto:sage [2014/03/07(金) 22:53:06.64 ID:EnJ3GPFi.net]
マルチスレッドが有効利用できる部分と、利用できない部分がある。
効率的にマルチスレッド化出来る事が限られている。

そして、CPUが4コアであっても 決して4倍には成らない。

295 名前:名前は開発中のものです。 mailto:sage [2014/03/07(金) 22:55:14.98 ID:RMnLXnbR.net]
「目に見えなくて意味がない部分を省略する」メリットよりも
「あらゆる状況に対応できる」メリットを優先するってだけの話じゃ。

296 名前:名前は開発中のものです。 mailto:sage [2014/03/07(金) 22:56:53.08 ID:Gh0ocgNA.net]
さっぱり言ってることが分からんわ
単にCPUに余裕があるって話なら分かるけど。
それと1000FPSになんの関係があるんだ?

処理を1000回やるのと1000FPSは意味が違うだろ。

297 名前:名前は開発中のものです。 mailto:sage [2014/03/07(金) 23:09:10.35 ID:fjndePR8.net]
アホの子はマルチスレッドを使うことが目的化しているなw
「マルチスレッドでCPU性能を限界まで引き出す(ドヤ」

これからはマルチスレッド・ボーイと名乗りなさい



298 名前:名前は開発中のものです。 mailto:sage [2014/03/07(金) 23:21:09.90 ID:ZsI9fYzN.net]
マルチスレッドを勉強したいんだろうしそれが目的でいいんじゃねえの

299 名前:名前は開発中のものです。 mailto:sage [2014/03/07(金) 23:31:09.17 ID:7HkmM3vq.net]
>>288
フレームという単位は、確かに元は映像や画像処理の世界の言葉だが、
ゲーム系では映像の出力の他にも、処理の単位(要はループ数)として使われることがある。
どっちの意味で言ってるかは文脈による。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<257KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef