[表示 : 全て 最新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/

398 名前:名前は開発中のものです。 mailto:sage [2014/03/18(火) 20:53:36.58 ID:CMOj/Jcf.net]
ttp://homepage2.nifty.com/natupaji/DxLib/dxprogram.html#N4
アドレスはこちらでした。

399 名前:名前は開発中のものです。 mailto:sage [2014/03/18(火) 22:13:14.48 ID:anUGUjWa.net]
うむ、それしかないと思うよ

400 名前:名前は開発中のものです。 mailto:sage [2014/03/19(水) 01:58:11.08 ID:tk/WX1Vm.net]
>>387
リンク先をチラ見した程度じゃ、何をやってるか正しく把握してないし、
>>387の言わんとしてることもイマイチ分かりかねてるが、

方法としては、
昔ながらRPGみたく、
 キャラの位置が画面端に近づいたら画面全体じゃなくて、キャラのみを移動にする方法や
完全にどこの位置でもキャラを移動させる方法、画面端(移動制限をしっかり)して描画に十分な余白
の3通りぐらいはあると思うよ。
 他にも3D系のだと、画面端に近づくと縮尺が変わってとかもあるけど。

401 名前:名前は開発中のものです。 mailto:sage [2014/03/19(水) 04:13:25.51 ID:GLn+gVin.net]
色々な表現方法があるのだが、比較的応用のききやすい方法を。
こんな事言って、例のkなんとかさんが激おこしないことを祈る。

>>387
現実世界で言うところの、スポーツ中継におけるTVカメラのようなものを想像して欲しい。

例えばマラソン中継。ランナーは常に走っているけど、カメラも同じ方向に動いている。
あるいは野球中継。ホームランボールをTVカメラが追いかけて、常に画面の中央にあるように撮影する。

被写体の動きに合わせてカメラを動かすことで、視聴者には被写体は停止し、背景が流れていくように見える。
カメラを動かすのをやめれば、逆に背景は停止し、被写体は移動する。やがて画面の外に消えてゆくだろう。

これをまとめると
 (1)キャラクターは、画面表示に関わらず常に動かせ。
 (2)マップは、画面表示に関わらず座標を動かしてはならない。
 (3)カメラの位置は、状況に合わせて移動させろ。
ということになる。

402 名前:名前は開発中のものです。 mailto:sage [2014/03/19(水) 16:07:40.13 ID:UvHVMI/M.net]
387の質問はサンプルソースをどうするかって話だから
その答えだと根本から作りなおせって事になるんじゃない?

403 名前:名前は開発中のものです。 mailto:sage [2014/03/19(水) 16:41:44.59 ID:pluZ/2gm.net]
まあ答えとしては>389に言われちゃってるしな

404 名前:名前は開発中のものです。 mailto:sage [2014/03/19(水) 17:00:07.58 ID:o8V0VZ6P.net]
そのサンプルだと滑らかに動くスクロール処理をキャラじゃなくてカメラビューの方に入れてるね。
ぶっちゃけサンプルとしてはどうかと思うぞ。
キャラとカメラ両方に入れるか、キャラに入れるか。この二択でしょ。Dxlibの作者もなんでこんな
初心者いじめのようなサンプルを書いたんだろw

405 名前:名前は開発中のものです。 mailto:sage [2014/03/19(水) 22:07:24.67 ID:rw0JuaTm.net]
俺こそが世界の中心!

406 名前:名前は開発中のものです。 mailto:sage [2014/03/20(木) 17:23:48.20 ID:XEsROipC.net]
C++とかで「グローバル宣言なるべく使うな」って言うけど、どうやって変数のデータを保持するの?



407 名前:名前は開発中のものです。 mailto:sage [2014/03/20(木) 17:51:07.52 ID: ]
[ここ壊れてます]

408 名前:yGIdDx3B.net mailto: 手元の入門書を開いてみてくれ。
「関数」のページに、おそらく「引数(ひきすう)」という項目が書かれてると思う。そこを読むんだ。
[]
[ここ壊れてます]

409 名前:名前は開発中のものです。 [2014/03/20(木) 17:55:02.77 ID:XkJNKHnH.net]
クラス化
引数、戻り値

410 名前:名前は開発中のものです。 mailto:sage [2014/03/20(木) 18:06:26.35 ID:XEsROipC.net]
>>397,398
C++があやふやなのであれなんですが、Cで言えば構造体の中でxという宣言をすれば、


void main(){

}

411 名前:名前は開発中のものです。 mailto:sage [2014/03/20(木) 18:08:28.64 ID:XEsROipC.net]
途中で更新ボタン押してしまった(´・ω・`)

勉強したてであやふやなのであれなんですが、Cで言えば構造体の中でxという宣言をすれば、
Test test;

void main(){
test.x=1;
}

こんな感じにしてしまえば、xはグローバル宣言ではないということでしょうか?

412 名前:名前は開発中のものです。 mailto:sage [2014/03/20(木) 18:12:12.69 ID:QQSkDL4k.net]
>>400
このxはすでにグローバル変数ではなくて、ローカル変数だね
関数の中でしか有効ではない変数で、その関数を抜けるとその変数は破棄されるやつ

グローバル変数ってのはTest testってなってるやつのこと

413 名前:名前は開発中のものです。 [2014/03/20(木) 18:17:11.33 ID:7FNS6Iq5.net]
なんか言ってることが良く分からんが
Test test;
を関数外に書いてるからtestはグローバル変数
だからその中に保持されているxの値も関数抜けても維持されるよーじゃなくてさっさと入門サイト見てこいカス

414 名前:名前は開発中のものです。 mailto:sage [2014/03/20(木) 20:27:56.02 ID:4y6T8wZl.net]
グローバル変数を使うことが悪いのではない
グローバル変数を使うことでバグを引き起こしたりメモリを圧迫する事が悪なのだ
要求機能満たして動くならグローバル使っても気にするこたぁない

415 名前:名前は開発中のものです。 [2014/03/20(木) 20:32:50.84 ID:mbiTOjB0.net]
そういうのはわかるようになってから考えればいいし
初心者のうちはグローバル=悪って覚えていた方が安全

416 名前:名前は開発中のものです。 mailto:sage [2014/03/20(木) 20:41:55.88 ID:F5faASXs.net]
問題になるのは生成、破棄の順序位でしょ
メモリ圧迫なんてヒープからnewしたのと同じだしスタックに積まれるよりまし
アクセス範囲や名前の衝突なんてのも関数でも起こるし
アクセッサーとか間違った使い方のシングルトンで
どこからでも参照できるようにしたら同じこと



417 名前:名前は開発中のものです。 mailto:sage [2014/03/20(木) 20:58:57.29 ID:QQSkDL4k.net]
シングルトンを使うのがそもそもおかしいって力説するやつに会ったことならある

418 名前:名前は開発中のものです。 mailto:sage [2014/03/20(木) 21:49:50.24 ID:F5faASXs.net]
インスタンスが単一を保証するためのパターンでどこからでもアクセスできる為では無いからな
ローカルなクラス内のシングルトンもあるので間違えられると混乱の元
ゲームのデータクラスとして使うのは設計次第

419 名前:名前は開発中のものです。 [2014/03/20(木) 22:00:31.87 ID:mbiTOjB0.net]
リソースよりもメンテナンスの問題でないの
一人開発だとそんな気にならんけど規模でかくなると影響範囲の広い変数なんて地雷みたいなもんだからな
下手に修正すると全く関係ないところでエラーでたりしてトレース大変だったり

420 名前:名前は開発中のものです。 [2014/03/21(金) 18:13:16.93 ID:VAKzG1ya.net]
シングルトン便利なのに
呼び出し側は生成関数使うだけで初期化されてるか気にしなくていいとか楽チン仕様にできる
グローバル変数だけだとそうはいかんよね

421 名前:名前は開発中のものです。 mailto:sage [2014/03/21(金) 20:31:26.05 ID:sV0Efmq2.net]
初期化に失敗する可能性入れたら
実際に使う前に確認しておきたいけどな

422 名前:名前は開発中のものです。 mailto:sage [2014/03/21(金) 22:38:50.59 ID:4DgLw9n9.net]
初期化に失敗する可能性のあるものは
初期化するタイミングを図らないといけないもので
それはシングルトンより適したデザインがあるのてはないか

423 名前:名前は開発中のものです。 mailto:sage [2014/03/23(日) 14:45:46.78 ID:UqjjQ2/2.net]
>>408
そういう目的ならnamespaceを分ければよくねって話なら見た覚えがある

ググったら過去スレがひっかかった


424 名前:http://toro.2ch.net/test/read.cgi/gamedev/1357899040/
シングルトンで検索すると面白い
[]
[ここ壊れてます]

425 名前:名前は開発中のものです。 mailto:sage [2014/03/24(月) 21:27:07.06 ID:rE2XsGEW.net]
最新のdirectx SDKってどこで入手したらいいですか?
ググっても場所がまちまちで

426 名前:名前は開発中のものです。 mailto:sage [2014/03/24(月) 21:41:34.76 ID:AEJao4UL.net]
>>413
Windows8に標準でついてくるそうだ



427 名前:名前は開発中のものです。 mailto:sage [2014/03/24(月) 21:50:42.35 ID:WjXmoSNL.net]
2012以降のVisual Studioに標準で付いてくる、な

428 名前:名前は開発中のものです。 mailto:sage [2014/03/24(月) 22:39:54.92 ID:PqJgwAnT.net]
マジレスすると>>415のやつ
それかWindowsSDKに一緒に入ってる
この程度は自分で調べようぜ

429 名前:413 mailto:sage [2014/03/24(月) 22:44:31.69 ID:rE2XsGEW.net]
インストール出来ました
ありがとです

430 名前:名前は開発中のものです。 [2014/03/25(火) 09:41:15.88 ID:KT+bOjyU.net]
toro.2ch.net/test/read.cgi/gamedev/1175423459/719
↑  ↑  ↑  ↑  ↑  ↑

431 名前:名前は開発中のものです。 mailto:sage [2014/03/26(水) 11:37:26.78 ID:+vTfvSPy.net]
シューティングゲームを作る時、移動キー押下時に自キャラと他オブジェクトとの衝突判定を行うと思うのですが、
1フレーム移動毎に、敵や敵の弾や壁との衝突判定をしていると
画面上に敵の弾が100個とかあったりするとかなり膨大な数ループ処理が必要な気がします。

一般的なゲームの場合、画面上で動いているオブジェクトは全て1フレーム毎に衝突判定をしているのでしょうか?

432 名前:名前は開発中のものです。 mailto:sage [2014/03/26(水) 13:20:48.84 ID:47820mJU.net]
2Dだけど
marupeke296.com/COL_2D_No8_QuadTree.html

433 名前:名前は開発中のものです。 mailto:sage [2014/03/26(水) 13:22:14.35 ID:+vTfvSPy.net]
>>420
レスした後でそこ見つけたんだけど私の頭では理解が・・・(´・ω・`)
皆この概念でシューティングゲーム作ってるんですかね?

434 名前:名前は開発中のものです。 mailto:sage [2014/03/26(水) 13:23:52.42 ID:ghUA5KPp.net]
>>420
今まで普通にやってたけど名前が付いてるの始めて知ったわ
ありがとう

435 名前:名前は開発中のものです。 mailto:sage [2014/03/26(水) 13:56:03.88 ID:xWjmtvj1.net]
俺もその理屈何度も読んだけど理解できないんだよなぁ。
素人に解るレベルに噛み砕いてくれてるとこあればいいのに。

結局座標で判定して分割してたりする。俺。

436 名前:名前は開発中のものです。 mailto:sage [2014/03/26(水) 14:03:19.61 ID:+vTfvSPy.net]
>>423
ttp://flash.polig.daa.jp/?eid=1242167
今さっき見つけたけどここと同じやり方ですかね?
これならなんとなくわかる気がする。



437 名前:名前は開発中のものです。 mailto:sage [2014/03/26(水) 17:00:06.09 ID:VxCnnAtl.net]
>>419
100個くらいなら問題にならないっていう指摘と
なぜ移動キーを押してる間しか当たり判定がないのかというツッコミと

438 名前:名前は開発中のものです。 mailto:sage [2014/03/26(水) 17:08:48.02 ID:47820mJU.net]
質問はそこじゃないから

439 名前:名前は開発中のものです。 mailto:sage [2014/03/26(水) 18:28:38.14 ID:VxCnnAtl.net]
質問に答えたつもりは無いのだが…

440 名前:名前は開発中のものです。 mailto:sage [2014/03/26(水) 20:24:20.53 ID:Hvj0In47.net]
ID:VxCnnAtl
その嫌われ者キャラは素なの?
治した方がいいよ。この先も友達出来ないよ。

441 名前:名前は開発中のものです。 mailto:sage [2014/03/26(水) 20:29:33.08 ID:fl0FfJGt.net]
一般的なゲームをどのクラスで指すのか分からないけど、
時代やハードを問わない"基本"は力技というか、1フレームごとの全判定だと思うっす。
ベテランプログラマがざっくりと組んじゃうところじゃなければ、
とりあえずプロトタイプを作ってみて、そっから必要な機能を満たしつつ、
どんだけ不要な判定対象を省いて回数減らせるか、ってやり方が多い気はする。

負荷やループ数を気にしているのなら、最近の据え置き機や携帯ゲーム機の場合だけど、
C++使ってるなら、数万回のループ判定程度がボトルネックやオーバーヘッドになることは少なくて(余程複雑な判定をしてれば別)、
問題になるのは2D3D問わずグラフィックスコマンドの場合が圧倒的に多いと思う。

なので、研究目的とかじゃなくて今時のハードで遊べるものを作りたいというだけなら、
判定そのものはそこそこ効率化してれば十分だと思うお。
よくあるシューティング形式なら、>>423の考え方でも十分効率上がりまっせ。

442 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 05:30:55.80 ID:y42irIZJ.net]
そういう変な聞きかじりは止めた方がいい。

>>423ならスクロールなし画面に入るサイズだから判定もせいぜい3000未満でしょ。
それなら普通にforループ回して十分だし、そこだけマルチスレッドにしても良い。

443 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 05:42:21.29 ID:66/qzmyK.net]
厨が頑張るスレw

444 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 10:43:42.33 ID:LEeCMwpD.net]
「効率の良い判定方法を教えて下さい」
「今どきのPCは高性能だからそんな事考えなくてもOK!」

じゃ会話にならないでしょ。
ていうか自分の環境を基準に考えるのは止めたがいいよ。

445 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 11:05:32.54 ID:tJdovPbY.net]
「そこに拘るよりは、他の場所がネックになってる可能性が高い」なら回答としてギリギリありかな

446 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 12:17:49.28 ID:68m9m0Mu.net]
そうかなぁ。
私も>>425と同じ感想を持ったんだけど。

>>419が実際にそういう総当りをしてみて重かったから他のやり方を聞いてるなら>>432のいうとおりだけど、実際やってみたのかね?
そういう感じには読めなかったけど。



447 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 12:21:35.48 ID:3O8ksg+h.net]
判定するまでもなく接触していないことが自明なものはそもそも判定しない、とか

あとは、シューティングゲームなら
「敵x敵、敵弾x敵弾、敵x敵弾の判定は不要だからしない」とかで
判定回数を減らせることがある
(もちろんその判定がシステム上必要ならやるしかないけど)

あと経験不足な人だと
A→Bの判定とB→Aの判定を別個にやっちゃってて
そのせいで速度が出ないってのもあるかも?
これを修正するだけで判定回数を半分にできる

448 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 12:35:21.54 ID:NuLp7Gqa.net]
>>434
馬鹿じゃないの?ほんと文章を文字通りにしか受け取れないんだね。
誰が100個限定の質問してんだか。どう見ても数多くのオブジェクトがあった場合の衝突判定の質問だろ。
お前以外は皆わかってそういう答え返してるのに、お前だけが100個という質問の中のどうでもいい部分に固執してるわけだがw
ここを10000個とでも書かないと分からんの?アホだろw

449 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 12:56:33.60 ID:68m9m0Mu.net]
>>436

まじか。
想定されるオブジェクトの個数というのは重要な情報だと思ってるんだが、他の人はそうじゃないのか。
1個でも42億個でも対応できるようなやり方を毎回してるの?
100個って書いてあったらだいたい100個くらいを想定してるんだと思うのが普通だと思うが、そうでもないんだなぁ。

450 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 12:59:39.14 ID:LaHWZeJX.net]
そもそもプログラム組める奴が434みたいな的はずれなこと言い出す訳がないわけで…
つまり、相手するなカス荒れるから

451 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 13:17:49.49 ID:462b1dLf.net]
膨大な数のループを使う判定は書けるんだからさらに増えたらどうすんのって質問でしょ

452 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 14:43:18.93 ID:0LKTz7/0.net]
>ここを10000個とでも書かないと分からんの?アホだろw

2Dの当たり判定の処理は軽いから、マンコでも同じ事。 やってみ

453 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 15:10:53.94 ID:2L1CAOZz.net]
話変わって悪いけど、レースゲームで車が高速移動しすぎて当たり判定が出来ない場合ってどうすればいいの?

454 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 15:51:52.80 ID:tJdovPbY.net]
>>441
1ループあたりの移動速度を半分にして、ループ数を2倍回す。

455 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 19:51:32.13 ID:D4N08/V9.net]
>>441
現在フレームをnとした場合、n-1フレームの情報を保持しておいて、nフレームとの線分を引く。
あるいは現在の位置と速度から予測されるn+1の未来予測位置とnフレームとの線分を引く。
この線分が障害物と接触していたら接触した際の処理へ移行するように書いておく。

456 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 20:07:57.55 ID:LEeCMwpD.net]
>>440

PCスペックを限定してないのにその回答は無意味だってば。



457 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 21:19:31.28 ID:tdrncXK1.net]
たとえ、 2MHz Z80であっても、ディスプレイは40x25のキャラクタ画面だから大丈夫だよ

458 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 22:05:12.78 ID:LEeCMwpD.net]
40*25のテキストエリアで10000個のキャラクター動かすのかw

459 名前:名前は開発中のものです。 mailto:sage [2014/03/28(金) 00:17:11.93 ID:49hdQnYh.net]
>>442
大丈夫かよ…

460 名前:名前は開発中のものです。 mailto:sage [2014/03/28(金) 00:45:18.83 ID:1M6UES2K.net]
>>447
俺は>>442じゃないけど大丈夫だと思う、むしろよくある手法じゃない?
アクションの通信対戦で処理落ちする時の同期なんかで使われるのも似たようなやり方あるし

461 名前:名前は開発中のものです。 mailto:sage [2014/03/28(金) 00:52:56.05 ID:bd0QOyAi.net]
一時期の同人げーって処理落ちしまくりで
「こいつら良いマシンで開発してるんだな…」って嫉妬してたw

最近はPCの性能頭打ちでそういうのなくなったからいいよねww

462 名前:名前は開発中のものです。 mailto:sage [2014/03/28(金) 00:56:09.52 ID:cOG2DjHy.net]
>>447
スレチかもしれんがUnityの物理演算部分の判定は秒間1000ループが推奨されてるんだからわりと平気なんじゃね?

463 名前:名前は開発中のものです。 mailto:sage [2014/03/28(金) 12:11:43.53 ID:/j8PQ+jU.net]
>>441
Point before, after; // 前回の座標、今回の座標
int count = 8;
int ix = (after.x - before.x) / count;
int iy = (after.y - before.y) / count;

Point pos;
pos.x = before.x;
pos.y = before.y;

for(int i=0; i<=count; i++){
bool is = collision(pos.x, pos.y); // 当たり判定
if(is) break;
pos.x += ix;
pos.y += iy;
}

count, ix, iyの値をもう少しきちんと平方根使って計ったほうがいいけど

464 名前:名前は開発中のものです。 mailto:sage [2014/03/28(金) 12:15:19.93 ID:/j8PQ+jU.net]
>>451はお絵描きソフトなんかでよく使うんじゃないかな
60fpsでマウス判定じゃ全然足りなくて線が破線になるし

465 名前:名前は開発中のものです。 mailto:sage [2014/03/28(金) 13:16:45.63 ID:UXW64F/+.net]
お絵かきならスプライン補間とかだろ2次元だとカクカクの直線になるぞ
あとそれバグ持ちだな

466 名前:名前は開発中のものです。 [2014/03/28(金) 22:13:02.97 ID:LlNhW3Yy.net]
Windows APIにDirectXが搭載されたならいい加減にウィンドウ生成とかDirectXの初期化とかどんなジャンルでも必要なゲームエンジンの要素とか短縮しねえかな
コピペとはいえ毎回見るのが嫌になってくるよな
ライブラリとかラッパー使えば済むんだろうけど理解するのは面倒だし



467 名前:名前は開発中のものです。 mailto:sage [2014/03/28(金) 22:28:44.11 ID:cOG2DjHy.net]
>>454
会社では無理だけど自分で作るようなら短縮用のヘッダーと関数とか自作しない
理解すればいろいろと便利だし

468 名前:名前は開発中のものです。 mailto:sage [2014/03/29(土) 09:51:35.35 ID:Pyp/eAfy.net]
ウィンドウ周りは自分で適当にラッパー作ったな
都度調べてコピペするより精神衛生的に良い

469 名前:名前は開発中のものです。 mailto:sage [2014/03/29(土) 13:22:18.51 ID:CYqmosk/.net]
さもありなん。
老害にはコードスニペットの概念がないからなぁ。

470 名前:名前は開発中のものです。 mailto:sage [2014/03/29(土) 21:21:25.19 ID:2TsE/LLz.net]
毎回書くような所だけ書いたプロジェクト作ってテンプレートとして登録しとけばいいんじゃないの

471 名前:名前は開発中のものです。 mailto:sage [2014/03/29(土) 21:48:25.68 ID:fyBJTsa/.net]
そしてそのテンプレートが、ゲームを作るたびに更新されていく

472 名前:名前は開発中のものです。 mailto:sage [2014/03/30(日) 00:08:10.54 ID:mb7Whzhe.net]
win32APIで別のプログラムを呼び出したいです
system関数は使ってみたんですがdos窓も一緒に出てきてしまいます

473 名前:名前は開発中のものです。 mailto:sage [2014/03/30(日) 00:14:44.76 ID:3L4NtrMF.net]
>>460
CreateProcessだとDOS窓出なかった気がする

474 名前:460 mailto:sage [2014/03/30(日) 01:27:38.78 ID:mb7Whzhe.net]
ドンピシャでした
ありがとうございます

475 名前:名前は開発中のものです。 mailto:sage [2014/04/01(火) 17:00:08.51 ID:1bXVipah.net]
>459
これありすぎて吹く

476 名前:名前は開発中のものです。 mailto:sage [2014/04/01(火) 17:13:22.13 ID:mqOcie7s.net]
俺もテンプレートってほどいいものじゃないけど
「今回作ったシステム流用すればいくらでもゲーム作れるぜ!:
と毎回思うんだけど、毎回まるまる作り直してるという……。



477 名前:名前は開発中のものです。 mailto:sage [2014/04/02(水) 10:41:39.05 ID:QH7QljdQ.net]
自分で作った3Dゲームにめちゃくちゃ酔うんだけど、比較的酔いにくくする方法ってある?

478 名前:名前は開発中のものです。 mailto:sage [2014/04/02(水) 11:13:17.38 ID:gG8rIG0W.net]
>>465 ちょっと、見せてみ

479 名前:名前は開発中のものです。 mailto:sage [2014/04/02(水) 12:36:37.68 ID:Y76EY8s4.net]
>>465
別にそういう専門知識もってないから経験則になるけど。

酔いやすい人と酔いにくい人がいるけど、酔いやすい人は三次元把握能力の高い人だと思う。これはどうしようもない。
俺は酔いにくい側の人間なんだけど、それでもあるゲームではめちゃくちゃ酔った事がある。
そのゲームはTPSなんだけど「キャラの背後に壁などの障害物があると、それが邪魔にならないよう自動でアングルが変わる」というものだった。
「背後の障害物が透明になる」なら酔わないのに「勝手にアングルが変わる」だと凄まじく酔う事がわかった。
車の運転でも、「運転してる人は酔わない」と言われてる。つ
まり「プレイヤー本人の意思とは関係なくアングルが変わる」と酔う事になる。
他にも、急激にアングルが変わる(目の処理が追いつかない)でも酔うと思われるので、ゆっくり視点を動かす工夫をすればいいのではないだろうか。
あと視点の方向を変えると遠景ほど早く動いて見えるから、遠景はあまり注視できないようにぼかすとか彩度を落とすとかするといいかもしれない。

480 名前:名前は開発中のものです。 mailto:sage [2014/04/02(水) 16:48:09.93 ID:RKxy3xMo.net]
ソニックアドベンチャーDXは何故かすごい酔った

481 名前:名前は開発中のものです。 mailto:sage [2014/04/02(水) 17:07:31.12 ID:05HXNQtD.net]
モニタを「風景の映ってる窓」として捉えると酔いにくい、なんて話も聞いたことがあるね。

482 名前:名前は開発中のものです。 mailto:sage [2014/04/02(水) 20:57:32.09 ID:SSqz5QAv.net]
FOVの設定が悪いとか

483 名前:名前は開発中のものです。 mailto:sage [2014/04/02(水) 21:38:55.24 ID:Y76EY8s4.net]
>>469
上でも言ったが俺は酔いにくい人間で、モニタに映る映像を「一枚の絵」としか認識してないんだよな。
頭のなかで3次元空間を構築しながら見ていない。

ガンブレードNYの動画を見てた時、ぐりんぐりん視界が動くのにまったく酔わなかったんだが、
ふと「一枚の絵としてしか認識してない自分」に気づいて、
頭のなかで方位を意識しながら(3次元空間を意識しながら)見なおしてみると、あっという間に気分が悪くなったw

でもこれは個人の話であってゲームをどうやれば酔いにくくできるかって技術とは別の話だよね。

484 名前:名前は開発中のものです。 mailto:sage [2014/04/02(水) 22:03:56.84 ID:yy3b+VRk.net]
3次元で意識してるけど酔ったことないな
酔うのが不思議でならない

485 名前:名前は開発中のものです。 mailto:sage [2014/04/02(水) 22:29:30.77 ID:sgFJO2N4.net]
3D酔い
カメラの位置と回転中心位置の関係が悪い
カメラ視野角の調整が悪い
カメラ回転の応答速度が遅い

486 名前:名前は開発中のものです。 mailto:sage [2014/04/02(水) 22:32:07.27 ID:6rTn9j+m.net]
>>465
FoVが狭すぎてゲロゲロ
カメラの動きでゲロゲロ

この辺りは既に言われてるようなので、あとはレベルデザインかな。
ぐぐったら自レスが引



487 名前:っかかったのでリンクを貼っとく
http://unkar.org/r/gamedev/1223550808/423-452

> 452 : 名前は開発中のものです。[sage] : 2008/12/27(土) 00:34:33 ID:quq8i6DN
> >>423
> 遅レスで更に>>425>>426と微妙にかぶる内容だが
>
> (1)FOVの問題
> 酔いの原因は様々だが、FOVの調整で改善される場合は多い
> プレイヤーの視野角を考えずに3D画面の投影変換行列を設定すると酔いやすい
>
>  ・プレーヤー視点とディスプレイ間の距離
>  ・ディスプレイの寸法
>
> 以上のパラメータから違和感の少ないFOVを探ることができる
> まぁ、既存FPSのFOV値を参考にするほうが手っ取り早いかもな
>
> (2)レベルデザインの問題
> 閉鎖空間を多用するマップは酔いやすい。これは(1)の問題との組み合わせでより悪化する
> FOVをどんなに調整しても吐く奴は吐く。対策としては開放空間(屋外)を多用する方法がある
> ただし、閉鎖空間の戦いをウリにするゲームではこの対策はとれない
>
> BFシリーズはオーケーだけどDOOM3とかHLシリーズは駄目、みたいな人に対処するのは困難
> 狭くて暗い閉鎖空間のスポーツFPSを作るつもりなら酔いやすいユーザーは切り捨てたほうが楽
[]
[ここ壊れてます]

488 名前:名前は開発中のものです。 mailto:sage [2014/04/02(水) 23:05:42.17 ID:6rTn9j+m.net]
>>473
>カメラ回転の応答速度が遅い

これ、見落とされがちだけどあるよね

ARMAでマウススムージングがデフォルトでONだったので視線の動きに
遅延が生じて気分悪かった。スムージングを切ったら何ともなかった

489 名前:名前は開発中のものです。 mailto:sage [2014/04/03(木) 00:12:27.55 ID:d8bZaMxb.net]
動き回る飛行船の上でアクションシーンを展開したゲームを作って見たいんだけど
着地判定というか、移動する床みたいなのってどうやってるんだ?

飛行船が上に進んでる時に急制動で下向いたら飛行船に乗ってたキャラクターが跳ねるチンフワ現象を取り入れたいんだけど

素直に物理エンジンに託した方がいい?

490 名前:名前は開発中のものです。 mailto:sage [2014/04/03(木) 00:41:04.11 ID:paQ+FHve.net]
物理エンジンが一番楽

正確じゃなくてもいいなら
飛行船が上に進んでいるときにキャラクターの下と飛行船の着地できる部分が接触してるか判定して
接触してるなら飛行船の上の移動量とキャラクターの上の移動量を比べて飛行船の移動量の方が大きいなら
キャラクターの上の移動量を飛行船の上の移動量に書き換える

こうすれば飛行船がいきなり止まったりしたときにふわって感じで浮くことは可能
ただ、違和感はある落ち方になると思うから物理エンジンをお勧めしとく

491 名前:名前は開発中のものです。 mailto:sage [2014/04/03(木) 01:07:35.19 ID:d8bZaMxb.net]
>>477
わかったありがとう

492 名前:名前は開発中のものです。 mailto:sage [2014/04/04(金) 02:07:12.66 ID:iGGKX1Rj.net]
詳しいね
さすがチンフワ総合スレッド

493 名前:名前は開発中のものです。 mailto:sage [2014/04/05(土) 17:41:08.13 ID:Wu1wSHql.net]
クラス分けって具体的にどんな感じでやっていけばいいの?
関数分けまでは普通に出来るんだけど、メンバ変数がある以上クラス分けしたくても出来ないし・・・

494 名前:名前は開発中のものです。 mailto:sage [2014/04/05(土) 18:16:26.54 ID:cqmzi82f.net]
「// ○○を△△する」ってなコメントが書けそうな関数が複数あったら
○○をメンバ変数に置いて、○○を操作する関数をメンバ関数にしたクラスにする

ツッコミどころ多そうだけど大雑把にこんな原則で大体どうにかなるんじゃないかな

495 名前:名前は開発中のものです。 mailto:sage [2014/04/05(土) 20:43:25.01 ID:nUDfpyEY.net]
例えばC言語みたいな手続き型の言語で攻撃の判定処理を作ったとする
1.判定対象を選択
2.判定対象の座標と大きさ、形を取得する
3.大きさや形に合わせて判定する
4.当たってたらhpをダメージ分引いたりノックバックさせたり双方の属性に合わせていくつかの処理に分岐する
5.繰り返し

クラスを使ってオブジェクト指向的に処理する
1.対象を選択
2.対象に「お前この判定対象と当たってなる?」と確認する
3.繰り返し

ここまで書いて何を言いたかったか忘れたのでこのまま投稿する

496 名前:名前は開発中のものです。 mailto:sage [2014/04/05(土) 20:58:16.49 ID:TIaN2lJ/.net]
関数を実行するのに必要な変数をまとめたのが最小単位かな
変数として持つデータに依存する部分はメンバ関数にしたいけど
std::stringみたいになんでも入れちゃうのと
マイナーな機能は引数を取る静的関数や別クラスに分けるかはまた悩む



497 名前:名前は開発中のものです。 mailto:sage [2014/04/05(土) 21:40:17.97 ID:nUDfpyEY.net]
オブジェクト指向を完全に突き詰めると動詞の関数しかなくなるような気がしないでもない
ゲームなら特に

498 名前:名前は開発中のものです。 mailto:sage [2014/04/05(土) 22:14:07.33 ID:k4ryh3Xy.net]
>>482

ええー、そんな感じなの。想像してたのと違うなぁ。

あ、俺は480じゃないけど似たような問題に詰まってる者です。

499 名前:名前は開発中のものです。 mailto:sage [2014/04/06(日) 01:53:43.72 ID:E+ECXvrW.net]
まあオブジェクト指向の作法については
それだけで厚めの本が出るぐらいだし・・・

500 名前:名前は開発中のものです。 mailto:sage [2014/04/06(日) 12:16:47.72 ID:kDoD0j2F.net]
自分のことは自分でやれってことだよ

501 名前:名前は開発中のものです。 mailto:sage [2014/04/06(日) 16:07:09.03 ID:4sjYlVDb.net]
だねぇ

>>480,>>485
完成させてからのリファクタリングの段階ということなら具体的に説明
できるだろうしコード片をうpってもいいだろうし、お話になるのでは

話の振り方次第ですお

502 名前:名前は開発中のものです。 mailto:sage [2014/04/06(日) 16:50:44.66 ID:MlcK3xAD.net]
例えばだけど、こういう場合はどうした方がいい?

class Player
{
public:
 Player();
 void update()
 {
  aClass_.update();
  bClass_.update();
 }
private:
 A aClass_;
 B bClass_;
};

503 名前:名前は開発中のものです。 mailto:sage [2014/04/06(日) 16:51:17.53 ID:MlcK3xAD.net]
class A
{
public:
 A();
 void update()
 {
  //メンバ変数とBクラスのx_が必要
 }
private:
 int a_;
 int b_;
 int c_;
};

class B
{
public:
 B();
 void update()
 {
  //メンバ変数とAクラスのa_が必要
 }
private:
 int x_;
 int y_;
 int z_;
};

504 名前:名前は開発中のものです。 mailto:sage [2014/04/06(日) 17:03:11.51 ID:sV4Btc1C.net]
>>490
class Aの前にclass B;を書けば良いんじゃね?

505 名前:名前は開発中のものです。 mailto:sage [2014/04/06(日) 17:10:52.22 ID:7eM4W795.net]
横からだけど
とりあえず動作すれば良いってだけならクソ回答としてupdateの引数にそれぞれ渡してあげる
渡し方はゲッターとかクソだけど

506 名前:名前は開発中のものです。 mailto:sage [2014/04/06(日) 17:34:28.11 ID:tqEQPRwf.net]
素人意見だがPlayerにabcxyz持たせて引数付きupdate作るとか
PlayerのupdateかprivateにupdateA,updateB作ってべた書きとか
AとBくっつけるとか
俺はどうしても他で必要にならない限り分けない、
enemyで必要とかになればそもそも一つ前にcharacterとか作って両方に持たせるとか



507 名前:名前は開発中のものです。 mailto:sage [2014/04/06(日) 19:31:11.73 ID:3nuwa43P.net]
>>489
クラスAとBが相互依存してるから設計しなおす

508 名前:名前は開発中のものです。 mailto:sage [2014/04/06(日) 20:11:48.21 ID:4sjYlVDb.net]
言いたい事は全部言われてた

@AとBは合体だ!フュージョン!
AAとBで壁パスだ!ダブルディスパッチ!
BPlayerが面倒見ろ!メディエーター!

AとBが具体的に何なのか分からないとアレだよな
プレイヤーの所有物で、相互作用(値のやり取り)がある二つのもの。
しかし、プレイヤーとの間に作用はない。

ダウジングのアレとか?

509 名前:名前は開発中のものです。 mailto:sage [2014/04/06(日) 20:19:27.91 ID:kDoD0j2F.net]
合体魔法をプレイヤー複数人で打つとする
トリガーとなるプレイヤー一人が発動したら周囲のプレイヤーの合体魔法用のメソ

510 名前:ッドを呼ぶ
メソッドの中ではそのプレイヤーのmpを減らしたりクールタイムを追加したり硬直したりする
トリガープレイヤーはそのメソッド呼ぶだけだから、もしかしたらプレイヤーによって処理は違うかもしれないが、とにかくそのプレイヤーは合体魔法に参加した
メソッドの返り値で成否を確認してもいい
その複数のプレイヤーの中心の座標に合体魔法を発動するなら、その計算処理はトリガープレイヤーがやる
[]
[ここ壊れてます]

511 名前:名前は開発中のものです。 mailto:sage [2014/04/06(日) 20:22:50.98 ID:kDoD0j2F.net]
>>490
AとBの使用用途を書け
シチュエーションによって考え方が変わり、考え方に依存するからオブジェクト指向が最も効率いいとされて普及してる

512 名前:489 mailto:sage [2014/04/07(月) 10:11:55.44 ID:/pjQGnIZ.net]
>>497
Aクラスはキー入力の処理
Bクラスはキー入力後の移動処理と当たり判定

513 名前:名前は開発中のものです。 mailto:sage [2014/04/07(月) 12:25:22.90 ID:/OCJvUrM.net]
最近は全部hppで書くのか?
ちゃんと.hと.cpp分けろよ

514 名前:名前は開発中のものです。 mailto:sage [2014/04/07(月) 20:27:14.10 ID:bPq5EneU.net]
>>498
A…キー入力の処理
  ↑B.x_ ↓A.a_
B …キー入力後の移動処理と当たり判定

A→Bのデータの流れは分かるが、B→Aのデータの流れは何だ?
フォースフィードバック?

俺はこういう小出しの後出しジャンケンは別に気にしないけど
完成後のリファクタリングの段階なら「具体的に」書けるっしょ?

そろそろ誰かがキレると思うよ

515 名前:489 mailto:sage [2014/04/08(火) 07:12:29.49 ID:mcCDKO91.net]
>>500
なんかごめん・・・
とりあえずこの質問はスルーってことでorz

516 名前:名前は開発中のものです。 mailto:sage [2014/04/09(水) 00:58:15.38 ID:wd1GU5kL.net]
テンプレートのせいか全部ヘッダ(h, hpp)に全部書く奴いるけど
面倒くさくてもC++としてはちゃんとヘッダとソースは分けるべきだよ



517 名前:名前は開発中のものです。 mailto:sage [2014/04/09(水) 01:28:10.85 ID:f0hevqdx.net]
>>502
あるべき論なんて一考にも値しない。
アホは、何故そう考えるのか理由を述べない。

518 名前:名前は開発中のものです。 mailto:sage [2014/04/09(水) 08:02:26.21 ID:zim/sso+.net]
煽るだけで何も説明しない人による華麗なる自虐芸

519 名前:名前は開発中のものです。 mailto:sage [2014/04/09(水) 10:52:16.89 ID:uf/6C2tB.net]
レースゲームのAIってどうやってるの?
経路探索だけで市販のゲーム風に出来るの?

520 名前:名前は開発中のものです。 mailto:sage [2014/04/09(水) 12:11:54.87 ID:0loekIA0.net]
幾つか方法はあるが、コース上に複数の「点」を作っておいて
順番にそれを通過するように組む……というのが単純かな?

521 名前:名前は開発中のものです。 mailto:sage [2014/04/09(水) 12:53:17.52 ID:HhpB/vqN.net]
多数の車が走ってて接触しないようにコース補正とか大変そうだな。

522 名前:名前は開発中のものです。 mailto:sage [2014/04/09(水) 13:04:35.78 ID:6ESwZ9mm.net]
リアル思考でない限り見えないところは適当だろ
多少ぶつかってもペナルティがほとんどないとか
ありえない速度でカーブ曲がってたりとか

523 名前:名前は開発中のものです。 mailto:sage [2014/04/09(水) 13:16:31.51 ID:ZCvd+vVA.net]
カービィのウエライドのデバッグモードを録画した動画がニコニコにあるからそれを見るといい少しはマシになるだろう!

524 名前:名前は開発中のものです。 mailto:sage [2014/04/11(金) 00:20:28.36 ID:GEtB1yKl.net]
            決められたパスを ヘ(^o^)ヘ
                          |∧
                          /

                    /
    ただなぞるよりも  (^o^)/
              /( )
             / / >

      (^o^) 三  選んだ自由に
      (\\ 三
      < \ 三
..\
(/∀・)  傷付くほうがイイ!
( / 
/く 

525 名前:名前は開発中のものです。 mailto:sage [2014/04/12(土) 02:15:31.36 ID:fxOCMkQi3]
こっちだと規制されてナインかいな

526 名前:名前は開発中のものです。 mailto:sage [2014/04/12(土) 22:13:32.52 ID:Zyf8FLOE.net]
ちょっとわかんないからサッカーで説明して



527 名前:名前は開発中のものです。 mailto:sage [2014/04/12(土) 23:44:55.21 ID:0ybV74Ha.net]


528 名前:めて作ったゲームは目標に向かって一直線に飛ぶ意味わからんハエみたいなシューティングゲームだった []
[ここ壊れてます]

529 名前:名前は開発中のものです。 mailto:sage [2014/04/13(日) 10:10:40.70 ID:/fZAahnL.net]
プログラム全く関係なくて物理の話で悪いんだけど、戦車が止まってる時と高速で動いてる時に大砲を撃った場合の大砲の速度って違うよね?
ググってもそれらしき情報が出てこないんだけど、具体的に方程式的なのってあるの?

530 名前:名前は開発中のものです。 mailto:sage [2014/04/13(日) 10:15:03.46 ID:WZFk6ORN.net]
戦車の速度+大砲の初速
これじゃないの?

531 名前:名前は開発中のものです。 mailto:sage [2014/04/13(日) 10:22:56.57 ID:P+5kfwmh.net]
ベクトル合わせるだけじゃん

532 名前:名前は開発中のものです。 mailto:sage [2014/04/13(日) 14:11:27.24 ID:8it2YQcZ.net]
もちろん空気抵抗やらゲームバランスやら考慮するなら変わってくるけどな

533 名前:名前は開発中のものです。 mailto:sage [2014/04/20(日) 10:51:05.10 ID:b2XGGGld.net]
矩形判定を3次元に拡張したのがAABB判定だと思う

534 名前:名前は開発中のものです。 mailto:sage [2014/04/20(日) 14:59:59.27 ID:It9vI7xg.net]
各辺が軸に平行、という前提でいいの?

535 名前:名前は開発中のものです。 mailto:sage [2014/04/20(日) 16:02:57.62 ID:Lsg8M/g2.net]
>>519
それで大丈夫
まあさすがに回転してるのは無理だし・・・

536 名前:名前は開発中のものです。 mailto:sage [2014/04/20(日) 16:18:17.37 ID:2PHJETXp.net]
それは簡単なんでないの
上辺が相手の下辺をより上&&下辺が相手の上辺より下
を3軸分やればいいだけなのでは?

回転する直方体の衝突判定ってまるぺけになかったっけ?



537 名前:名前は開発中のものです。 mailto:sage [2014/04/20(日) 17:29:26.22 ID:It9vI7xg.net]
最初から「平面上での矩形同士の当たり判定」と考えるから、そこから応用しにくいんじゃないか?

直線上で線分同士が重なってるかどうか?という判定があって
単位、それを2回やったのが矩形同士の当たり判定だと考えれば良い。

そうすると、3次元や4次元(?)も、そのまま使えそうだろ?

538 名前:名前は開発中のものです。 mailto:sage [2014/04/22(火) 06:39:03.06 ID:2qdEj7/z.net]
スーパーマリオ64風のゲームを作ってるんだけど、ステージとプレイヤーの当たり判定ってどうすればいいの?
一応球体の当たり判定と線分の当たり判定でやってるんだけど、坂を下ろうとするとジャンプするように落ちていくっていう・・・

539 名前:名前は開発中のものです。 [2014/04/22(火) 07:04:26.37 ID:Xs5gC1x8.net]
ゲームエンジン、物理エンジンの吟味から。
いいやつ教えてくれ。

540 名前:名前は開発中のものです。 mailto:sage [2014/04/22(火) 07:13:32.39 ID:Ld5gvQeA.net]
>>523
斜めに移動させる

541 名前:名前は開発中のものです。 mailto:sage [2014/04/23(水) 20:54:31.77 ID:wDU0qJca.net]
DXライブラリを使っているのですがタイトル画面やゲーム画面でループを変えるべきでしょうか
一つのループでswitchを使ってシーンを変えているのをいろんなサイトで見ますがこういう処理が当たり前なのでしょうか

542 名前:名前は開発中のものです。 mailto:sage [2014/04/23(水) 20:58:04.86 ID:FTq0ixvH.net]
stateパターンオヌヌメ

543 名前:名前は開発中のものです。 mailto:sage [2014/04/23(水) 21:00:21.88 ID:zNP7HvPv.net]
俺も最初は画面ごとにループ変えてたけど、ループはひとつにまとめるようになったな。
理由は、ループは違っても共通のやること(キー入力とか画面出力処理)があって
そういうのを画面のループごとに別々に処理させてると管理が面倒だから。
(もちろん共通処理として関数化してはいたが、それでも面倒だった)

544 名前:名前は開発中のものです。 mailto:sage [2014/04/23(水) 21:36:36.02 ID:wDU0qJca.net]
>>527
なんですかそれ

>.528
なるほど

545 名前:名前は開発中のものです。 mailto:sage [2014/04/23(水) 21:48:10.54 ID:a2O6zNfs.net]
>>526
ループ自体は1つにして、そこから何らかの方法で振り分けるのが定番。
複数ループは即「やめとけ」って言われるレベル。
そこだけ守れば、あとはifで関数に投げるなり、switchで分けるなり、好きなようにすればいいと思うよ。

stateパターンについては、処理を振り分けるアルゴリズムの1つだけど
まあ、別にいいんじゃないかな。

546 名前:名前は開発中のものです。 mailto:sage [2014/04/23(水) 23:54:04.86 ID:FTq0ixvH.net]
>>529
ググれ



547 名前:名前は開発中のものです。 mailto:sage [2014/04/24(木) 08:45:54.28 ID:wxyjU1 ]
[ここ壊れてます]

548 名前:yy.net mailto: >>526
Yes
というか、君にループを分けるという発想を持たせた本かサイトか分からんが著者を呼んでこいぶっ飛ばしてやんよ
[]
[ここ壊れてます]

549 名前:名前は開発中のものです。 mailto:sage [2014/04/24(木) 09:15:53.69 ID:1SkTvrzJ.net]
データベースといい会社組織図といいマトリクス型はなぜ好まれないのか

550 名前:名前は開発中のものです。 mailto:sage [2014/04/24(木) 09:46:36.37 ID:XVAalfN1.net]
>>532
参考資料などがなかった場合、半分くらいは、
真っ先に思いつくのがループを個々に用意する方法のような気もする

551 名前:名前は開発中のものです。 mailto:sage [2014/04/24(木) 10:21:00.95 ID:7sQk5lBb.net]
オブジェクト指向的に考えるとオブジェクトごとに独立したループが存在してるのもあり得るしな
OSのフレームワーク含めてスレッドセーフな実装があまりない事にがっかりしたり

552 名前:名前は開発中のものです。 mailto:sage [2014/04/24(木) 11:59:52.01 ID:1ftwUtau.net]
そのループ(というか一連の処理)の意味合いを無視して設計空論しても意味ねー
たかがシーン遷移でぶん回すループを、複数個所にコピペベースでおく意味がねー

553 名前:名前は開発中のものです。 mailto:sage [2014/04/24(木) 12:13:26.57 ID:47DD1/Qn.net]
ループ型を嫌う人はシーン数が数十個を越えてもswitchで分岐して作るのか、大変だなwww

554 名前:名前は開発中のものです。 mailto:sage [2014/04/24(木) 12:53:05.17 ID:1ftwUtau.net]
イミフだろ。どの案でもループ必須なのに、ループ型ってなんだよw

555 名前:名前は開発中のものです。 mailto:sage [2014/04/24(木) 13:22:18.45 ID:fX1ni8oz.net]
ポリモーフィズムか関数ポインタ使えよ

556 名前:名前は開発中のものです。 mailto:sage [2014/04/24(木) 14:53:44.57 ID:47DD1/Qn.net]
で、数十の関数名やクラス名をわざわざ考えるのか、面倒だな



557 名前:名前は開発中のものです。 mailto:sage [2014/04/24(木) 16:29:40.03 ID:LCot+zJd.net]
ループが別々にあったら前のループにどうやって戻るんだ?
goto?

558 名前:名前は開発中のものです。 mailto:sage [2014/04/24(木) 16:45:42.04 ID:lgj86FWp.net]
ループ内にループが入ってる

559 名前:名前は開発中のものです。 mailto:sage [2014/04/24(木) 17:08:30.80 ID:LCot+zJd.net]
その発想はなかった

560 名前:名前は開発中のものです。 mailto:sage [2014/04/24(木) 17:46:16.58 ID:VQozCS4c.net]
ループザループ

561 名前:名前は開発中のものです。 mailto:sage [2014/04/24(木) 18:52:19.44 ID:GSyZUE1j.net]
>>540
シーンの数が数十ってどんだけ大規模なゲーム作ってんのw

562 名前:名前は開発中のものです。 mailto:sage [2014/04/24(木) 19:03:46.70 ID:AvrqiUr+.net]
C++でゲームを作ろうとすると
ゲームというよりゲームエディタになってしまう

563 名前:名前は開発中のものです。 mailto:sage [2014/04/24(木) 19:18:31.92 ID:wxyjU1yy.net]
>>546
ゲームを作ってたつもりがエフェクトエディタが完成していた私のことをなぜ知っている

564 名前:名前は開発中のものです。 mailto:sage [2014/04/24(木) 19:23:13.77 ID:47DD1/Qn.net]
>>545
ドラクエ3程度

565 名前:名前は開発中のものです。 mailto:sage [2014/04/24(木) 19:36:08.29 ID:7gC8mbT8.net]
>>548
その数十のループを1ソースにまとめるってとんでもないスパゲティだなw
完成すんのそれw

566 名前:名前は開発中のものです。 mailto:sage [2014/04/24(木) 19:54:33.85 ID:1SkTvrzJ.net]
つーかシーン(画面)をクラスで1:1で管理して、
次回どのシーンを描画するのかポインタ返すってやり方の方がスマートじゃね?



567 名前:名前は開発中のものです。 [2014/04/24(木) 20:37:26.16 ID:47DD1/Qn.net]
画面の上から下に順番に動作しないと理解出来ないから今のやり方でやってるんだけどね。
関数ポインタやクラスで分けるとあちこちに跳びまくるよね?ソレも嫌だから今のやり方でやってきた。
けどまあ、流れが判らなければ図を描けば済む話か。それでも、今の段階でやり直すのは……ん?
マップや戦闘のメインのシーンは今のままで良いな。サブのシーンの扱いは、直してみるかな?
ちょっと寝かしていたソースだが、色々と検討してみるか。

568 名前:名前は開発中のものです。 mailto:sage [2014/04/24(木) 20:41:28.50 ID:XVAalfN1.net]
>>540
世の中にはディレクトリとか名前空間って概念があるから、便利なものよな

569 名前:名前は開発中のものです。 mailto:sage [2014/04/24(木) 20:55:45.26 ID:7sQk5lBb.net]
ポリモーフィズムで関数の名前考えなきゃならないてどういう状況だよ
クラス名なんて実装したいシーンの名前をそのままだから考える必要ないし

570 名前:名前は開発中のものです。 mailto:sage [2014/04/24(木) 22:24:05.32 ID:/wenCDDH.net]
中身は空でいいからすべての遷移とデータの

571 名前:受け渡しくらい先に設計して実装しましょう。 []
[ここ壊れてます]

572 名前:名前は開発中のものです。 mailto:sage [2014/04/24(木) 22:35:04.46 ID:1SkTvrzJ.net]
プログラミング自体に慣れてないんだろうけど
一人でコード組むなら図なんて書いたりしないからな
頭の中の仕様書通りにコード打つだけなんだから

573 名前:名前は開発中のものです。 mailto:sage [2014/04/24(木) 22:39:32.56 ID:1SkTvrzJ.net]
ポリモーフィズム使うならむしろ名前は考えなくていいだろ

574 名前:名前は開発中のものです。 mailto:sage [2014/04/24(木) 22:41:52.64 ID:1SkTvrzJ.net]
普通はポリモーフィズムで大まかに分岐した後関数ポインタで細かく分岐するよな
背景に3Dフィールドを表示したまま半透明なステータス画面を描画したいとか

575 名前:名前は開発中のものです。 mailto:sage [2014/04/24(木) 23:29:46.37 ID:/YmGGjJz.net]
クラスや関数を分けると処理が飛んで困るってstaticおじさんか

576 名前:名前は開発中のものです。 mailto:sage [2014/04/24(木) 23:39:57.11 ID:XVAalfN1.net]
ポリモーフィズムの実現手段の1つとして関数ポインタが使われることもあるんだから
その表現はちょっとおかしい気がする

いや言いたいことは分かるけどね?



577 名前:名前は開発中のものです。 mailto:sage [2014/04/25(金) 01:06:43.73 ID:8lxSsrEc.net]
なんでこういう話になったら、いちいち相手を馬鹿にする人間が出てくるのかね。

578 名前:名前は開発中のものです。 mailto:sage [2014/04/25(金) 06:16:12.48 ID:GoYRAt3T.net]
数十のクラスが複雑に入り組むプログラムなんて作れない(能力が無い)からでは?と予想

579 名前:名前は開発中のものです。 mailto:sage [2014/04/25(金) 07:46:12.69 ID:XsfFQEHl.net]
>>561
いいウィットだな

580 名前:名前は開発中のものです。 mailto:sage [2014/04/25(金) 09:30:36.62 ID:jXAfeA6F.net]
>>557
こういうのどうやって実装すんの?説明してるようなサイトがあったら教えてちょーだい

581 名前:名前は開発中のものです。 mailto:sage [2014/04/25(金) 09:42:20.41 ID:XsfFQEHl.net]
Stateパターンによる階層付きシーン遷移の方法は、確かセガ本あたりに載ってたような記憶がある

582 名前:名前は開発中のものです。 mailto:sage [2014/04/25(金) 09:54:22.08 ID:IVfFtFPz.net]
ゲームプログラマになる前に覚えておきたい技術
ひらしょー本、セガ本
www.shuwasystem.co.jp/products/7980html/2118.html
www.shuwasystem.co.jp/gpro-sp/index.html

583 名前:名前は開発中のものです。 mailto:sage [2014/04/25(金) 10:04:41.29 ID:jXAfeA6F.net]
昨日ちょうどそのセガ本の話が有名な同人プログラマのネット配信で出てたわ
「その本はプログラマになる前じゃなくてなった後に読む本だ」って言ってた

584 名前:名前は開発中のものです。 mailto:sage [2014/04/25(金) 10:18:56.59 ID:cWxmDdU5.net]
その本って学生レベルでも中の下くらいだろ

585 名前:名前は開発中のものです。 mailto:sage [2014/04/25(金) 12:50:45.98 ID:bu2wQqL4.net]
>>561
というか、そもそもデバッガでソース追えないという話に帰結しそうなのだが。
関数の中とかに「飛ぶ」訳ですし。

今後の事もあるから、「飛ぶ」事に慣れるのが肝要だと思いますけどね。

586 名前:名前は開発中のものです。 mailto:sage [2014/04/25(金) 15:11:16.15 ID:uQbX0MMa.net]
セガ本で難しかったらgemsとか見たらもう発狂だな



587 名前:名前は開発中のものです。 mailto:sage [2014/04/25(金) 15:22:16.96 ID:5DdHErYn.net]
14歳からはじめるC言語わくわくゲームプログラミング教室
著者:大槻有一郎
www.rutles.net/products/detail.php?product_id=392
かなりの素人向け、図書館にあるかもしれない。

内容はこれ、www.rutles.net/download/217/

588 名前:名前は開発中のものです。 mailto:sage [2014/04/25(金) 16:40:46.26 ID:jXAfeA6F.net]
ゲームプログラマの新人でも面接時の作品提出では皆C+DirectX直打ちの人ばかりだようんたらかんたらという
流れの中で言ってたから、難しいというか本に頼らずともネットで情報集めてとにかく作れって感じだった。

その人自体もオブジェクト指向とか意味わからんでゲーム作ってるとか言ってるけど、
同人だけじゃなくコンシューマ機

589 名前:のゲームプログラムを1人で担ってるような人だし、
要は本見て文法覚えるより、汚くていいからとりあえず作品完成させろってことかと。
[]
[ここ壊れてます]

590 名前:名前は開発中のものです。 mailto:sage [2014/04/25(金) 17:46:46.24 ID:WhIg+aCP.net]
>>571
とりあえず完成させろってのはその通りだな
ここでウンチク垂れ流してても自分の作品は完成させたことないってやつは多そう



そう、私の事ですorz

591 名前:名前は開発中のものです。 mailto:sage [2014/04/25(金) 18:37:51.58 ID:kjeLMb9X.net]
directx直打ちじゃないけど大手新卒通ったわ

592 名前:名前は開発中のものです。 mailto:sage [2014/04/26(土) 01:38:49.39 ID:jf1SN+DQ.net]
ゲームコーディングコンプリートって本にはGameLogicってクラスでゲームの状態を切り換えている
ソースコードはネット上にあがってるぞ

593 名前:名前は開発中のものです。 mailto:sage [2014/04/26(土) 13:10:08.96 ID:2tKTewnx.net]
ぱっと見た感じ、キューかなんかで格納してる?

594 名前:名前は開発中のものです。 mailto:sage [2014/04/26(土) 19:33:37.45 ID:x5oOyDOe.net]
スパロボみたいなゲームだと
・フィールドシーン
・戦闘シーン
・アドベンチャーシーン
・シナリオ準備シーン
みたいな感じに大別されるよね

シーンはキー入力の挙動も変わるから
それも内包しないといけないよね

595 名前:名前は開発中のものです。 mailto:sage [2014/04/26(土) 19:37:39.56 ID:IEmpvB3E.net]
メニューとかの後の分岐はどうやってるの?

596 名前:名前は開発中のものです。 mailto:sage [2014/04/26(土) 19:58:38.34 ID:3cite/BR.net]
i.imgur.com/C0gfdIL.jpg
これがPC98ロードランナーのチャートで、
イニシャライズ以下がゲームループになってる。



597 名前:名前は開発中のものです。 mailto:sage [2014/04/26(土) 20:05:42.07 ID:2tKTewnx.net]
デモ読み込みはゲームループ外で、実際のデモ画面はループ内なんだな、面白い。
俺が思ってるデモ画面と別のものかもしれんけど。

>>576
当たり前っちゃ当たり前だけど、
フレームワークなりハードウェアなりから、キー情報を取り出したり使いやすいよう加工するのは共通部分で、
右キーで1マス動かすとか、そういう部分は各シーンのロジックで処理するのが良いんじゃない?

>>577
メニューって、「じゅもん」→「メラ」→「スライムA」 みたいな
シーン中に行われる多層型のメニューのこと?

598 名前:名前は開発中のものです。 mailto:sage [2014/04/26(土) 21:29:25.57 ID:5LBrFF8V.net]
ポップアップメニュー出しながらもカメラや移動とか一部の操作はできるようにするとかだと
優先度とかそのキーで処理済みかの情報が欲しいから
シーンや入力が欲しいオブジェクトが欲しいキーを入力マネージャに登録しておいて
優先度の高い特殊なキーの組み合わせだけ先に処理して
あとは上位に位置するオブジェクトからキーを拾って処理して未処理は下に投げるとか
WindowsのWM_CHARを参考にしたキー処理終わってから各Updateみたいな事になってるけど
重複する事もあるキー入力の切り分けをシンプルに実装する方法ないかな

599 名前:名前は開発中のものです。 mailto:sage [2014/04/26(土) 22:11:57.41 ID:x5oOyDOe.net]
キー処理用スレッドを作ってGetAsyncKeyStateを回すとか

600 名前:名前は開発中のものです。 mailto:sage [2014/04/27(日) 03:54:19.08 ID:WYXfeo+B.net]
よく分からん質問だけどUIコンポーネントの階層でやれば?

class Parent : UI {
UI* child;

void update(Event* e){
// 特殊キー
bool isCopy = Key::isHold(Key::LCtrl) && Key::isHold(Key::C);

// 子コンポーネント先
child->update(e);

// 子コンポーネントでキー入力が確定した
if(e->isKeyEvent == false) return;

// このコンポーネントのキー入力
bool isThis = Key::is ... ;
}
};

class Child : UI {};

601 名前:名前は開発中のものです。 mailto:sage [2014/04/27(日) 10:28:25.38 ID:C+qpjQzl.net]
>>580
ポップアップメニューはモーダルなインタフェースだから
ある1つのオブジェクト(または選択されたオブジェクト群)を集中して操作しているのに
関係がないオブジェクトを操作ができるのはおかしくない?

602 名前:名前は開発中のものです。 mailto:sage [2014/04/27(日) 10:46:42.01 ID:w1gNzEbH.net]
恐らくだけど、ここでのポップアップメニューは一般的なGUI部品のソレではなくて、
fpsでよく利用されてるポップアップする選択形式のウィンドウの事でね。
wasdで移動しながらメニュー表示キーを押す事でソレが表示され、マウスカーソルでメニュー選択できる、みたいな。

とりあえず>>582で問題ないと思うけどね。

603 名前:名前は開発中のものです。 mailto:sage [2014/04/27(日) 18:14:34.21 ID:Pq1XXwa+.net]
>582のままだと何個か同時押ししてる時に子供がキー処理しちゃったら
親は欲しくて子供では未使用のキー情報取りたくとも来なくない?

604 名前:名前は開発中のものです。 mailto:sage [2014/04/27(日) 18:30:43.78 ID:ZxV1P0nx.net]
どういう状況?

605 名前:名前は開発中のものです。 mailto:sage [2014/04/27(日) 18:38:37.60 ID:Pq1XXwa+.net]
メニューが子供でWASDで移動してるとして押しっぱなしで
メニューの選択を動かす矢印やショートカット等の何らかのキー押したら
移動のキー処理が省かれ、結果移動が止まる

606 名前:名前は開発中のものです。 mailto:sage [2014/04/27(日) 19:14:17.90 ID:ZxV1P0nx.net]
ああ、なるほど。

あんまりPCでゲームやらないので分からんのだけど、市販ゲームだとキーアサインはどうなってるのかな。
メニューを開いてない状態で使えるキー(デフォルトだとWASDとか?)は、メニュー画面で何の処理にも使われないような感じ?



607 名前:名前は開発中のものです。 mailto:sage [2014/04/27(日) 19:44:36.31 ID:DG4EJccZ.net]
使うキー全てを押されているか1つ1つチェックしていけばいい

608 名前:名前は開発中のものです。 mailto:sage [2014/04/27(日) 19:59:45.12 ID:8WD0svuP.net]
市販ゲームを買って調べろよ
知らないとこにゲームを作るなんてアホなの

LINEをやったこと無いのにLINEスタンプを作って儲けようとするアホと一緒

609 名前:名前は開発中のものです。 mailto:sage [2014/04/27(日) 20:22:36.88 ID:ZxV1P0nx.net]
>>590
全く意味は分からんが、何か気に触ったようなのでスマン

610 名前:名前は開発中のものです。 mailto:sage [2014/04/27(日) 21:47:11.67 ID:zcnpepzc.net]
RPGなどの、キーを1回押したら次のマスまで移動するようなゲームの衝突判定は
自キャラの位置と壁の位置を二次元配列で管理できるので作れるのですが、

アクションゲームのように、キーを1回押したら数ピクセルしか進まないような
ゲームの場合、マップチップエディタでマップを作った場合、衝突判定はどうするのでしょうか?

611 名前:名前は開発中のものです。 mailto:sage [2014/04/27(日) 22:33:28.11 ID:vcLDHUdb.net]
衝突判定は、全部が計算で出る。 二次元配列で管理と同じ。

612 名前:名前は開発中のものです。 mailto:sage [2014/04/27(日) 23:24:50.87 ID:ZxV1P0nx.net]
>>593
ソース見てみないと分からんけど、今まで1対1で対応するような当たり判定しかやってなかったので
そのままでは応用が効かないって話じゃない?


>>592
こういう場合に昼用となるのは、ある範囲とある範囲同士が、
座標上で重なっているかどうかをチェックする、という処理が必要となる。

少し前にも似たような話題があったが、
まず1次元上で、線分Aと線分Bが重なっているかどうかを判定する処理を考えてみよう。

      +---- A ----+
  0----------------------------------------X
             +-------- B --------+

答えを言ってしまうが、Aの右端がBの左端より右側」にあり、Bの左端がAの右端より左側にあるとき
線分AとBは重なってると言えるのが分かる。

これで少なくともX軸から見た時に重なって見えるかどうかを判定することが出来る。
じゃあこれをもう一度、Y軸に対してやれば、結果として重なってるかどうか分かると思わないかい?

一応、この判定には欠点があったりするけど、そのへんは詳しい諸兄に任せる

613 名前:名前は開発中のものです。 mailto:sage [2014/04/27(日) 23:39:37.39 ID:+r7oKZO8.net]
592の質問ってそういうレベルの話なのか。
もっと複雑な話かと思った。

マップチップでブロック単位(要するに矩形判定のみ)しかしないんだったら
593の言うとおり2次元配列管理でいいんじゃないかな。



614 名前:タ標をマップチップのサイズ(ピクセル)で割れば配列の座標は出る。(小数点以下切り捨て)
たとえばマップチップのサイズが 16*16 でマップデータが二次元配列に格納されてるとしたら
(100,150) の部分は二次元配列でいう (6,9) の部分という事になる。
あとはRPGなどと同じように衝突判定すればいい。
[]
[ここ壊れてます]

615 名前:名前は開発中のものです。 mailto:sage [2014/04/27(日) 23:47:48.15 ID:zcnpepzc.net]
>>593-595
ありがとうございます!

>座標をマップチップのサイズ(ピクセル)で割れば配列の座標は出る
この考えが欠けてました。言われれば当たり前のことなのに1人で悩んでると全然思い浮かばない(´・ω・`)

616 名前:594 mailto:sage [2014/04/28(月) 01:02:00.85 ID:BBr+Jrn/.net]
>>595
あー、そっちか
お恥ずかしい



617 名前:名前は開発中のものです。 mailto:sage [2014/04/28(月) 09:50:59.01 ID:GzOhtwBz.net]
それだけだと自キャラがどのチップ上にいるかしかわからんから
壁と自キャラが重ならないようにするにはちょっと工夫いるんじゃない?
例えば自キャラの上下左右全部で衝突判定するとか

618 名前:名前は開発中のものです。 mailto:sage [2014/04/28(月) 14:28:53.40 ID:uu2sZY8y.net]
そんな必要ないよ。
自分の位置より進行方向1ブロック分をチェックして障害物なら動かなくすればいいだけ。

619 名前:名前は開発中のものです。 mailto:sage [2014/04/28(月) 14:31:26.43 ID:uu2sZY8y.net]
ああ、いや違った。
上と左に関しては進行方向1ピクセル分だった。

620 名前:名前は開発中のものです。 mailto:sage [2014/04/28(月) 19:55:37.77 ID:BBr+Jrn/.net]
>>599-600
アクションゲームでそういう処理をするゲームは少なそうだが

621 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 00:40:51.84 ID:EMV53Qmd.net]
>>530-536
大昔にタスクシステムスレだったかSTGスレだったかにこんな感じのソース
(微妙に違うかもだが)を貼ったが、別にゴチャゴチャ言われなかったけどな
因みに同人STG
int APIENTRY _tWinMain(HINSTANCE,HINSTANCE,LPTSTR,int)
{
  try{
    boost::shared_ptr<GAMEENV> gameenv(new GAMEENV);   //D3D,SOUND,INPUT,USERDATA,etc
    boost::scoped_ptr<SCENE> logo(new LOGO(gameenv));    //ロゴ画面
    boost::scoped_ptr<SCENE> demo(new DEMO(gameenv));   //デモ画面
    boost::scoped_ptr<SCENE> title(new TITLE(gameenv));    //タイトル画面
    boost::scoped_ptr<SCENE> config(new CONFIG(gameenv));  //コンフィグ画面
    boost::scoped_ptr<SCENE> stage1(new STAGE1(gameenv)); //ステージ1
  (…中略…)
    boost::scoped_ptr<SCENE> stage8(new STAGE8(gameenv)); //ステージ8
    boost::scoped_ptr<SCENE> ending(new ENDING(gameenv));  //エンディング
    logo->Run();                               //ロゴ画面再生

622 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 00:42:06.52 ID:EMV53Qmd.net]
    while(1){
      demo->Run();                            //デモ画面再生
      switch(title->Run()){                        //タイトル画面再生
      case TITLEOPTIONTYPE_CONFIG:               //オプション画面再生
        config->Run();break;
      case TITLEOPTIONTYPE_GAMESTART               //ゲームスタート
        do{
          if(stage1->Run() == STAGESELECTTYPE_GAMEOVER)break;
          (…中略…)
          if(stage8->Run() == STAGESELECTTYPE_GAMEOVER)break;
          ending->Run();                       //エンディング画面再生
        }while(0);break;
      }
    }
  }catch(...){return EXIT_FAILURE;}
  return EXIT_SUCCESS;
}

623 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 01:03:59.54 ID:T7NavjR1.net]
こりゃStateパターンを使えていない時点でゴミっすわ。
バカが書いたコードだと一目で分かる。

面接でこれ持ってきた奴がいたら不採用…と言いたいけど
この程度のバカが偏差値65クラスなわけで
次頭があれば徹底的に叩きなおすことを前提で採用、ってなるレベル。

624 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 01:31:18.44 ID:l2CWKjf4.net]
それでも俺は、自らコードを曝け出した事に対して尊敬するね。

批判だけなら誰でも出来る

625 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 01:46:17.29 ID:EMV53Qmd.net]
>>604
pc11.2ch.net/test/read.cgi/gamedev/1227748699/181-

当時は高専の学生でしたので

626 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 01:49:34.15 ID:T7NavjR1.net]
>>608
あー、それわかる!
高専生感がぷんぷん臭う。

俺の職場は理系院生が採用の中心だから
君のコード見ると偏差値70以下!って判定を下しちゃうんだよね…。



627 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 02:13:49.38 ID:EMV53Qmd.net]
どうか心安らかな日々を

628 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 02:16:22.74 ID:ZoGLF8y+.net]
んー別にいいんじゃね?
大してシーンも多くないゲームなら充分充分
パターンとかはもっと規模が大きくなって
制御構文使ってたら死ぬ時に使う物だと思うのだが

ということで誰かstateとstrategyの違いを教えてくださいな
ググってもイマイチ腹に落ちなくてなあ…

629 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 03:18:14.89 ID:51TE7qv/.net]
高専生感というとても具体的な指標
これが偏差値70以上の力だと言うのか・・・

630 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 08:43:51.10 ID:7WDDZUtT.net]
これdemo->Run()の中に別のゲームループがあるって事になるんだろ。
つまり>>528って事だろ。

ところでupdate()とdraw()に分けないのかな。
コンテンツロスト時の再描画とか、各シーンで個別に実装とかだるいっしょ。

631 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 10:25:45.81 ID:EMV53Qmd.net]
>>611
当時のソースは実家のPCに眠ってるのでうろ覚えなんですが、D3D9などの
デバイスロスト時の対応などはGAMEENVクラスに押し付けてました

描画と、ゲーム内時間発展のサイクルは独立。フレームスキップしてました。
描画は60⇔30⇔15[fps]の半固定。

時間発展の刻み幅は1/60[sec]固定。シミュレーション部分の計算自体は
とても軽かったので。あとはリプレイデータの都合。デバッグ時の巻き戻し
や早送り(任意時点へ移動)してたので

632 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 10:41:35.55 ID:EMV53Qmd.net]
>>611
>これdemo->Run()の中に別のゲームループがあるって事になるんだろ。
>つまり>>528って事だろ。

それぞれにゲーム内の時間発展を計算するサイクルがありましたね。
そういう意味ならそうなんだと思います。ゲーム固有の定石とやらは
よく知りません

633 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 11:00:02.81 ID:R32lOXpJ.net]
配信でコーディングしてる現役ゲームプログラマさんの仰っていた序列表貼っておきますね

神様 綺麗なコードで完成させられる人
人間 汚いコードで完成させられる人
=================( 越えられない壁 )====================
家畜 汚いコードで完成させられない人
ハエ 綺麗なコードで完成させられない人

ハエに出来るのは人間の邪魔だけと言っていて、なるほどなとリスナー達感心しきりでした。
ID:T7NavjR1見ててこの事思い出しましたね

634 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 11:23:57.20 ID:k/FZV1V1.net]
自分は
std::unique_ptr<Scene> scene = new なんかのシーン();
while(1){
scene->update();
scene->draw();
if( scene->isEnd() ) {
scene = std::move(scene->getNext());
}
}
ってやってそれぞれのシーンが次の遷移先返すようにしました
switchを意地でも使いたくてこんな形になった

実際switchの方がよく使われるものなの?サンプル探してもswitch使っているのしか見当たらないから困ってる

635 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 11:24:47.17 ID:t5QADVCc.net]
>>614
やるじゃんw

636 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 12:27:00.81 ID:CXcBKCf+.net]
>>615
多分だけど、

 if(関数に分けずそのまま羅列) → if(関数分け) → switch → stateパターン

……みたいに進化していくんだと思う。
単に自分がそういう順番でステップアップしたってだけなんだけどさ。

仮に自分が教えるなら、stateパターンによるシーン遷移は後回しにするかな



637 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 12:35:06.95 ID:CXcBKCf+.net]
ああそうだ思い出した。
シーン遷移をStateパターンで行う方法についてなんだけど、「シーン遷移しないとき」って、どうしてる?

(1) nullを返す
(2) thisを返す
(3) シーン遷移関数を用意しておき、それが呼ばれなかったとき
(4) その他

自分は(2)で、nullを返すときはゲーム終了ってことにしてる。
一般的なStateパターンなら(1)かなあ。

638 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 12:40:34.16 ID:5MYZPLM5.net]
>>612-613
なるほどthx. sceneの引数でgameenv貰ってるね。

シーン遷移の実装はシーン側は知る必要ないから、
その時の気分とかシーンの数とかで好きにやりゃいいと思うけどね。

Task的に入り組んだ作りしてないのなら、どれでもすぐ遷移図を思い描けるっしょ。

639 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 16:14:29.11 ID:R32lOXpJ.net]
>>616
曰く、
「クラス設計書貰うけど見ない。クラス流用して他のゲーム作ったことがないから意味がない」
「デザインパターン?何それ?」
「参考書は読んだことがないからオススメ本とか分かんない。ネットと、エラーが出たらググレカスで覚えた」


PSでほとんど1人でプログラム任される人の弁です

640 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 16:19:59.07 ID:NQBFYHJc.net]
>>620
すげぇ
俺そんなこと言ったことないけど、完全に俺だわ
ただ、作ってたのはPSじゃねぇけど

641 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 16:20:18.05 ID:KJKa8R89.net]
>>620
その人、協調性が無いから、単独でしか使い道が無い。

642 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 16:27:51.48 ID:NQBFYHJc.net]
人事を何とかしないとうちの会社はやばい
ゲー専卒で多少のコミュニケーションはできれば入れてる感じがする
8人中2人もう辞めてるし、てかそれ以前にDXライブラリをインクルードディレクトリへの追加方法わからねぇわ、プログラムが組めねぇわで最悪だわ
1人だけまともというかたぶん俺より組める奴居るけど
うちは研修する余裕なんてねぇってわかってんだろうが、去年入ったやつなんてもう最後の1人を何とか留まらせてるんだから、俺らに人事噛ませろよ

643 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 16:27:58.51 ID:lMFqMvqX.net]
PSでググレカスてどんな時代?
一昔前の1500円のミニゲーム移植とかの人てことなんだろうか

644 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 16:31:27.80 ID:GSilIO8H.net]
>>622
ちょっとワラタ

645 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 16:31:55.46 ID:CPnqQaxX.net]
従来の手続き型で何本もゲーム作ってきた俺だが
いっちょオブジェクト指向でも勉強するか、とやり始めた結果
もうずっと制作が滞ったままになっている。
なんでこんなにめんどくさいんだ……。

646 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 16:33:29.90 ID:t5QADVCc.net]
サッカー上手い人がサッカーの技術書読んでうまくなるわけもないし、そういう感覚なんかな。
本読まずにPG覚えるとか想像もつかねえw



647 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 16:59:24.66 ID:CPnqQaxX.net]
本は解るようになってから読むと解るけど、解らないうちに読んでも解らないからなw

そもそも本を書くような人は「本を読んだら解る人」だろうから、
本を読んでも解らない人でも解るような本を書けないだろうな。

648 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 17:12:12.68 ID:dd41HZLf.net]
ビギナーコラムでオブジェクト指向の哲学とか語られてもな
とりあえず作ってみよう系のほうが理解しやすい
ここを弄ったらこう変わるみたいな

649 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 17:21:14.92 ID:5MYZPLM5.net]
c++だけがoopじゃないっすから…

650 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 17:40:38.04 ID:lMFqMvqX.net]
>>628
だいぶ使いこなせるようになっても読めない初心者向けの本とかあるから性質が悪い
ゲーム用だけじゃないが初心者の頃はコードがのっててサンプルが作りたい物に近いから買ってみるけど…
Cマガも半分ぐらいしか理解できなかったがいま読み返すと消えてる技術も多くて笑える []
[ここ壊れてます]

652 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 17:48:57.10 ID:bM1HEdOI.net]
ゲーム系の学生なんだけど、ゲーム会社ってどのくらいのレベルのオブジェクト指向まで要求されるの?
あと、AIとかそういうアルゴリズムも重視される?

653 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 18:14:47.39 ID:NQBFYHJc.net]
>>632
ぶっちゃけ会社によって様々だからうちの会社で書くけど
新卒には特別な期待はしない
とりあえず、プログラムを作れれば良いや、ゲームまで作れたら儲け物って感じだな
後はただ、人間として基本的なことはできてればそれだけで良い
俺は現場だからこういうのを求めてるけど、人事は即戦力のゲームプログラマーとしてプログラムを作れないやつを入れてくるから何を見てるか同じ会社なのにわからん
とりあえず残業させてないのに毎年1ヶ月以内に1人、3ヶ月以内に半分になる新卒はゲーム作る気がないよね

654 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 18:23:27.78 ID:EMV53Qmd.net]
マ板でやれ。な

655 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 18:25:53.36 ID:R32lOXpJ.net]
>>621
スーパープログラマさんかな?w
他の配信者も有名な人だよって言ってたし、多分在京で働いてる業界人なら知ってる人ですよ。

ちなみに、よくプログラマになるにはどうしたらいい?という初見リスナーのレスあるけど
「C++とDirectX(ライブラリ自作)で『完成した』作品を持ってこい」と言ってますね。
本人もデザインパターンを配信中にググって知ったみたいだし
オブジェクト指向とか関係ないんじゃないかと。とにかく完成品をよこせと。

656 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 18:34:29.77 ID:lKQHJo0L.net]
Q 漫画家になるにはどうしたらいいですが?
A 漫画を描けば漫画家です
 プロになりたければ作った作品を持ち込んでください

Q ゲームプログラマになるにはどうしたらいいですか?
A ゲームを作ればゲームプログラマです
 プロになりたければ作品を持ち込んでください



657 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 18:38:17.18 ID:NQBFYHJc.net]
>>636
これ
でも、自分じゃなくて友人が作ったやつを持ち込むクソも居る

658 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 19:08:58.63 ID:WRxgjGJf.net]
スレ違いの話題振る質問者は不採用です

659 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 19:14:20.55 ID:t5QADVCc.net]
くだらないループ話を延々続けてる馬鹿に飽きていたからいい暇つぶしになったw

660 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 20:34:32.58 ID:EMV53Qmd.net]
>>609
>制御構文使ってたら死ぬ時に使う物
>>615
>実際switchの方がよく使われるものなの?
>>619
>シーン遷移の実装はシーン側は知る必要ないから、
>その時の気分とかシーンの数とかで好きにやりゃいいと思うけどね。

>Task的に入り組んだ作りしてないのなら、どれでもすぐ遷移図を思い描けるっしょ。

同意です。実装の選択肢は色々あり、個々の状況に応じて選べば良い事かと。
>>602-603の例で言えば、振る舞い的に拡張する予定がなく、実際しなかった
部分なので別に問題なかったですね

元々HSP上がりの人間(周りも同様)だったので手続き型の記述のほうが平易
というのもありました



>>617

State Pattern
switch-case構文

661 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 20:35:52.86 ID:EMV53Qmd.net]
>>640訂正
末尾の三行は消し忘れです。>>617さんごめんなさい

662 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 20:52:06.90 ID:CXcBKCf+.net]
>>635
何年か前に、画像表示、パッド入力、音声出力くらいまでは何とか作ったけど
途中で面倒くさくなって、結局DXライブラリに戻ってしまったという残念な経験しかないやw

663 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 20:55:41.83 ID:EMV53Qmd.net]
>>619
会社帰りにたまにボー●ーブ●イクでチャリンチャリンしてたんですが
転勤先にそれ置いてるゲーセンが

664 名前:なくて悲しみのあまり余暇にパチモン
作りで自分を慰めてるんですが、火器とかAIの部分はStateというかStrategy
というかそんな感じのコードはありますね。条件分岐でダラダラ書いてたら
流石に眩暈がしてきたので
[]
[ここ壊れてます]

665 名前:名前は開発中のものです。 mailto:sage [2014/04/30(水) 00:47:22.57 ID:bEifU6C0.net]
何を言いたいのかサッパリ分からん

666 名前:名前は開発中のものです。 mailto:sage [2014/04/30(水) 01:21:27.75 ID:3yGpFv6B.net]
>>643
パーツとか持ち替えの武器とか大量にあると面倒くさいことになるよね
あの手のアセンゲーっぽいのは俺も好きだが作りたいとは思わないな



667 名前:名前は開発中のものです。 mailto:sage [2014/04/30(水) 09:11:19.42 ID:JP5IUHRh.net]
つまらない流れなので誰かネタ振りお願いします><

668 名前:名前は開発中のものです。 mailto:sage [2014/04/30(水) 10:28:13.43 ID:vrCaDxEc.net]
初心者な質問ですみません。
クラスからクラスを呼ぶときってどういう書き方が普通なんですかね?

class A {
public :
static A* me ;
int a ;
A() ;
}
A* A::me ;

A::A() {
me = this ;
}

ってやって A::me->a とかやってるけど、なんかスマートじゃなくて……。

669 名前:名前は開発中のものです。 mailto:sage [2014/04/30(水) 11:46:43.01 ID:eqz1Of7R.net]
なにがしたいのかさっぱりわからんけど、それmeにインスタンス入れてるだけであんまり意味なくない?
クラスからメソッド直接使いたいとかなら、メソッドをstaticで定義してクラス名::メソッド名()だけど

670 名前:名前は開発中のものです。 mailto:sage [2014/04/30(水) 12:04:25.51 ID:gNDB74Yv.net]
グローバル変数みたいなことがしたいのかな
アクセス可能なオブジェクトを限定するのがオブジェクト指向の組み方だから
アクセスする必要があるクラスにポインタなり参照なり持たせたほうが良いんじゃない

671 名前:名前は開発中のものです。 mailto:sage [2014/04/30(水) 12:58:15.72 ID:2hopiA0K.net]
日本語不自由で変な質問するやつはほっといたほうがいいよ

672 名前:名前は開発中のものです。 mailto:sage [2014/04/30(水) 13:13:03.63 ID:8+rqYap5.net]
staticメンバの初期化の仕方の話でねーのん。
最近c++触ってないから間違ってたらすまんけど。

// A.h
class A {
public:
  static int a;
}

// A.cpp
int A::a = 10; // 初期化

// main.cpp
void main() {
  A::a;    // 利用
}

673 名前:名前は開発中のものです。 mailto:sage [2014/04/30(水) 13:38:55.27 ID:MPxnDurN.net]
3Dゲームで経路探索をやってみようと思うんだけど、3Dの位置情報ってどうやって調べればいいの?

674 名前:名前は開発中のものです。 mailto:sage [2014/04/30(水) 14:23:59.95 ID:bEifU6C0.net]
具体的には?

基本的に平面で移動するゲームなら2Dと大して変わらんしだろうし
キューブ状の座標(2Dで言うところのマス目)を移動するだけなら、移動方向に上下という選択肢が増えただけと考えられるし
ビルの中を探索するようなゲームなら、階段やエレベータでエリアを区切ればいい気がする。

675 名前:名前は開発中のものです。 mailto:sage [2014/04/30(水) 14:32:28.53 ID:Uak2ZaC3.net]
何が聞きたいのかさっぱりわからんけど、普通に変数参照すればいいんじゃない?
複雑な地形での経路探索がわからんって話なら、地形の要点にポイント作ってダイクストラ法でいいんじゃないの

676 名前:名前は開発中のものです。 mailto:sage [2014/04/30(水) 14:35:02.75 ID:Uak2ZaC3.net]
ごめんダイクストラ法じゃなくてA*か



677 名前:名前は開発中のものです。 mailto:sage [2014/04/30(水) 14:50:11.17 ID:49atqyLw.net]
経路探索
samples.jbpub.com/9781556220784/Buckland_AIExecutables.zip

Chapter 5 にあるように 経路探索する。
Chapter 8\Raven_CoarseGraph のようにグラフとして探索する。

678 名前:名前は開発中のものです。 mailto:sage [2014/04/30(水) 16:08:24.08 ID:L0vWdcDz.net]
>>655
A*はダイクストラの拡張版で、基本アルゴリズムは重複する部分が大きいから、
大筋外してはいないよ
ゲーム用途の経路探索性能は、A*の方がより最適化されるみたいだけど

679 名前:名前は開発中のものです。 mailto:sage [2014/04/30(水) 16:47:29.58 ID:IG+u4GlD.net]
>>647
ideone.com/gt21RS
そのコードが何か不明だがこういう振る舞いをするという事がわかってれば好きにしろ

680 名前:名前は開発中のものです。 mailto:sage [2014/04/30(水) 22:30:05.62 ID:vrCaDxEc.net]
647です。皆さん色々すみません。
やりたかったのは、例えばコンフィグデータを一括管理するクラスを作って
他のクラスでそれを使う、ような事です。
例として挙げたソースは簡単に書いただけで直接書き換えたいというわけではありませんでした。

関係ない愚痴ですが、こうやれば動くからこれでいいのかな、と作り進めてても
やっぱりおかしいよな、とまた一から作り直す、を繰り返してて制作が全く進みません……。

681 名前:名前は開発中のものです。 [2014/05/01(木) 03:51:25.76 ID:jedbV3SH.net]
anago.2ch.net/test/read.cgi/ghard/1387003319/235
  ↑ ↑   ↑ ↑   ↑ ↑

682 名前:名前は開発中のものです。 mailto:sage [2014/05/01(木) 05:10:34.61 ID:z13QLsnT.net]
唯一のインスタンスを保証するシングルトンではなく、
インスタンスは複数作れるけど、実体は同じものを作っている……っていうアルゴリズムあったよね。

>659の場合だと、その方法使えそうな気がするものの……名前が分からんので教えられん

683 名前:名前は開発中のものです。 mailto:sage [2014/05/01(木) 08:21:56.84 ID:3d6d8Z4v.net]
>>659
そんなのグローバル変数でいいだろ
つまんないとこで止まってないで先進めよ

684 名前:名前は開発中のものです。 mailto:sage [2014/05/01(木) 09:19:18.98 ID:OWwKad9r.net]
インクルードガードとexternでおk

685 名前:名前は開発中のものです。 mailto:sage [2014/05/01(木) 11:26:20.56 ID:HOcvGku/.net]
ja.wikipedia.org/wiki/%E3%83%80%E3%82%A4%E3%82%AF%E3%82%B9%E3%83%88%E3%83%A9%E6%B3%95
これをプログラムに直すとどうなるの?
大学数学はさっぱり分からないから誰か教えて

686 名前:名前は開発中のものです。 mailto:sage [2014/05/01(木) 12:30:19.75 ID:Fm1fH+z1.net]
>>664
ダイクストラ法は大学数学関係ないぞ
Game Coding Gemsの1か2に解説とソースコードがある



687 名前:名前は開発中のものです。 mailto:sage [2014/05/01(木) 12:35:48.55 ID:d2ShpQiQ.net]
>>664
図のアニメーションと解説を読めば分かると思うが…
難解な数学計算無し。少なくとも高校数学の域は逸脱してない。
記号の意味分からない子向けに手続きを文章で丁寧に解説してる。
下手すりゃ厨房でも「コンピュータってバカ正直な事なんだね…」
と感想を述べながら呆れ顔をしてくるレベル

688 名前:名前は開発中のものです。 mailto:sage [2014/05/01(木) 12:37:56.10 ID:d2ShpQiQ.net]
×「コンピュータってバカ正直な事なんだね…」
○「コンピュータってバカ正直な事をやるんだね…」

689 名前:名前は開発中のものです。 mailto:sage [2014/05/01(木) 13:21:29.38 ID:d2ShpQiQ.net]
>>662-663
同意

690 名前:名前は開発中のものです。 mailto:sage [2014/05/01(木) 13:56:28.60 ID:z13QLsnT.net]
「馬鹿正直」って感想はさ、たぶんコンピュータへの理解の第一歩だよね?

691 名前:名前は開発中のものです。 mailto:sage [2014/05/01(木) 14:18:18.47 ID:d2ShpQiQ.net]
そうなんじゃない?学園祭でマイクロマウスの実演と解説をしてた時の消防や
厨房の反応は楽しかったよ。「かあいい」「頭悪過ぎうー」「きゃはは」
「がんばれー」とかが大半だったけど、眼鏡っ子の厨房が模造紙の解説を
一所懸命に読んでて、繰り出す質問がなかなか賢すぎてこっちが呆れた

692 名前:名前は開発中のものです。 mailto:sage [2014/05/01(木) 14:26:30.17 ID:0k+QrX5J.net]
メンバ変数が全部staticのパターンの名前が思い出せない
モノトーンだかそんなような名前だった覚えがあるけど

693 名前:名前は開発中のものです。 mailto:sage [2014/05/01(木) 14:27:47.22 ID:d2ShpQiQ.net]
monostateじゃね
使ったことないが

694 名前:名前は開発中のものです。 mailto:sage [2014/05/01(木) 16:56:40.77 ID:ZxuEhXPJ.net]
シングルトン モノステート

695 名前:名前は開発中のものです。 mailto:sage [2014/05/02(金) 00:13:50.98 ID:5CvmG/6A.net]
皆さんは描画リストに登録して、Zソートやらしてからとめて描画などしてますか?
2Dで同じようなことを考えてるのですが、描画管理クラスにリストを持たせ、
その管理クラスのメソッドを通してリストへ登録しようとしてます
XNAのSpriteBatchの形が近いです

しかしこの方法だと管理クラスを引数でどんどん渡していかなければいけなく、良い方法がないか探してます
2Dオブジェクトにstaticで管理クラス、または描画リストを持たせた方がいいのでしょうか

設計の話なので明確な答えがないのはわかってます
皆さんの考えを参考程度に聞きたいです

696 名前:名前は開発中のものです。 mailto:sage [2014/05/02(金) 00:48:59.22 ID:DPIL44M1.net]
スプライト的な「2Dオブジェクト」を作って、
そこにパラメータ与えて、あとは自動的に描画されるような組み方してるん?



697 名前:名前は開発中のものです。 mailto:sage [2014/05/02(金) 01:19:41.25 ID:ZlBT84m3.net]
>>674
>しかしこの方法だと管理クラスを引数でどんどん渡していかなければいけなく、良い方法がないか探してます

依存性があるなら明示する(例えばSetterやコンストラクタで注入するだとか)
というのはOO的には無難なお作法だと思うけど。なんか不都合あるの?
(いちいち記述するのがかったるい、だとか)

まぁ、あまりに広範に渡ってその依存性が確認されるなら、グローバルな
存在、グローバルなサービス、として提供してもいいのでは。尤も、描画
モジュールに依存するモジュールってゲームの中では限定的だと思うけどね

698 名前:名前は開発中のものです。 mailto:sage [2014/05/02(金) 01:31:13.85 ID:Ru1dUuzy.net]
表示するもの {
private IDrawable model;
private Vector2 pos;
private 表示するもの[] children;
public void Draw(描画管理クラス){
描画管理クラス.add(model,pos);
for child in child {
child.draw(管理クラス);
}
}
}

699 名前:名前は開発中のものです。 mailto:sage [2014/05/02(金) 06:36:13.80 ID:Bq1H46te.net]
ダイクストラ法ってゴールをコロコロ変える(プレイヤーを追いかける)ことって出来る?

700 名前:名前は開発中のものです。 mailto:sage [2014/05/02(金) 07:18:20.71 ID:DPIL44M1.net]
たとえば屋内を探索するゲームの場合、
ある部屋から別のある部屋へ行く方法ってのは基本的に固定なので、最初に各パターンを計算しておけばいい。

上手く追いかけるように動かしたいってことなら、
有名なところで、パックマンの敵アルゴリズムの話がシンプルでわかりやすいと思う。

701 名前:名前は開発中のものです。 mailto:sage [2014/05/02(金) 07:57:10.51 ID:gb8xd1Dr.net]
自キャラの範囲と、敵の範囲と、とりあえず目指すポイント
みたいな表を作っておけば良いのか

702 名前:名前は開発中のものです。 mailto:sage [2014/05/02(金) 09:29:13.26 ID:dzhB41LP.net]
>>675
2Dオブジェクトは座標、テクスチャを持ち、描画関数内で管理クラスのリストへ登録
という流れを考えてますので、自動的な描画はしません

>>676
やはりプログラムの最初にsetterで登録が一番無難ですよね
不都合はないのですが、2Dオブジェクト全てが
管理クラスのsetterを持つのが気持ち悪く思えてしまい・・・

描画モジュールに依存するものが限定的とは...ゲーム内では殆どのものが
描画されるものだと思ってましたが違うのでしょうか
オブジェクトを管理したりするものは別だと思いますが・・・

>>677
これは結局引数でどんどん渡していくのでは・・・?

703 名前:名前は開発中のものです。 mailto:sage [2014/05/02(金) 09:52:01.66 ID:Ru1dUuzy.net]
>>681
引数で渡していっていいと思う
常に同じ描画管理クラス使うとは限らないし

704 名前:名前は開発中のものです。 mailto:sage [2014/05/02(金) 13:12:16.23 ID:6RPuKXq0.net]
>>681
何故「気持ち悪い」のか言葉で説明できるようにしてみれば
どうすればいいのかわかるんじゃない?

705 名前:名前は開発中のものです。 mailto:sage [2014/05/02(金) 13:23:32.11 ID:taHVwRQz.net]
リストへの登録を描画関数と分ければ?
登録するデータを戻り値にして呼び出し側で登録するとか

706 名前:名前は開発中のものです。 mailto:sage [2014/05/02(金) 19:21:58.74 ID:dzhB41LP.net]
>>682
レンダーターゲットを変えた時などでしょうか

>>683
2Dオブジェクトは例えばスコアや、メニューなどに使用するのに
管理クラスのsetterを常に持ち続けてるから・・・?

>>684
list.add(pObj->draw()); という感じですか?
この場合複数のオブジェクトを描画する時はどうなるんでしょう
スコアクラスは1桁描画を複数回呼ぶと思います
そういう時は戻り値でデータを返せないのでは

結局引数で渡してリストへ登録
または2DObject自身がリストを保持し、そこへ各派生クラスが登録する
という形になってしまうのでしょうか



707 名前:名前は開発中のものです。 mailto:sage [2014/05/02(金) 20:24:35.53 ID:tEs8rCVt.net]
ゲームで2つのプレイヤーの画面を並べる時ってどうしてる?
プレイヤーの状態とかエフェクトとかシングルトンで管理していて今まではどこかのクラスから
Game::instance()->registerEffect(new Effect())
みたいにできたんだけどプレイヤーごとにGameを作るようにしたらこれができなくなって
ゲームのインスタンスをあちこちに渡さなきゃならなくなったんだけどこんなことしないでもできる方法ない?

708 名前:名前は開発中のものです。 mailto:sage [2014/05/02(金) 20:30:31.53 ID:DPIL44M1.net]
話の流れがよくわからないんだけど、

renderer.add(PlayerObject);  //プレイヤーキャラクターのオブジェクトを登録
renderer.add(EnemyObject);  //敵キャラクターのオブジェクトを登録

…みたいなのとは全く別の話?

709 名前:名前は開発中のものです。 mailto:sage [2014/05/02(金) 20:32:36.22 ID:DPIL44M1.net]
>>686
Gameクラスってなんじゃらほい?
いわゆるシーンとかシーケンスってやつ?

710 名前:名前は開発中のものです。 mailto:sage [2014/05/02(金) 20:37:30.44 ID:Yjnja2zX.net]
>686
シングルトンが用を足さない状態だからやめるのが手っ取り早いけど
とりあえずシングルトンインスタンスの取得にID等の引数もたせれば?
引数違いなら違うオブジェクトを返すてのは実装は容易でしょ

こういうどこでも使えるグローバル変数的な状況で使うシングルトンは嫌いだけどな

711 名前:名前は開発中のものです。 mailto:sage [2014/05/02(金) 20:42:33.50 ID:Ru1dUuzy.net]
>>685
レンダリングターゲットを変えたときもあるかもしれないけど、
マルチスレッドで分割してトラバースするこもとあるし。
Direct3D11でコンテキストを複数作れるようになったしね

712 名前:名前は開発中のものです。 mailto:sage [2014/05/02(金) 20:45:40.07 ID:Gu2dz6L1.net]
>>685
戻り値をVectorかなんかにしたら

>>686
instance()に引数渡して特定のインスタンス取得出来るようにする
これまでシングルトンだったのが複数必要になった時点で設計見直した方がいいような気もするけど

713 名前:名前は開発中のものです。 mailto:sage [2014/05/02(金) 20:54:53.01 ID:tEs8rCVt.net]
情報不足すぎたうえに色々酷いごめんよ
Effectは別で管理している
シングルトンをやめるからどうするのが良いのかと思って聞いたんだ
ダブルディスパッチで敵の当たった処理とかしているんだけど
class Game {
 Enemy enemy[];
}
class Enemy {
 void hit() {
  if( 死んだ ) { Effect::addEffect(new Effect()); }
 }
}
みたいにしててどのエフェクトを使うかはEnemy側で決めるようにしたいからこうなったんだけど
GameにEffectのインスタンス持たせてEnemyにそのインスタンスの参照なりなんなり渡して
if( 死んだ ) { effect->addEffect(new Effect()); }
とかしても良いんだけどなんかしっくりこないんで気になったのよ
>>688
そうなんだけど実際あんまり関係なかった・・・

>>689
うまい設計思いつかなかったんよね
その方法手っ取り早いし良さそうです

714 名前:名前は開発中のものです。 mailto:sage [2014/05/02(金) 21:46:30.08 ID:Yjnja2zX.net]
>>692
EnemyはどうしたってEffectへのポインタが欲しいわけで描画の関係からか複数存在してるとなると
初期化などでずっと持たせるのが嫌ならhitかそれ以上に位置するGameから呼ぶ関数に引数として渡すか
EnemyはGameクラスのポインタ位持ってるならGameのほうにAddEffect関数もたせてEnemyはそれを呼ぶか

スレッドセーフでない設計ならEffectポインタのグローバルか静的関数なGetterとSetter用意して
GameオブジェクトごとにEnemy更新前にSetterでGetterの戻り値となるポインタを入れ替え…止めた方がいいな

715 名前:名前は開発中のものです。 mailto:sage [2014/05/02(金) 22:17:39.20 ID:DPIL44M1.net]
実際のコードでは、Effectクラスから派生した HitEffect とか DeadEffect とかを
Enemy内から呼んでるんだよね?

716 名前:名前は開発中のものです。 mailto:sage [2014/05/02(金) 22:41:54.83 ID:gb8xd1Dr.net]
GameがEnemyを管理するんだったらEnemyに
エフェクト番号とフラグを持たせれば良いんじゃない



717 名前:名前は開発中のものです。 mailto:sage [2014/05/03(土) 02:03:51.33 ID:aTctHTqN.net]
>>687
そんな感じです
ですがそのrendererを渡そうか悩んでます
引数ですとかなり深い(?)ところまで渡す必要があるのではないかという感じです

>>690
引数で渡した方が自由が利きますね
めんどくささと柔軟性のどっちをとるかみたいな感じでしょうか

>>691
座標、テクスチャ、UV、色などのことを考えるとVectorかなんかだときつそうです

とりあえず引数で渡す方向で作ってみたいと思います
オブジェクト指向難しいです...

718 名前:名前は開発中のものです。 mailto:sage [2014/05/03(土) 06:24:50.92 ID:aTctHTqN.net]
ああ、文章にミスが
>>696
rendererを渡そうか×
rendererをどう渡そうか○
です

719 名前:名前は開発中のものです。 mailto:sage [2014/05/03(土) 14:23:28.87 ID:yzrAO4fX.net]
ヒープ領域のオブジェクトを参照で引数で渡したい時ってどういう風に書けばいいの?

720 名前:名前は開発中のものです。 mailto:sage [2014/05/03(土) 16:01:04.13 ID:ZggXQf33.net]
普通に参照渡しするだけだよ

721 名前:名前は開発中のものです。 mailto:sage [2014/05/03(土) 18:27:55.89 ID:Dtrz+is9.net]
void f(A &a);

A *a = new A();

f(*a);

こんな感じゃない

参照って殆ど使った事ないからあってるかどうかわからんけど

722 名前:名前は開発中のものです。 mailto:sage [2014/05/03(土) 19:07:15.30 ID:hZKN3J0P.net]
「ゲームプログラマになる前に覚えておきたい技術」
という本がオススメと言われたんですが、これ持ってる人いませんか?
役に立つ度合いとかアドバイスしてもらえたら嬉しいです

723 名前:名前は開発中のものです。 mailto:sage [2014/05/03(土) 19:31:10.25 ID:R+meoZG6.net]
ゲームプログラマになる前に覚えておきたい技術
01 この本はどんな本か
www.shuwasystem.co.jp/gpro-sp/

これを読みましたか?

724 名前:名前は開発中のものです。 mailto:sage [2014/05/03(土) 20:46:14.95 ID:TVFyIiNS.net]
>>693
やっぱりそれぞれが持つしかありませんかねえ
呼び出し元をparentとかして持たせておくのって普通にやっていることなんですか?
この場合だとEnemy::parentにGameへの参照か何かを持たせるとか

>>694
はいそうです

725 名前:名前は開発中のものです。 mailto:sage [2014/05/03(土) 21:38:49.30 ID:XwaCxcGs.net]
重いので持ち運びには向かない、かな

726 名前:名前は開発中のものです。 mailto:sage [2014/05/03(土) 21:46:57.91 ID:XwaCxcGs.net]
>>703
各クラスがどのエフェクトを使うのか?というのをハッキリさせておいて
必要なものだけインクルードするようにすれば、そこまで気持ち悪いことにはならないんじゃないだろうか。
たとえばEnemyクラスは、Effect::GettingItem(アイテム獲得)とかEffect::PlayerDead(プレイヤー死亡)は不要だろう。

それすら気持ち悪いと思うなら(分からんでもない)、
ObserverとかListenerとかCallbackとかその辺に頼るとかでも良いんじゃない?



727 名前:名前は開発中のものです。 mailto:sage [2014/05/03(土) 22:35:18.25 ID:Kqu7ExT3.net]
>>700
参照引数は「読むだけ」を意図してる場合が多いからconst付きが多いかな

>>703
>呼び出し元をparentとかして持たせておくのって普通にやっていることなんですか?
>この場合だとEnemy::parentにGameへの参照か何かを持たせるとか

その疑問は>>674-696のやり取りと同じ話っぽいね、俺も>>704-705に同意かな。
依存関係を明示すると違和感を覚えたり気持ち悪くなるのは、大抵の場合

依存関係の認識(or分析)が大雑把。依存関係を明示するとそれが露見しちゃう。
機能分割が大雑把。依存関係を詳細に分析すると広範に絡み合ってて一体でした。

とか。Gameへの参照は、恐らく要らん情報にアクセスする権利も与えてるから
依存関係の明示というより、広範に渡る権力へのアクセス権の譲渡なのかな?

君はこの世界に神になる。俺はいいと思うけどね。というか、はなっから
グローバルなサービスとして提供してしてもいいかもね。完成させてから
リファクタリングしたほうがいい

個人的な短期小規模開発(作り捨て)なら別に問題ない。完成と反省のサイクルよ

728 名前:名前は開発中のものです。 mailto:sage [2014/05/03(土) 23:45:58.24 ID:yuGTooJm.net]
具体的なEnemyなんてアプリ層なんだから泥臭くていいと思うのだが。

729 名前:名前は開発中のものです。 mailto:sage [2014/05/04(日) 00:03:34.32 ID:4VZ37tn9.net]
すまん、>704はセガ本が物理的に重いって話のつもりだったんだ

730 名前:名前は開発中のものです。 mailto:sage [2014/05/04(日) 00:09:25.10 ID:LNtKUxSS.net]
まあ大概のゲームプログラミング本は重いよね
電子版あるならそっちの方が捗りそうだ

731 名前:名前は開発中のものです。 mailto:sage [2014/05/04(日) 07:21:43.07 ID:r1PwGAIh.net]
描画クラスを作って描画用のインターフェイスを作る
描画されるクラスはインターフェイスを実装
描画クラスはそのインターフェイスをリスト管理し順番に描画
ゲームクラスはデータクラスと描画クラスを管理し
必要に応じてデータクラスを作り、描画クラスに登録
ゲームクラスが当たり判定をして、エフェクトクラスをnew、描画クラスに登録

て感じじゃ駄目なの

732 名前:名前は開発中のものです。 [2014/05/04(日) 18:09:40.60 ID:Oce/sxqq.net]
>>701
サンプルプログラムの修正版があるからそれ見て決めたら?
ちなみに独自のライブラリを使ってる

733 名前:名前は開発中のものです。 mailto:sage [2014/05/04(日) 21:44:57.67 ID:o3zvQF1I.net]
もし、新幹線できたらな
飛行機乗客が減り、飛行場が苦労する
バス乗客が減り、高速道路が苦労する

結果的に、四国地方の経営破たん

734 名前:名前は開発中のものです。 mailto:sage [2014/05/06(火) 09:11:34.47 ID:WKSS3LlW.net]
ポインタに構造体を持たせる場合ってきちんとスマートポインタを使った方がいいの?

735 名前:名前は開発中のものです。 mailto:sage [2014/05/06(火) 10:42:16.25 ID:2Ki+N293.net]
>>711
独自ライブラリですかー・・・
ありがとう。ちょっとどっかで立ち読み出来るまでは買い控えます。

736 名前:名前は開発中のものです。 mailto:sage [2014/05/06(火) 14:47:05.12 ID:D61HzG9l.net]
>>713
本来スマートポインタはラクをするために使う。あとは好きにしろ
あと言語の使い方一般についての質問はプログラム板のほうがいい
【初心者歓迎】C/C++室 Ver.90【環境依存OK】
toro.2ch.net/test/read.cgi/tech/1395675954/

はい、次の方どうぞ



737 名前:名前は開発中のものです。 mailto:sage [2014/05/06(火) 15:47:49.53 ID:C6PkJkWu.net]
そのスレ、ちょっと見たけど罵りばっかじゃないかw

738 名前:名前は開発中のものです。 mailto:sage [2014/05/06(火) 16:22:09.99 ID:tFTEVnQV.net]
x64の64bitビルドでのループ変数とかメンバ変数てint,unsigned intとsize_tどっちが最適なの?
DirectXのAPIが32bit幅なのにSTLは64bitみたいに混在してて決め打ちしにくいんだけど
インデックスとして毎回32bitを64bit拡張と変数を32bitにstatic_castと
タイプ量はともかく実行時に効率いいほうにしたい

739 名前:名前は開発中のものです。 mailto:sage [2014/05/06(火) 16:27:40.04 ID:D61HzG9l.net]
>>716
報告しなくていい。そういう感想は彼らに直に言ってあげな。陰口より建設的だろ

はい、次の方どうぞ

740 名前:名前は開発中のものです。 mailto:sage [2014/05/06(火) 16:28:53.69 ID:D61HzG9l.net]
>>717
かぶったすまん

741 名前:名前は開発中のものです。 mailto:sage [2014/05/06(火) 16:44:38.90 ID:C6PkJkWu.net]
>>718
そんな非建設的な事実上機能していないスレに誘導してどうするんだって事だよ。

はい、次の方どうぞ。

742 名前:名前は開発中のものです。 mailto:sage [2014/05/06(火) 17:21:27.34 ID:D61HzG9l.net]
>>717
例えばループ変数については普通にint使ってるな
参考までに、科学計算系のライブラリでもそんな感じだったと思うよ
計算速度云々が問題になる場合、気にかける場所はもっと別の所かと

743 名前:名前は開発中のものです。 mailto:sage [2014/05/06(火) 20:22:43.10 ID:HhBjBQsT.net]
32bit環境でもint iをbyte iとかshort iにはしない
あとむやみにunsignedにするとsignedにunsigned加算して警告でたり面倒のもと

744 名前:名前は開発中のものです。 mailto:sage [2014/05/08(木) 22:05:56.40 ID:Np2Vdwsy.net]
ローカル変数がautoばかりになってしまうんだけど意図的な型だけ除外しておけば問題ないよね?
constもメンバ関数含めて相当あるけど

745 名前:名前は開発中のものです。 mailto:sage [2014/05/08(木) 22:48:55.29 ID:v1IR+nQC.net]
人間がソースコードを読んだときに
「型が明らかである場合か、あるいは逆に全く意識してほしくない場合にのみ使う……とかにしておけば?

746 名前:名前は開発中のものです。 mailto:sage [2014/05/09(金) 09:00:26.26 ID:3cnn0QfE.net]
ローカル変数にauto使うメリットってある?
イテレータの型書くの面倒くさい、位しか思いつかない



747 名前:名前は開発中のものです。 mailto:sage [2014/05/09(金) 09:04:31.69 ID:7ikJMhxE.net]
十分じゃないか

748 名前:名前は開発中のものです。 mailto:sage [2014/05/09(金) 13:56:58.03 ID:Kaaj65V1.net]
型推論って引数に使ったら勝手にオーバーロードしてくれるんだと思ってたんだが、引数とか戻り値には使えないんだな
iteratorの記述を省略するための機能か

749 名前:名前は開発中のものです。 mailto:sage [2014/05/09(金) 17:15:23.11 ID:htXiJh1L.net]
そういう用途にはテンプレート関数があるしね

750 名前:名前は開発中のものです。 mailto:sage [2014/05/10(土) 00:22:59.13 ID:6TirXj8H.net]
>>725
個人的にはイテレータを簡単に書けるメリットが一番大きいと思ってるが
それ以外で使うとしたら

auto f = new Foo(); //Foo型なのは明らか

とか

//交換
auto tmp = a; //型は明らかではないが意識する必要がない
a = b;
b = tmp;

とかかなあ。
後者は素直にtemplate関数にでも投げたほうが良さそうだけどね

751 名前:名前は開発中のものです。 mailto:sage [2014/05/10(土) 10:54:20.51 ID:dAeX94+O.net]
配列に入ってる複数の要素のうちの一つをポインタに持たせる場合って、スタックのアドレスをポインタに持たせても大丈夫?

752 名前:名前は開発中のものです。 mailto:sage [2014/05/10(土) 11:11:37.14 ID:hKETio2L.net]
>>730
「スタックのアドレス」を「スタック上におかれた配列の要素を指すアドレス」と解釈したけど

ttp://ideone.com/yad3h1
その配列が生きている間は問題ない

753 名前:名前は開発中のものです。 mailto:sage [2014/05/10(土) 22:40:27.91 ID:+R2ltZ7t.net]
const T&amp; f();
void g()
{
auto t= f();
}

ってすると t は const T&amp; 型になると思ってたけど
実はただの T 型でコピーコンストラクタでひどいことになったことあります

754 名前:名前は開発中のものです。 [2014/05/11(日) 18:46:58.77 ID:8qR2WxrE.net]
#include "define/MoneyType.h"
int money[MoneyType.SIZE];

こういう宣言の仕方って出来ないの?
MoneyTypeはenumで
enum MoneyType {
GOLD,
DIA,
SIZE
};

755 名前:名前は開発中のものです。 mailto:sage [2014/05/11(日) 19:38:27.89 ID:3XauxJKc.net]
enumはC++11で整数としてあつかえなくなったってwikiに書いてあった気がする
っていうかその使い方わかりにくいしやめた方が

756 名前:名前は開発中のものです。 mailto:sage [2014/05/11(日) 19:44:07.91 ID:3XauxJKc.net]
訂正
static_castでキャストすればいけるっぽい



757 名前:名前は開発中のものです。 mailto:sage [2014/05/11(日) 19:59:02.14 ID:yHWGVGOF.net]
GOLD,DIA,SIZEって何かと思ったけど、もしかしてお金の単位なのかな?

758 名前:名前は開発中のものです。 mailto:sage [2014/05/11(日) 21:01:42.40 ID:KSscCZAl.net]
MoneyType::SIZEかな?
ただこれだと再定義のエラーが前出たような気がする

759 名前:名前は開発中のものです。 mailto:sage [2014/05/11(日) 21:04:03.89 ID:9RoLwWBR.net]
>>733
enum class MoneyType:int
{
GOLD,
DIA,
SIZE
};

int money[ MoneyType::Size ];

760 名前:名前は開発中のものです。 mailto:sage [2014/05/11(日) 21:06:37.47 ID:KSscCZAl.net]
適当に書いちゃったけど何をしようとしてるのかいまいち理解出来ないw

761 名前:名前は開発中のものです。 mailto:sage [2014/05/11(日) 21:14:58.11 ID:9RoLwWBR.net]
enumの要素数を静的に得たいんでしょ
将来お金の種類増えるかもしれないとか
配列使うぐらいならvectorにしとけとも思うが

762 名前:名前は開発中のものです。 mailto:sage [2014/05/11(日) 21:51:52.47 ID:3XauxJKc.net]
構造体じゃいかんのか

763 名前:名前は開発中のものです。 mailto:sage [2014/05/12(月) 00:24:54.73 ID:cE27KFFY.net]
実際に使うの想像してこうなった。
例えば複数の種類のお金で買えるショップ機能を作りたい場合、
ショップ側でMoneyTypeという型と整数を持っておけば、処理が楽かなと思ったんだけど

764 名前:名前は開発中のものです。 mailto:sage [2014/05/12(月) 01:09:04.70 ID:u2hQW3ha.net]
つまり>740が正解っぽい?

765 名前:名前は開発中のものです。 mailto:sage [2014/05/12(月) 14:46:27.12 ID:Pch/P8kY.net]
ゲームで何時でも何処でも参照、代入できるデータって一般的にどうやって管理してます?
(例えば主人公のデータとか色々な場面で使いそうなもの)
今まで単純にデータクラスの中に静的メンバ変数で定義してグローバル的にやってたけど、
たまたまシングルトンで管理してるソースを見つけて、色々あるのかなって思った

766 名前:名前は開発中のものです。 mailto:sage [2014/05/12(月) 18:22:11.56 ID:cE27KFFY.net]
シングルトンは嫌だからゲームマネージャークラス作ってそこにプレイヤーデータのポインタ持たせたりしてるけど、どうなんだろう??



767 名前:名前は開発中のものです。 mailto:sage [2014/05/12(月) 18:22:35.24 ID:gXmiaEA2.net]
3Dゲームでカメラを遅らせて動かす場合って角度を線形補間してベクトルにしてる?
それともクォータニオンで球面線形補間してる?

768 名前:名前は開発中のものです。 mailto:sage [2014/05/12(月) 20:18:49.99 ID:u2hQW3ha.net]
>>745
グローバル変数は可能な限り減らす、という理念の上でやってるなら、
それは実に正しい手法だと思うよ

769 名前:名前は開発中のものです。 mailto:sage [2014/05/12(月) 22:53:45.27 ID:Qk7dokdu.net]
グローバル変数使いまくりの俺だが、グローバル変数は使わない方がいいと言われて
その方向でプログラム書き直したところ、手間の物凄く増えて辟易。
やり方を間違ってるんじゃないか感が半端ない。

770 名前:名前は開発中のものです。 mailto:sage [2014/05/12(月) 23:01:55.91 ID:Qk7dokdu.net]
あるプログラム本に「JAVAなんかは誰が組んでも似たようなものになるが、
C++プログラムは人によってまるで違ってくる」とあったが本当みたいね。

本や解説サイトによって、サンプルがかなり違ってるようで混乱しまくるわ。

771 名前:名前は開発中のものです。 mailto:sage [2014/05/12(月) 23:39:44.01 ID:4H1ieXj2.net]
グローバル変数どうのこうのは保険をかけるためのもので手間を減らすものではないから仕方ないね

772 名前:名前は開発中のものです。 mailto:sage [2014/05/13(火) 06:24:12.16 ID:hs5B6JyN.net]
グローバル変数使わずにやろうとすると関数の引数が複雑になりがちだからな
一人で作ってるコンパクトなプログラムくらいだったら使いまくりでいいと思うわ

773 名前:名前は開発中のものです。 mailto:sage [2014/05/13(火) 10:40:34.58 ID:lZBhyb5G.net]
グローバル変数は初期化の順序が問題になる
複数のソースコードのあちこちに点在してるとそれが顕著になり
グローバル変数がクラスで依存関係があると動作保証が難しい
せめて組み込み型以外はポインタ型にして初期化の順序を決めちゃうのが安全

774 名前:名前は開発中のものです。 [2014/05/13(火) 11:22:50.82 ID:i7OBK+99.net]
>>738
'MoneyType' is not a class or namespace
ってでる

visualstudio2010だと出来たと思うんだけど、
Eclipse4.3だと出来ない

C++のバージョンによってなんか変わったのかな

775 名前:名前は開発中のものです。 mailto:sage []
[ここ壊れてます]

776 名前: mailto:2014/05/13(火) 12:15:46.52 ID:D4assd32.net [ >>753
enum classはC++/CLIだからだろ
Cにそんな構文はない
俺はC++には詳しくないけど実はあるのかな ]
[ここ壊れてます]



777 名前:名前は開発中のものです。 mailto:sage [2014/05/13(火) 13:16:16.22 ID:LR5OHySp.net]
C++11から入った構文

778 名前:名前は開発中のものです。 mailto:sage [2014/05/13(火) 22:03:52.41 ID:VqkITLrD.net]
グローバル変数はこう書けば良いんじゃね
使うところでだけglobal.hをインクルードしてさ

grobal.cpp
int a;

groubal.h
#ifndef _GLOBAL_H_
#define _GLOBAL_H_

 extern int a;

#endif

779 名前:名前は開発中のものです。 mailto:sage [2014/05/13(火) 23:05:24.12 ID:RPOQlcBK.net]
>>756
わざわざ識別子を _ で始めるなんて沸いてるんじゃない?

780 名前:名前は開発中のものです。 mailto:sage [2014/05/13(火) 23:15:35.87 ID:dsNPksM9.net]
是非はともかく、よく見かけるけどな

781 名前:名前は開発中のものです。 mailto:sage [2014/05/13(火) 23:46:55.80 ID:VqkITLrD.net]
>>757
じゃあなんて書くんだ?

782 名前:名前は開発中のものです。 mailto:sage [2014/05/13(火) 23:51:06.96 ID:dD8wYEBQ.net]
アンダーバー始まりは処理系予約とかじゃ無かったっけ
慣習的に

783 名前:名前は開発中のものです。 mailto:sage [2014/05/13(火) 23:59:25.01 ID:VqkITLrD.net]
>>760
まじかよ
学校でこう習ったよ
何でそんな書き方教えるんだよ
まぁ開発はVSだから#pragma onceしか書かないから知らんかっただけっすけどね・・・

784 名前:名前は開発中のものです。 mailto:sage [2014/05/14(水) 00:50:31.19 ID:qOCHvgWh.net]
>>756
>>663

ついでにnamespaceにぶち込んでもいいのよ

785 名前:名前は開発中のものです。 mailto:sage [2014/05/14(水) 00:53:50.93 ID:qOCHvgWh.net]
>>761
gccでもいつの間にかpragma once使えたりするんだよな
あれ、サッサと標準仕様に盛り込めばいいのになと思うよ

786 名前:名前は開発中のものです。 mailto:sage [2014/05/14(水) 01:34:53.87 ID:Bv7wzu+p.net]
だいたいのコンパイラが対応してるみたいだしデファクトスタンダードってところ



787 名前:名前は開発中のものです。 mailto:sage [2014/05/14(水) 02:44:20.77 ID:SkdpMvQe.net]
効率的には#pragma onceの方がいいと聞いたことはあるが
IDEによるかもしれん

788 名前:名前は開発中のものです。 mailto:sage [2014/05/14(水) 03:12:47.17 ID:YePF79fh.net]
単純なi nclde guard は力技の処理だけど
pragma once は処理系次第で最適化されてるからね。

複数のプラットフォームを想定するなら
安全策をとって両方記述するのがオススメ。
pragma once があれば効率的に処理してくれるかもしれないし、
もしpragma once を理解できない処理系でも
inlude guardは必ず処理してくれるからね。

789 名前:名前は開発中のものです。 mailto:sage [2014/05/14(水) 10:10:49.06 ID:2wCAVOdx.net]
>>766
両方記述?寝言は寝て言えw

790 名前:名前は開発中のものです。 mailto:sage [2014/05/14(水) 10:25:37.80 ID:vvdSHZVH.net]
VC++に#pragma onceが入ってすぐの頃は
自動生成したヘッダには#pragma onceと#ifndef-define-endifが
コンパイラバージョンによって自動で切り替わるように書かれてたと記憶している
その辺から考えても、両方書くのは無駄じゃない

791 名前:名前は開発中のものです。 mailto:sage [2014/05/14(水) 12:46:41.03 ID:1doe1mvx.net]
std::mapにenumとかstructを使いたいんだけど
template argument 4 is invalidっていうエラーが出ます

具体的には
map<アイテムID(enum型),アイテムパラメータ(struct型)> aaaaa;

って感じです。

パラメータっていうのはその名の通りアイテムを装備するとstructのメンバの
addHPとかaddMPっていう変数の分だけ上昇する感じで、

使い方はプレイヤーはアイテムIDだけ持っておけば、あとは必要な時々で値だけ取得できるかなという感じです。

792 名前:名前は開発中のものです。 mailto:sage [2014/05/14(水) 13:13:18.32 ID:CAIv9eLR.net]
enum itemID{ID1=0, ID2, ID3, ID4};
struct itemParam{int p1; int p2;};

itemParam param;
map<itemID, itemParam> m;
m.insert(make_pair(itemID::ID1, param));

こんな感じで動かない?

793 名前:名前は開発中のものです。 mailto:sage [2014/05/14(水) 13:15:39.85 ID:Ocn3g8OS.net]
>>769
比較関数がないって怒られてるんじゃね
一つ目の型を enum型じゃなくて int に変更するわけにはいかないの?

794 名前:名前は開発中のものです。 mailto:sage [2014/05/14(水) 14:08:33.50 ID:Ke2wFa7k.net]
そもそもそれmapにする意味あるのか?
>>733みたいな感じで配列で十分な気がするんだけど

795 名前:名前は開発中のものです。 mailto:sage [2014/05/14(水) 15:29:04.69 ID:Ocn3g8OS.net]
map だと必要な分だけ使えるじゃん

0〜 イベントアイテム
10000〜 武器
20000〜 鎧

みたいに

796 名前:名前は開発中のものです。 mailto:sage [2014/05/14(水) 16:29:43.89 ID:YPHrxvGY.net]
enum使うなら10000から武器みたいな区分けがそもそも必要ないと思うんだけど



797 名前:名前は開発中のものです。 mailto:sage [2014/05/14(水) 21:01:01.54 ID:qOCHvgWh.net]
>>769
それ、>>770で動きますよ

>>772-774
仮に、実行時に追加削除更新等なし、静的、参照専用、の情報の集合
という前提条件であればstd::map(赤黒木)を使う合理性はあまりないかな

>>773のようにキー番号が連続してないのでれば、ハッシュマップの類の
ほうが向いてますね
research.preferred.jp/2011/07/stllike-containers/
補足:記事中のLoki::Assoc

798 名前:Vectorとほぼ同じものとしてboost::flat_map
もあります。でも、>>774の言う通り、結局vectorでおkにもできますね

ま、完成しない(動かない)事に比べればどれ選んでも瑣末な違いなので
(特に昨今のPCなら)好きなの選べばいいかと思います。身も蓋もないね
[]
[ここ壊れてます]

799 名前:名前は開発中のものです。 mailto:sage [2014/05/14(水) 23:37:56.68 ID:XQ3tGmyB.net]
>>770
enumの最初を0と明示するだけで変わるんです?

800 名前:名前は開発中のものです。 mailto:sage [2014/05/15(木) 13:17:04.58 ID:vi3A9MFw.net]
変わらないですよ。試せばすぐ分かりますけど、ム板のスレに誘導されたいです?

801 名前:名前は開発中のものです。 mailto:sage [2014/05/15(木) 17:35:02.68 ID:CM4Haxt/.net]
普通に動くよね
コンパイラのバージョンとかで古いのだと駄目なのかな

802 名前:名前は開発中のものです。 mailto:sage [2014/05/15(木) 19:15:22.94 ID:D0s76qwM.net]
実は全然違うところでエラー出てるんじゃないの

803 名前:名前は開発中のものです。 mailto:sage [2014/05/16(金) 15:57:03.11 ID:RLWXI/UA.net]
ナビメッシュのやり方が書いてある本とかサイトとかってある?

804 名前:名前は開発中のものです。 mailto:sage [2014/05/16(金) 23:45:36.07 ID:bSd/X954.net]
> とかってある?

ありますよ
navigation mesh pathfinding algorithm game waypoint graph search
など適当なキーワードでググるといいです。動画によるアルゴリズムの
解説も出てきますね。書籍ならAI Game Programming Wisdom 4 が
個人的にオススメです

805 名前:名前は開発中のものです。 mailto:sage [2014/05/17(土) 09:32:46.40 ID:a+6vW56R.net]
そういうのって概要だけ聞いて自分で考えて作った方が早くない?
サンプルコードみても理解するのに時間がかかるわ

806 名前:名前は開発中のものです。 mailto:sage [2014/05/17(土) 10:01:46.81 ID:ATk/Gp35.net]
ゲームプログラミング本といえばGameProgrammingGemsシリーズなんだかな
最近の若者は読まないのか



807 名前:名前は開発中のものです。 mailto:sage [2014/05/17(土) 11:06:25.43 ID:7UqYAydx.net]
現代の技術の世界において
英語が読めないのは脳が半分無いのと同じ。

それだけのこと。

808 名前:名前は開発中のものです。 mailto:sage [2014/05/17(土) 12:01:48.26 ID:G1g9tldj.net]
翻訳したやつ読めば

809 名前:名前は開発中のものです。 mailto:sage [2014/05/17(土) 12:34:45.87 ID:/WeYTHrm.net]
英語読めてもソースコード読めなかったりするし
プログラムは勉強したところでコード書けないのが大半らしいな
元々作文が下手とかそういう次元ではなく理解できないとか

810 名前:名前は開発中のものです。 mailto:sage [2014/05/17(土) 12:40:03.20 ID:o9p3b0z7.net]
そもそも日本語で書いてあるプログラム解説書だって意味わかんないよw

811 名前:名前は開発中のものです。 mailto:sage [2014/05/17(土) 13:44:47.33 ID:7UqYAydx.net]
>>785
半年遅れで付いていく人間は残念ながら奴隷で終わるよw
英語ができて最先端に追従する奴、ときには自分が最先端を発信する奴に
「あ、こいつバカだなww」と思われながら生きる惨めな三流人生が待っている。

それで良ければ英語なんて学ぶ必要はない。

まぁ、普通は(普通の知性の持ち主は、という意味)
修士課程で英語の論文を死ぬほど読んで
「喋れないけど読める」という妙な英語力を身につけられるんだけどねw

812 名前:名前は開発中のものです。 mailto:sage [2014/05/17(土) 14:19:53.26 ID:ZLhv9Phh.net]
相変わらず病んでますね

813 名前:名前は開発中のものです。 mailto:sage [2014/05/17(土) 14:53:46.32 ID:k3uAdR/A.net]
とりあえずナビメッシュのやり方教えて

814 名前:名前は開発中のものです。 mailto:sage [2014/05/17(土) 17:55:58.84 ID:ZLhv9Phh.net]
780の人ですか?
具体的に何をやってみてどこでつまずいてるのか話せば答えやすくなるかと

815 名前:名前は開発中のものです。 mailto:sage [2014/05/17(土) 18:02:04.88 ID:G1g9tldj.net]
www.lameije.co.jp/navigationmesh.html

これじゃあかんのか

816 名前:名前は開発中のものです。 mailto:sage [2014/05/18(日) 17:48:20.69 ID:bAjzsQ9M.net]
オクツリーに障害物を表示させたいんだけど、オクツリーのある場所がどの座標なのかを



817 名前:調べる方法ってある? []
[ここ壊れてます]

818 名前:名前は開発中のものです。 mailto:sage [2014/05/18(日) 21:18:36.16 ID:uYYY8hgN.net]
ボクセルのインデックスを座標のビット配列にしてインデックスからボクセルの位置を取得

marupeke296.com/COL_2D_No8_QuadTree.html
これを3ビット毎にすれば出来ると思うんだがどうだろ

819 名前:名前は開発中のものです。 [2014/05/19(月) 04:39:02.31 ID:XNC2jE/Y.net]
この入門?みたいなサイトで勉強してたんだけどつまづいたので分かる方いたら教えてください
bituse.info/game/shot/11

for(int i=0;i<ENEMY_NUM;++i){
enemy[i]=new ENEMY(data[i].type,data[i].stype,data[i].m_pattern,data[i].s_pattern,data[i].in_time,data[i].stop_time,data[i].shot_time,data[i].out_time,data[i].x,data[i].y,data[i].speed,data[i].hp,data[i].item);
}

↑この文の enemy[i]=new ENEMYのイコールのところでオペランドと一致する演算子なんてねぇよって怒られます

原因として考えられるものってなんでしょうか?

for(int i=0;i<ENEMY_NUM;++i){
enemy = new ENEMY[i](省略);
  }

だったらいけるみたいなんですけど、違いがよくわからないです・・・

820 名前:名前は開発中のものです。 mailto:sage [2014/05/19(月) 05:31:35.17 ID:FdnDAUlP.net]
enemyの型がポインタの配列になってないんじゃないの

821 名前:名前は開発中のものです。 mailto:sage [2014/05/19(月) 10:00:14.39 ID:hjxHIKHc.net]
こうかな
正:ENEMY *enemy[ ENEMY_NUM ];
誤:ENEMY *enemy;

サイトを見ると省かれてるみたいだけど
敵を複数出すようにした時点で enemy を配列に変更しないといけない

822 名前:名前は開発中のものです。 mailto:sage [2014/05/19(月) 11:05:51.60 ID:CSMuM09V.net]
これコンストラクタの引数なんで構造体の参照渡しじゃないのか
無駄に読みにくいわ

823 名前:795 mailto:sage [2014/05/19(月) 11:33:54.01 ID:XNC2jE/Y.net]
できました。
ご指摘の通り、enemyを配列にしたら無事にコンパイルできました。

ちょっと私にはわかりにくいサイトだったようなので別のところで勉強してみます・・・

824 名前:795 mailto:sage [2014/05/19(月) 11:34:28.24 ID:XNC2jE/Y.net]
お礼を忘れていました

ご指摘ありがとうございました。

825 名前:名前は開発中のものです。 [2014/05/23(金) 00:32:00.04 ID:61iiZtPG.net]
おらLAMPしか知らないんだけども
C++で作ったリアルタイムなネットワークゲームのオンラインサーバって
どういう環境で動いてんだべ?
ソシャゲならPHPでhttpでいいかもしんねけども、
ネトゲって実行ファイル動かし続けてんのかね

826 名前:名前は開発中のものです。 mailto:sage [2014/05/23(金) 00:34:30.27 ID:BlMjMm70.net]
>>801
お前から感じるそのしったか臭は一体何なんだ?



827 名前:名前は開発中のものです。 mailto:sage [2014/05/23(金) 01:25:45.01 ID:61iiZtPG.net]
>>802
そんなこと言っても知りたいってのは本当なんだけど
ていうかソシャゲってphpでhttp返してるって聞いたんだが違うのか
ソース3種類ぐらい別のところから聞いたからそうだと信じてたけど

828 名前:名前は開発中のものです。 mailto:sage [2014/05/23(金) 01:54:24.22 ID:W5hvE4XG.net]
上から目線だと>>802みたいなのが湧いて終わりw
それがネットの宿命。

和光同塵に励み、
下から目線で質問すると、
「そんなのこと知ってるよヴァカw」ってレベルの奴がトクトクと語り始める。
人生ってのは上手くいかないものだ。

やはりアドヴァイスはリアルな知り合いに、
顔を付きあわせて語り求めるのが一番良い。

ネットで集まってくるのは多くの場合クズだ。

829 名前:名前は開発中のものです。 mailto:sage [2014/05/23(金) 04:11:24.69 ID:R2Hq6koN.net]
>「そんなのこと知ってるよヴァカw」ってレベルの奴がトクトクと語り始める。

そうかな。
知ったかが知ってる振りをして偉そうにした挙句、何も実のあることは言わずに去るだけな気もするが。

830 名前:名前は開発中のものです。 mailto:sage [2014/05/23(金) 06:08:22.99 ID:61iiZtPG.net]
いや質問してるんだけど

831 名前:名前は開発中のものです。 mailto:sage [2014/05/23(金) 08:01:15.27 ID:VwzG+tx8.net]
知ったかだけど

C/C++ならOSのAPIかライブラリ使ってTCPとUDP使い分けでしょ
PHPでもソケット通信

832 名前:出来るらしいし言語はなんでもいいんじゃないの
実行効率の問題はあるだろうけど
[]
[ここ壊れてます]

833 名前:名前は開発中のものです。 mailto:sage [2014/05/23(金) 08:49:57.28 ID:UZe2P6GU.net]
個人のゲーム製作でC++使うメリットってあるかな?
Cの方が小回り効くし使いやすいと思うんだが

834 名前:名前は開発中のものです。 [2014/05/23(金) 08:57:29.89 ID:WZOW9ZIo.net]
C++のほうがゲーム向き。
基本的にC言語の機能を全て含んでいて、追加部分を使いたくなれば使わなければいいだけ。
使って便利な機能を使うことで開発効率は上がる。

835 名前:名前は開発中のものです。 mailto:sage [2014/05/23(金) 09:01:24.07 ID:UZe2P6GU.net]
多人数やチームで作るなら保守性とか高いし必要だとは思うんだけど
個人製作なら手続きが多い分無駄な気がするんだよね>C++

836 名前:名前は開発中のものです。 mailto:sage [2014/05/23(金) 09:24:40.27 ID:J41CukcG.net]
複数のゲームオブジェクトが相互作用するような場合はポリモーフィズム使うと楽になる
継承して独自の部分実装すれば新しいオブジェクト作れるしメンテもしやすい



837 名前:名前は開発中のものです。 mailto:sage [2014/05/23(金) 09:25:32.36 ID:gVP8nGPF.net]
準備されてるクラスライブラリが圧倒的にC++の方が便利

838 名前:名前は開発中のものです。 mailto:sage [2014/05/23(金) 09:32:14.08 ID:mJ3PfvgI.net]
スマートボインタとかCじゃできないしな

839 名前:名前は開発中のものです。 mailto:sage [2014/05/23(金) 09:40:35.21 ID:61iiZtPG.net]
構造体でオブジェクト表現してるのか

840 名前:名前は開発中のものです。 mailto:sage [2014/05/23(金) 10:13:18.75 ID:UZe2P6GU.net]
構造体でほとんど間に合うと思うんだよな。
トリッキーに何しても怒られないし。

841 名前:名前は開発中のものです。 mailto:sage [2014/05/23(金) 10:19:18.29 ID:3Qz0nlZE.net]
C++使ったらコードの見通し良くなって楽ってだけで、Cに慣れてるならそりゃCの方が楽
ミニゲーム程度ならどっち使っても変わらん

842 名前:名前は開発中のものです。 mailto:sage [2014/05/23(金) 10:21:23.05 ID:u1Ct/Di+.net]
構造体を引数としてとる関数は文が長くなりがち
構造体に関数ポインタ入れるより仮想関数のが簡潔に書けるし分かり易い
名前空間がないと名前の衝突が起こるから冗長なプリフィクスが必要になる
DirectXとかCOM周りはC++のが簡潔に書ける

843 名前:名前は開発中のものです。 mailto:sage [2014/05/23(金) 10:35:11.17 ID:UZe2P6GU.net]
慣れてるせいなんだろうけど関数ポインタで簡潔に書けちゃうんだよな。
むしろ手続きや決まりごとの分C++の方が長くなっちゃうんだよ。
スマートポインタも俺からするとプログラマが解放し忘れてても勝手に解放って逆に怖いと思うんだよ。
メモリの使用状況なんかデバッグ画面かなんかで常に確認するべきだしメモリの解放は意識してやりたいなあ。

844 名前:名前は開発中のものです。 mailto:sage [2014/05/23(金) 10:48:05.07 ID:u1Ct/Di+.net]
意識してスマートポインタ使うんだから開放されるタイミングは判る
気にしないのは実装部分だけ
いくら自前で管理しようとも例外をsetjump/longjumpで無理やり組むしかないCには容易には出来ない安全性もある
逆にオーバーロードとかコピーが複雑なので頼ったほうが良いC++の悪さの部分でもあるが

845 名前:名前は開発中のものです。 [2014/05/23(金) 10:50:19.88 ID:WZOW9ZIo.net]
自動開放で平気だ。
かなりの言語が強制て自動開放を取り入れている。
パフォーマンスだけの問題だろう。

846 名前:名前は開発中のものです。 mailto:sage [2014/05/23(金) 10:59:56.27 ID:UZe2P6GU.net]
俺がアセンブラ時代から組んでるせいなんだろうけど自動解放って怖いんだよな。
メモリの管理状況やクリアも全部自前のプリミティブな関数でやりたいと思っちゃうんだよな。
まあ気にし過ぎなのかもしれないね。
昔はCも最適化が甘くてオーバーヘッドが酷かったからどうも知らない間にメモリを触られてたりするのが信用できなくてなあ。



847 名前:名前は開発中のものです。 mailto:sage [2014/05/23(金) 11:06:17.74 ID:u1Ct/Di+.net]
スタックの自動開放も怖いのかい?寿命で消えるのは同じことだよ
アセブンブリ出力みてりゃ大したことやってないよ

848 名前:名前は開発中のものです。 [2014/05/23(金) 11:12:25.32 ID:WZOW9ZIo.net]
C言語のauto変数も勝手に開放するな

849 名前:名前は開発中のものです。 mailto:sage [2014/05/23(金) 11:14:29.88 ID:UZe2P6GU.net]
ま、俺の気にし過ぎなんだろうね。

初心者が構造体のコピーとか平気で書いちゃってんの見てビックリしたりする方だからさ。
記述は簡潔だけどその一文でどのくらいオーバーヘッドかかってるかわかって書いてんのか?とか思っちゃうんだよ。
簡易なコード記述の生産性と実行速度は別なんで、その辺はなるべくコワモテでいいんじゃないかと思うんだよ。

850 名前:名前は開発中のものです。 [2014/05/23(金) 11:15:51.86 ID:WZOW9ZIo.net]
CとC++の話で自動開放の話になるのがそもそもおかしいな。
C++はガベージコレクションを取り入れたわけでなく、メモリ管理についてはCと大差ないだろ。
Cでもスマートポインタ使えるだろ。

851 名前:名前は開発中のものです。 mailto:sage [2014/05/23(金) 11:16:04.73 ID:wh7XodOP.net]
ID:UZe2P6GU
わかる。deleteのタイミングって自分で管理したい。
そもそも、スマートポインタに頼ろうという発想が出る時点で、
そのソースはすでにごっちゃになってないかと問いたい。

852 名前:名前は開発中のものです。 mailto:sage [2014/05/23(金) 11:25:27.68 ID:LtRYMhK0.net]
スマポのソース見ればどうなるかきっちりわかるんだから見てみりゃいいじゃん

853 名前:名前は開発中のものです。 mailto:sage [2014/05/23(金) 11:28:39.46 ID:u1Ct/Di+.net]
>>826
好きな時にnullptrを入れて開放してもいいんだぜ
スマートポインタのオブジェクトの寿命=解放のタイミング、一部がコピーで寿命が移動するだけなんだから
Cでmallocしたポインタの値を見失うことがないようなプログラムの組み方ならごっちゃにならない

854 名前:名前は開発中のものです。 mailto:sage [2014/05/23(金) 11:33:42.15 ID:CnVFPzVq.net]
関数のデストラクタとかあれば良いのにな

855 名前:名前は開発中のものです。 [2014/05/23(金) 11:33:43.66 ID:WZOW9ZIo.net]
Boehm GC を使う

The Boehm-Demers-Weiser conservative garbage collector (Boehm GC) は、C言語用のメジャーなガベージコレクタ。
さまざまなソフトウェアがこのライブラリを使っている。

ガベージコレクタを使うと、メモリを好きなだけ確保するだけでよく、解放は自動的にしてくれる。
巨大なメモリを明示的に解放するような場合のほかは、メモリを解放するコードを書く必要はない。

Boehm GCは、保守的GCという方法でガベージコレクトする。定期的にメモリ内を走査し、使われていないと見られるオブジェクトのメモリを回収していく。
Boehm GC以外では、boost::shared_ptrが参照カウント方式を用いている。
www.nslabs.jp/boehmgc.rhtml

856 名前:名前は開発中のものです。 mailto:sage [2014/05/23(金) 11:38:28.27 ID:Q1W0mucT.net]
プログラマがコントロール出来ないGCは処理落ちの原因になるからやめた方がいい



857 名前:名前は開発中のものです。 mailto:sage [2014/05/23(金) 11:41:53.89 ID:UZe2P6GU.net]
>>831
同感。こういうのが嫌なんだよ。
記述上だけでスマート・簡潔に組めたつもりで実際は実行速度がグダグダになってる。

858 名前:名前は開発中のものです。 mailto:sage [2014/05/23(金) 11:45:53.20 ID:wh7XodOP.net]
>>827


>>828
そもそもの動機だよ。誰がスマートポインタをなぜ欲しがるのかってこと。
既にnew/delete対応なんてスッキリハッキリ管理されてるはず。
スマートポインタが活躍する一部場面がある、というのなら限定的に使っていいと思うが、
それはそれ、それだけのこと。

あとたぶん、ID:WZOW9ZIoはもう喋らないほうがいいな。

>>831
たとえばC#でゲームつくってるとGC動かさないように気をつかったり、
GCの実装に振り回されたり、なんとも滑稽な事態に陥るw

859 名前:名前は開発中のものです。 mailto:sage [2014/05/23(金) 12:03:37.45 ID:HE2P9lkw.net]
>>833
標準ライブラリとかboostのソースコードにスマポのソースコードあるでしょ?
それ見ればどういうタイミングで解放されるかわかるんだからきっちり自分でコントロールできる

860 名前:名前は開発中のものです。 mailto:sage [2014/05/23(金) 12:04:27.91 ID:u1Ct/Di+.net]
>>832
他所の実装の関数呼び出しで見た目だけ簡潔に組めたとしても、その関数が遅いかは不明だからな
スマートポインタと全く違うGCは要らないけどな

>>833
動機なんて解放のコードがあちこちにあるより最初に決めておいた方が楽だろ
newは一個でも同じような解放コードのdeleteがあちらこちらの関数に書かれていて
分岐によりそれが実行されるかは不明よりはいいと思うので
デストラクタのおかげで関数後半にfreeが消えるだけでも記述、確認の手間も省ける

コストも結局開放するのなら軽いunique_ptrみたいのならCと変わらんよ
shared_ptrをスマートポインタと想定して言ってるのかもしれんが

スマートポインタなくてもCよりC++のが楽にはなったと思うけどな
Cから移行したときは同名関数の引数違いのオーバーロードですらありがたいよ

861 名前:名前は開発中のものです。 mailto:sage [2014/05/23(金) 12:19:19.44 ID:wh7XodOP.net]
>>835
new/deleteの対応がおぼつかないようなコードは既に臭ってる。
俺の言いたいことはアンタには十分伝わっている気がするんで終わる。

> 引数違いのオーバーロードですらありがたいよ

それよ。名前空間とオーバーロード。
これだけで名前に関する負担が減って十分嬉しい。

862 名前:名前は開発中のものです。 mailto:sage [2014/05/23(金) 12:40:36.19 ID:RKONZ/AN.net]
スマポって仕組みよくわからんのだけど参照カウントという奴をオペレーターに仕込むのか?
プログラマが代入するたびにカウント++するわけじゃないだろうし

863 名前:名前は開発中のものです。 mailto:sage [2014/05/24(土) 02:12:28.67 ID:+nV/dxKWG]
>>837
スマポ=参照カウンタではない
C++11のスマポはunique,shared,weakの3種類ある

864 名前:名前は開発中のものです。 mailto:sage [2014/06/08(日) 14:02:34.45 ID:pt28O8XW.net]
UIならシーンの初期化の時に全部読み込むだろうし、その時にソートしとけばいいんじゃないの

865 名前:名前は開発中のものです。 mailto:sage [2014/06/08(日) 14:07:29.29 ID:tkJLCxRy.net]
そもそも2Dの優先順位の決定にレイを飛ばす理由が不明、
画像のインスタンスを見るというのも意味不明。

866 名前:名前は開発中のものです。 mailto:sage [2014/06/08(日) 15:23:55.84 ID:yGlWShIZ.net]
レイ撃ってヒットの逆順に描画するんじゃないの
無駄過ぎて鼻水吹き出しそうな話だけど
画像のインスタンスって言ってんのはスプライトの事かな



867 名前:名前は開発中のものです。 mailto:sage [2014/06/08(日) 19:22:29.67 ID:8RotVtW9.net]
クリックした要素が何かを探したいんだろうけど
画面を経由する必要があるほど不定形でぐにゃぐにゃしたUIなんだろうか

もしどうしてもやる場合は
俺ならオフスクリーンバッファにどのUIがトップかを書くかな

868 名前:名前は開発中のものです。 mailto:sage [2014/06/08(日) 22:43:04.22 ID:vGgKRzGn.net]
z値をインデックスにすれば深度マップで取得できるんじゃね?
と思ったけど、vramアクセスはパフォーマンス悪そうだな

869 名前:名前は開発中のものです。 mailto:sage [2014/06/09(月) 13:50:23.16 ID:z2Jj9BRG.net]
OpenGLのポリゴン描画で影を描画すると、影が赤くなるんだけど、黒くする方法ってある?
スレチだったらごめん・・・

870 名前:名前は開発中のものです。 mailto:sage [2014/06/09(月) 15:07:01.85 ID:F4+Sq4Or.net]
方法も何も、そもそも赤くするコードを書かない限り赤くならない。

871 名前:名前は開発中のものです。 mailto:sage [2014/06/09(月) 15:12:29.18 ID:HlN0nBf5.net]
「プログラムは思ったとおりには動かない。書いた通りに動く」ってな
物凄いレアケースでハードウェア絡みかもしれんが
もう一度コードを見直しが先決かねえ

872 名前:名前は開発中のものです。 mailto:sage [2014/06/09(月) 18:40:16.51 ID:EHfKfPgC.net]
エスパーするが
色構造体のバイトオーダー間違ってないか

873 名前:名前は開発中のものです。 mailto:sage [2014/06/09(月) 22:51:10.63 ID:OtG7NFYQ.net]
OpenGLで通常のモデルはちゃんとでて、影だけおかしいとかだと、
LIGHTINGやTEXTUREのEnable/Disableの切り替え忘れとかがありがちかなぁ

874 名前:名前は開発中のものです。 [2014/06/09(月) 23:44:28.20 ID:hvcdW5Tu.net]
DXライブラリをEclipseで使うやり方を教えて下さい。
詳細に教えてなんて言わないんで、解説してくれているサイトを教えて下さい。
情報が少なすぎるのか、調べ方が悪すぎるかのどちらかで、

875 名前:アホな初心者にはできません。 []
[ここ壊れてます]

876 名前:名前は開発中のものです。 mailto:sage [2014/06/09(月) 23:45:24.91 ID:6mNjaANt.net]
GL_REDの影テクスチャをそのまま掛けてるとか?
vec3 out = in * texture2D(shadow, uv).rrr;
みたいにする。



877 名前:名前は開発中のものです。 mailto:sage [2014/06/09(月) 23:53:17.10 ID:Cpf1syLL.net]
>>849
「exlipse DXLib」の検索ワードだけでゴロゴロ出てきたんだが?

878 名前:名前は開発中のものです。 mailto:sage [2014/06/10(火) 00:12:02.20 ID:U4gTkVOf.net]
>>851
ageてしまった。

それは以前にやったのですが、よく理解できませんでした。
ttp://moge32.jugem.jp/?eid=136
検索2位(1位は繋がらない)ここに書いてあることは直接Eclipseのことを書いてないように思うのですが、
これが必要最低限の情報だったりするんですか?

879 名前:名前は開発中のものです。 mailto:sage [2014/06/10(火) 00:57:17.61 ID:SZhDftiM.net]
そのキーワードでググって1位見れたよ。
何か重くて表示されなかっただけでね。
キャッシュからも表示できたし。

880 名前:名前は開発中のものです。 mailto:sage [2014/06/10(火) 07:35:08.91 ID:iWwQEe0D.net]
よく知らないが、Eclipseで、
ライブラリのパスを参照設定するだけじゃないの?
他に、何かすることがあるの?

881 名前:名前は開発中のものです。 mailto:sage [2014/06/10(火) 10:32:37.64 ID:+XEl/HM2.net]
デバッグや配布時に設定が必要くらいでね

882 名前:名前は開発中のものです。 mailto:sage [2014/06/10(火) 10:47:00.49 ID:WVu4972r.net]
EclipseよりVisualStudioのほうがいいんだけどね
きっとインストール権限ない環境かハードディスク残量の問題なんだろうね

883 名前:名前は開発中のものです。 mailto:sage [2014/06/10(火) 15:15:51.09 ID:YWMLszVd.net]
宗教上使えない人もいるのです

884 名前:名前は開発中のものです。 mailto:sage [2014/06/10(火) 19:07:12.75 ID:O01gD3CA.net]
棄教しろバカ。
棄教できなければ.NET framework神に詫びながら死ね。

885 名前:名前は開発中のものです。 mailto:sage [2014/06/10(火) 21:45:01.86 ID:8Lf3BwfT.net]
EclipseもNetBeansもクソ

886 名前:名前は開発中のものです。 mailto:sage [2014/06/11(水) 09:08:28.52 ID:0bKjwM6R.net]
Win以外の開発はどうするのさ



887 名前:名前は開発中のものです。 mailto:sage [2014/06/11(水) 09:16:03.77 ID:WKLN/gkV.net]
でた!屁理屈。Window以外でDXライブラリでゲームを作成されてるのですね。
でしたら、お好きな環境を選択されればよろしいとおもいますよ?

888 名前:名前は開発中のものです。 mailto:sage [2014/06/11(水) 09:21:09.41 ID:0bKjwM6R.net]
いやdxでとは言ってないが
OpenGLでいいでしょ
マルチプラットフォーム対象にするときどうすんの?

889 名前:名前は開発中のものです。 mailto:sage [2014/06/11(水) 09:25:44.99 ID:WKLN/gkV.net]
>848

てか、だから好きにすればいいよ

890 名前:名前は開発中のものです。 mailto:sage [2014/06/11(水) 09:27:05.23 ID:x/9Nmlpu.net]
実際のところゲーム会社ってWindowsとMacだったらどっちが多いの?
あと、プログラミング言語とかライブラリとか
そもそもUnityの会社だってあるし・・・

891 名前:名前は開発中のものです。 mailto:sage [2014/06/11(水) 09:47:50.90 ID:z9TU/419.net]
スマホ向けは大概Mac
MacのXCodeじゃないとiOS向けにコンパイル出来ないので
その環境でAndroidアプリも作るからeclipseも入れる
Unityも結局iOS向けはコンパイルにMac必要だからMacになる
Win向けはまあVisual Studioでしょ
コンシューマはわからんけど箱むけならVisual Studioなんじゃない

892 名前:名前は開発中のものです。 mailto:sage [2014/06/11(水) 09:54:53.44 ID:EKg7DQSq.net]
VisualStudioが強すぎるのと周辺ツールの関係からWindowsが圧倒的

893 名前:名前は開発中のものです。 mailto:sage [2014/06/11(水) 09:55:26.50 ID:7EYJGMHz.net]
>>864
コンシューマは基本C++で、ライブラリはそれぞれのプラットフォーム用に作られたライブラリ使ってる。
Windows上でデバッグするときは苦肉の策でOpenGLとかで似たように作る。

894 名前:名前は開発中のものです。 mailto:sage [2014/06/11(水) 09:59:16.67 ID:a2WXiZKM.net]
ゲームエンジンならだいたい両方用意されてる。
今なら、Unrealengine4とかCryengineとか。

開発環境ではなくてゲーム本体でPCなら圧倒的にwindows

895 名前:名前は開発中のものです。 mailto:sage [2014/06/11(水) 11:58:39.64 ID:kbUVkmhq.net]
>>863
つまりVSはWindows用の開発以外は使えないって事?
個人開発ならそれでいいけどコンシューマ向けだとキツいと思うんだが
実際の現場ってどうなってんの

896 名前:名前は開発中のものです。 mailto:sage [2014/06/11(水) 12:36:38.52 ID:0cMdPBr+.net]
コンシューマではXBOXのことも忘れないであげてください



897 名前:名前は開発中のものです。 mailto:sage [2014/06/11(水) 12:36:48.51 ID:korZFgLA.net]
>>869
ソニーはVisualStudioで動くやつとgccでのコマンドラインでの開発が選べるのが定番

898 名前:名前は開発中のものです。 mailto:sage [2014/06/11(水) 12:48:01.72 ID:kbUVkmhq.net]
>>870-870
じゃあとりあえずVS使えればゲームプログラマにはなれそうな感じなのかな

899 名前:名前は開発中のものです。 mailto:sage [2014/06/11(水) 13:04:58.50 ID:korZFgLA.net]
>>872
いや、VS使うだけなら出来て当然なので
あんま意味ない
使えればプログラムかけるかっつーとそんなことはないわけで

APIとかだいたい独自なので、マニュアル読んで理解して使いこなす能力がないとお話にならない

900 名前:名前は開発中のものです。 mailto:sage [2014/06/11(水) 13:42:18.25 ID:7WXZfC9n.net]
なんで皆そんなに業界に詳しいの?
プロなの? それとも聞きかじり情報?

901 名前:名前は開発中のものです。 mailto:sage [2014/06/11(水) 17:05:26.88 ID:0icQ1bsR.net]
妄想

902 名前:名前は開発中のものです。 mailto:sage [2014/06/11(水) 19:56:24.00 ID:ZrP26BdU.net]
VSとかEclipseとかXCodeとかUnityとかUEが使える使えないじゃなくて
どんな環境でもプログラム書いて動かすものが作れるっていうのが重要なわけで
弘法筆を選ばず

903 名前:名前は開発中のものです。 mailto:sage [2014/06/11(水) 21:51:51.20 ID:WrX8Es+8.net]
でも成熟した産業だし、デファクトスタンダードとかあるんじゃないの
OSX&#8226;iOSならXCode、Androidならeclipseで鉄板だし
コンシューマは各プラットフォームのライブラリ使えればVSで行けるみたいだし
学習するならとりあえずターゲット絞った方がいいと思うけど

ゲーム会社に就職するなら、だけど

904 名前:名前は開発中のものです。 mailto:sage [2014/06/11(水) 21:55:19.66 ID:7WXZfC9n.net]
>>876

弘法じゃない凡人は一本の筆を使いこなせるようになるにも一苦労なので筆を選ばざるをえない。

905 名前:名前は開発中のものです。 mailto:sage [2014/06/11(水) 22:00:45.16 ID:SywAyYwT.net]
どれか一つのIDEをしばらく使ってみて、ビルドの工程が理解できてくれば、
どんなIDEでも基本的な操作は出来るようになるよ

906 名前:名前は開発中のものです。 mailto:sage [2014/06/11(水) 23:04:20.34 ID:7MaR9GBn.net]
特定のIDEに習熟しようとしたって、
どうせ習得してはまた新たな壁にぶつかるという
ラッキョウの皮をむくようなことになるだけだけどな。

IDE らっきょ



907 名前:名前は開発中のものです。 mailto:sage [2014/06/11(水) 23:08:17.00 ID:V2TD8Zeq.net]
>>877
Xcode とかバージョンかわるたびに前のプロジェクトがうまく動かなくなるとかざらにあるので、求められるのは与えられたものを調べてすぐつかいこなす能力

908 名前:名前は開発中のものです。 mailto:sage [2014/06/11(水) 23:22:36.32 ID:6wElIYFK.net]
NetBeansなんてなかった

909 名前:名前は開発中のものです。 mailto:sage [2014/06/11(水) 23:30:44.92 ID:SywAyYwT.net]
>>880
言いたいことは分かるけど、
>ラッキョウの皮をむく
って例え、経験がないから分からんかったわww
通だなwww

910 名前:名前は開発中のものです。 mailto:sage [2014/06/12(木) 06:43:31.61 ID:L8Vso62K.net]
個人でコンシューマーゲーム作ってみようと思うんだけど、個人でもライブラリが手に入るハードってある?
できればVSで動くライブラリだと助かる
一応ゲーム制作経験はあるから、リファレンスがあれば作れると思う

911 名前:名前は開発中のものです。 mailto:sage [2014/06/12(木) 07:17:39.83 ID:vRgUoWDI.net]
そういう質問をするレベルの人間がコンシューマの開発をしようと考えること自体が、馬鹿の極み。

912 名前:名前は開発中のものです。 mailto:sage [2014/06/12(木) 07:39:46.78 ID:WfpU2RZu.net]
今時のメジャーなゲームハードでは
個人に対しては制限された環境しか与えられていない

913 名前:名前は開発中のものです。 mailto:sage [2014/06/12(木) 07:56:48.31 ID:0sQ/4i7b.net]
XBoxでXNAで作ったゲーム配信出来るサービスなかったっけ

914 名前:名前は開発中のものです。 mailto:sage [2014/06/12(木) 09:00:44.47 ID:E66MRmQE.net]
XNAはC#とかで、C++ではない
VITAのPSMもC#

915 名前:名前は開発中のものです。 mailto:sage [2014/06/12(木) 09:25:52.94 ID:zPikE+yO.net]
unreal

916 名前:でもやっとけ。個人でもライセンス契約すればコンシューマー開発できるぞ。
ライセンス料がいくらかは知らない
[]
[ここ壊れてます]



917 名前:名前は開発中のものです。 mailto:sage [2014/06/12(木) 10:16:44.91 ID:eRzlOATi.net]
まあ簡単な開発環境いっぱいあるし、1からゲームエンジン作るくらいの気概ないとC で作る意味ないよな

918 名前:名前は開発中のものです。 mailto:sage [2014/06/12(木) 14:02:33.71 ID:CRNljBu4.net]
>>884
PSPならPSP版DXライブラリもあるし割となんでもできるんじゃね

919 名前:名前は開発中のものです。 mailto:sage [2014/06/12(木) 15:39:57.02 ID:idpLfuQS.net]
>>884
一応きくけど作れたとしてそれを売ろうとしたらライセンス料いるって知ってる?

920 名前:名前は開発中のものです。 mailto:sage [2014/06/12(木) 17:13:06.20 ID:EGqf6ecZ.net]
>>884
monogame辺りがフリーかな
PSMとかPS4も対応するみたいだけどライセンス大変そう
仕様はまんまXNAなんでそれらサンプルや資料がそのまま使える
開発活発はただしC#

921 名前:名前は開発中のものです。 mailto:sage [2014/06/13(金) 02:31:14.01 ID:BxeyyLjb.net]
プラットフォームのロイヤルティと
ライブラリやエンジンの利用料をごっちゃにするな

売上なくても固定費取られるんだっけ?

922 名前:名前は開発中のものです。 mailto:sage [2014/06/13(金) 15:25:42.09 ID:O3W0ptm6.net]
PSMは年間8千円くらいだって以前ここで読んだ
PS4のインディーはどうなってるのかな?

923 名前:名前は開発中のものです。 mailto:sage [2014/06/13(金) 23:11:27.36 ID:NBfAH6Dj.net]
PlayStationMobileのパブリッシャーライセンスなら、今は無料じゃないかな(期間限定、終了日未定)

924 名前:名前は開発中のものです。 mailto:sage [2014/06/14(土) 01:29:28.56 ID:u1apXmDd.net]
それ先に言えよ!
登録してくる

925 名前:名前は開発中のものです。 mailto:sage [2014/06/14(土) 08:02:38.08 ID:cW1M/S3K.net]
LeadWerksじゃだめなん?
\10,000前後で再配布無料だし

926 名前:名前は開発中のものです。 mailto:sage [2014/06/14(土) 14:15:25.01 ID:6iOYhCEE.net]
ヘッダーファイルの相互参照を回避するために
class "MapAnimationAdmin";
と前方宣言したんですが
forward declaration of 'struct MapAnimationAdmin'
という構造体と勘違いされているのかエラーが出て出来ません

VisualStudioだと出来たと思うんですが、Eclipseだと出来ないんでしょうか?



927 名前:名前は開発中のものです。 mailto:sage [2014/06/14(土) 14:40:49.76 ID:37JUYTf3.net]
1) ヘッダ内でnew MapAnimationAdmin()しているのが原因 → cppの中でやる
2) #includeの順番がおかしい事に起因している → 順番を正しくする

チェックする場所はこんな所かな

928 名前:名前は開発中のものです。 mailto:sage [2014/06/14(土) 15:56:40.17 ID:6iOYhCEE.net]
すいません、cppのほうでincludeしたら何故かh側のエラーが無くなりました

929 名前:名前は開発中のものです。 mailto:sage [2014/06/14(土) 17:18:02.71 ID:uMwrWsOs.net]
cppでincludeするのは大前提というかなんというか

930 名前:名前は開発中のものです。 mailto:sage [2014/06/14(土) 17:54:22.34 ID:6iOYhCEE.net]
includeされた側にincludeした側のエラーが出るとは思ってもいなくて

931 名前:名前は開発中のものです。 mailto:sage [2014/06/14(土) 18:46:03.04 ID:37JUYTf3.net]
まぁ、c系のエラーメッセージは判り難いからね。

932 名前:名前は開発中のものです。 mailto:sage [2014/06/18(水) 19:56:58.90 ID:ma8cg4mp.net]
今からゲーム作るとしたらDirectX11でいいのかな
まだXP持っててもゲーム用じゃ使わないだろうし

933 名前:名前は開発中のものです。 mailto:sage [2014/06/18(水) 20:07:43.69 ID:CzJGNNdh.net]
1から作るならそれがベストだと思う。
なかなか過去の遺産って捨てらんないよね…

934 名前:名前は開発中のものです。 mailto:sage [2014/06/18(水) 20:16:18.23 ID:N8Tb0KHM.net]
他のプラットフォームに移行を考えてOpenGLていう選択肢も
DirectX12で軽量化やGPU活用の為にまた変わるみたいだし

直よりパフォーマンスは落ちるけどレンダラーだけ切り替えられるマルチプラットフォームの
グラフィックスライブラリやゲームエンジンも有り

935 名前:名前は開発中のものです。 mailto:sage [2014/06/18(水) 20:37:44.57 ID:FAN59TRz.net]
ゲーム作るときの選択肢コピペ誰かつくったら?自分的には↓
DirectX9...古いけど十分、でも古い
DirectX11...現行なので普通はこっち、ゲームエンジンやプログラミングの学習も兼ねるなら迷わずこれ
OpenGL(CP3.2)...マルチプラットフォームなので他機種での動作が可能、ただしライブラリ設計がクソ、他のライブラリにかなり頼る
Ogre3D...将来性も情報量もなし、使うべきでない
Unity...上位機能を望まなければ簡単なプログラミングでゲームが作れる、簡単にゲームを作りたいだけならこれ

C#だがSharpDXやMonoGameもおすすめ

936 名前:名前は開発中のものです。 mailto:sage [2014/06/18(水) 23:31:34.64 ID:a3SIvP3s.net]
OpenGL = Direct3D - D3DX
って感じでシンプルだけどクソではないだろ



937 名前:名前は開発中のものです。 mailto:sage [2014/06/19(木) 00:13:10.79 ID:nLPcoi9X.net]
普及の問題からDirectX9使っとけば間違いないって時代は終わったのか

938 名前:名前は開発中のものです。 mailto:sage [2014/06/19(木) 00:23:12.04 ID:lO1Eej6E.net]
OpenGLがクソな理由
cpplover.blogspot.jp/2014/05/opengl.html

XNAもかなりよかったんだが開発停止して昔のVisualStudioを使わないといけないから、もう古いな

939 名前:名前は開発中のものです。 mailto:sage [2014/06/19(木) 00:40:27.02 ID:D4AdegVY.net]
DirectXは何度か改修してるからな10の時にも一気に整理されたし
12でまた同じような事するんだろうな

(・・・・もう覚えるの面倒です)

940 名前:名前は開発中のものです。 mailto:sage [2014/06/19(木) 01:05:20.37 ID:6/D2oQWW.net]
>>911
そこに書いてあることを理由にクソと言い切るのは
ゲーム製作を始める初心者に誤解を招くだけ

941 名前:名前は開発中のものです。 mailto:sage [2014/06/19(木) 01:29:04.41 ID:lO1Eej6E.net]
>>913
OpenGLも選択肢にはなるのは分かるけど……
なによりもオブジェクト指向な書き方ができないのがツラい
技術発表はOpenGLでの実装が多いから先端の技術に興味ある人はいいんだろうけど

942 名前:名前は開発中のものです。 mailto:sage [2014/06/19(木) 08:14:04.04 ID:31au4KtM.net]
>>908
Ogreが情報量少ないて何の冗談だ?将来性は今も開発進んでてIrrlichtよりマシだし
SharpDXとかMonoGameてDirextX9相当だし今時のシェーダーが組めない

943 名前:名前は開発中のものです。 mailto:sage [2014/06/19(木) 08:27:50.13 ID:BMdZ3LEO.net]
SharpDXがDirectX9相当とか
お前こそ何言ってんだ

944 名前:名前は開発中のものです。 mailto:sage [2014/06/19(木) 08:49:07.49 ID:6/D2oQWW.net]
>>914
自分でステータス管理、バッファ管理その他諸々の処理書けばオブジェクト指向で書けるじゃん
DirectXでもAPI直叩きは気持ち悪くて同じような処理書くことになるし

945 名前:名前は開発中のものです。 mailto:sage [2014/06/19(木) 09:03:30.40 ID:31au4KtM.net]
すまん本当に何言ってたんだろう、SharpDX使った事あるのになんかDXライブラリと勘違いしてたかもしれない

946 名前:名前は開発中のものです。 mailto:sage [2014/06/19(木) 10:23:59.18 ID:88xd9jEp.net]
そもそもレイヤの違うもの並べてどうするのと



947 名前:名前は開発中のものです。 mailto:sage [2014/06/19(木) 11:41:58.64 ID:ioG87yMm.net]
DirectXは手続きがめんどくさくてラップすることはあるけど
OpenGLはラップしてると何故か気持ち悪くなる

948 名前:名前は開発中のものです。 mailto:sage [2014/06/19(木) 15:49:23.76 ID:5ywlWImO.net]
マリオカートみたいなの作るとして
キャラクターごとにクラス作るか、キャラクターというクラス作ってパラメーターとかモデルを登録する方式にするか迷うんだけどどうしますかね

949 名前:名前は開発中のものです。 mailto:sage [2014/06/19(木) 16:22:56.31 ID:OzKIEc04.net]
後者でしょ

950 名前:名前は開発中のものです。 mailto:sage [2014/06/19(木) 19:46:32.64 ID:OSALf3vF.net]
>>922
>>922が言うようにキャラクタークラス作ってパラメーターやモデルを登録する方式が良い

ただ、キャラクタークラスを継承したキャラクター毎のクラスが在ってもいいとは思う

951 名前:名前は開発中のものです。 mailto:sage [2014/06/19(木) 19:56:52.61 ID:c9nisOjB.net]
キャラクター毎に全く挙動が変わるならそれぞれクラス作るのもありだと思う

952 名前:名前は開発中のものです。 mailto:sage [2014/06/21(土) 00:11:03.73 ID:tuXXF6Tj.net]
問題は、ゲーム時ループ中などの速さが要求される箇所で、
個体複雑性に起因する条件分岐が増えるのをどう回避するか、か。

末端(=キャラ個体)に複雑さを集約するか、
流れ制御側(=タスクシステム、メイン

953 名前:求[プ)に複雑さを押し付けるかだな
どちらも楽しそうだな
[]
[ここ壊れてます]

954 名前:名前は開発中のものです。 mailto:sage [2014/06/21(土) 00:30:22.54 ID:EKUWcmyO.net]
その程度の分岐で処理落ちが起きたりせんよ
ロジックとして分かりやすく簡潔にかける方を選んどけ

速さを求めるのは衝突判定とか描画部分だけで良い

955 名前:名前は開発中のものです。 mailto:sage [2014/06/21(土) 07:10:24.87 ID:5/Sd9UCE.net]
最近、フィルレートにばっかり処理の比重を取られて、CPUがかなり遊んでいる状態。

956 名前:名前は開発中のものです。 mailto:sage [2014/06/21(土) 11:22:51.25 ID:iamZ/Ql4.net]
>>925
クラスに細分化した所で関数呼び出しがvtable一個分の呼び出しロスぐらいで
分岐は生成時位しかしなくない?
状況で変わるようなのはステートパターンだろうし
挙動だけ別クラスでキャラクタークラスに差し込みしても同じ程度だろう



957 名前:名前は開発中のものです。 mailto:sage [2014/06/21(土) 15:35:14.32 ID:29GFkBgY.net]
ゲームループ内で毎回どのキャラか判定するつもりなのかもしれない

958 名前:名前は開発中のものです。 mailto:sage [2014/06/21(土) 18:38:49.94 ID:ATU6QwSf.net]
無能な奴ほど、最適化しても誤差に吸収されてしまいそうな部分にこだわるんだよね。

959 名前:名前は開発中のものです。 mailto:sage [2014/06/21(土) 20:19:11.38 ID:tuXXF6Tj.net]
「無能な奴」でない奴の作品を検証させろよ^^

960 名前:名前は開発中のものです。 mailto:sage [2014/06/21(土) 23:30:52.31 ID:mvCTHax3N]
^^つけないと会話できんのか!!!

961 名前:名前は開発中のものです。 mailto:sage [2014/06/22(日) 01:29:43.57 ID:0HERkbyf.net]
>>930
「早すぎる最適化は諸悪の根源である」ってやつだね。
そういうのは遅さが気になってから手をつける部分なのにね。

962 名前:名前は開発中のものです。 mailto:sage [2014/06/22(日) 08:34:06.04 ID:csKh83iE.net]
コードの最適化は最後でいいけど、設計の最適化はコーディング前にやっとかないと修正で地獄見るぞ

963 名前:名前は開発中のものです。 mailto:sage [2014/06/22(日) 12:42:14.46 ID:EwYApkfm.net]
RPGの技ってどうやってるの?
やっぱりラムダ式をmapに入れてるの?

964 名前:421 mailto:sage [2014/06/22(日) 17:30:21.94 ID:So0IxHSH.net]
スプライトアニメーションのアルゴリズムを作っているのですが、
拡大・角度・移動の情報を格納した構造体を3次元配列で保持したいです。
当初は
SAnimationNode animations[MOTION_NUM_SIZE][FRAME_NUM_SIZE][IMAGE_NUM_SIZE];
としていたのですが、よく考えたらキャラクターごとに画像の枚数やアニメーションのフレーム数が違いました
動的配列の部分をvector型にしようとしたら
vector< vector<SAnimationNode> > animations[MOTION_NUM_SIZE];
となったんですが、これは
SAnimationNode animations[FRAME_NUM_SIZE][IMAGE_NUM_SIZE][MOTION_NUM_SIZE];
こういう意味になってしまわないでしょうか?

965 名前:名前は開発中のものです。 mailto:sage [2014/06/22(日) 18:17:04.62 ID:6teQhgwq.net]
>>936
vector< vector<SAnimationNode> > animations[MOTION_NUM_SIZE];
 ↓
animations[MOTION_NUM_SIZE][FRAME_NUM_SIZE][IMAGE_NUM_SIZE]
となるんじゃない?

966 名前:名前は開発中のものです。 mailto:sage [2014/06/24(火) 13:14:27.79 ID:Uog3JQdr.net]
いまいち文字コードについてがわからん。
Windows上でUTF8,UTF16LE,CP932を相互変換したいんだけど、
マルチバイト?ワイド文字?で混乱



967 名前:名前は開発中のものです。 [2014/06/24(火) 13:33:03.26 ID:IbY2i7BW.net]
マルチバイト、ワイド文字と、文字コードは別。
windowsでは単に、8ビット単位と16ビット単位で扱うかどうかの差。

968 名前:名前は開発中のものです。 mailto:sage [2014/06/24(火) 13:58:16.35 ID:Uog3JQdr.net]
>>939
マルチバイト文字→ShiftJis,UTF8,EUCJP
ワイド文字→UTF16,UCS-2
でいいの?

969 名前:名前は開発中のものです。 mailto:sage [2014/06/24(火) 14:27:45.13 ID:GPkpIMQJ.net]
字義的には、一文字をあらわすのに複数の可変長のバイトをつかうのがマルチバイト
同じサイズのワード値をつかうのがワイド文字
ワイド文字は固定長なのでプログラムが
単純になるので楽、というのが本来の想定

windows は歴史的に16bitのユニコード
(UCS2)を内部コード兼ワイド文字としてつかってたんだけど
ユニコード

970 名前:が拡張されて、16bit 可変長(UTF16)になってしまい、
ワイド文字自体は拡張せずそのまま16bitとしたのでの「ワイド文字」を使ってても
マルチバイトと同じことする必要があってプログラム上のメリットは薄れてしまってます

ワイド文字は環境固有の内部データで
統一仕様が無いので、外部とのやりとりは
かならずマルチバイト文字列を使うのが原則
Unix系だとワイド文字は普通32bitです

そういう意味では、そこにでてる名前は全部規格で仕様決まってるのでマルチバイトです。たまたま固定長なだけ

Win環境に限ればAPIで「ワイド文字」
というとUTF16のことで、変換関数で
指定のマルチバイトと変換できます。
UCS2は可変長部分をのぞけばUTF16と合致します

他のOSではそうとは限らないので注意が必要。
マルチバイトのファイルは共有できるけど、ワイド文字はあくまでプログラム内部でつかうもの。
完全に環境依存しないためには、
ポータブルな文字コード変換ライブラリの準備と、
ワイド文字仕様を自分で決めて対応する必要があります
[]
[ここ壊れてます]

971 名前:名前は開発中のものです。 mailto:sage [2014/06/24(火) 14:34:10.01 ID:GPkpIMQJ.net]
長々かいちゃつたけど、ワイド文字は、その環境で使える全ての文字を含むことになってるので

指定のマルチバイト→ワイド文字→指定のマルチバイト

とすれば文字コード変換できることになります

972 名前:名前は開発中のものです。 mailto:sage [2014/06/24(火) 16:00:12.61 ID:F5vPhfmG.net]
マルチプラットフォーム前提のゲームの場合、
文字列はwstring型でUTF16で格納しておくのが最善策かな?

973 名前:名前は開発中のものです。 [2014/06/24(火) 16:03:01.31 ID:IbY2i7BW.net]
マルチプラットフォームだったらUTF8では。
UTF16を使ってるのはWindowsくらいで。
Windowsを使ってるならUTF16でいい。

974 名前:名前は開発中のものです。 mailto:sage [2014/06/25(水) 03:34:26.90 ID:tRPy5vnQ.net]
C++でUTF8は面倒だ

975 名前:名前は開発中のものです。 mailto:sage [2014/06/25(水) 07:19:47.27 ID:i6nom8bR.net]
簡単に文字コード変換出来るライブラリはないのかね
ググった感じだとICUってのが良さそうだけど、ライセンスがよくわからん
誰か要約してくれ
source.icu-project.org/repos/icu/icu/trunk/license.html

976 名前:名前は開発中のものです。 mailto:sage [2014/06/25(水) 23:42:32.69 ID:sN1oXLi0.net]
Unityが便利なのはわかるんだけど、プログラミングが好きだから
全部コード書いてるって人は少なからずいる・・・よね・・・



977 名前:名前は開発中のものです。 mailto:sage [2014/06/26(木) 00:08:17.74 ID:2eOLOr66.net]
unity使ったことないけど凝ったことやろうとすると結局コード書かないといけないって話は聞いた

978 名前:名前は開発中のものです。 mailto:sage [2014/06/26(木) 00:12:12.19 ID:G3Ghr1l9.net]
>>947
俺もそれしたいんだけど重くなりそうじゃないか?
もともと遅いのに素材の最適化効かないし

979 名前:名前は開発中のものです。 mailto:sage [2014/06/26(木) 01:31:37.50 ID:KO+8FPHu.net]
Unityってよく知らんのだがコード書かずにゲーム作れるのか?
すげぇな。

980 名前:名前は開発中のものです。 mailto:sage [2014/06/26(木) 04:40:53.24 ID:BP57VnwG.net]
C#とかでコード書かんと

981 名前:名前は開発中のものです。 mailto:sage [2014/06/26(木) 05:42:45.22 ID:AmOKqMVz.net]
RPGツクールならコード書かなくてもゲーム作れるね

982 名前:名前は開発中のものです。 mailto:sage [2014/06/26(木) 07:52:49.33 ID:vdSX1b1y.net]
>>948
まぁ凝ったことするなら結局自分で実装しなきゃいけないけど
凝らないところはぺいぺいってできるよ

>>949
処理速度とかは自分ができる範囲でいいかな
商用じゃないなら製作者が好きなようにすればいいと思う

983 名前:名前は開発中のものです。 mailto:sage [2014/06/26(木) 08:15:53.02 ID:rGvRjoRE.net]
いつからゲームはツクールみたいなツールで作るようになってしもうたん
もはやプログラマーじゃないじゃん
コードを書いてなんぼだろ
マウスでぽちぽち画面操作してるだけでゲームができてしまうなんて許されんだろこれは

984 名前:名前は開発中のものです。 mailto:sage [2014/06/26(木) 08:29:15.09 ID:RxAyclSt.net]
マシンの性能が昔とは比較にならないので、カリカリにチューニングするより汎用エンジンで生産性をあげた方がコストかかんないし品質も上げやすいだろうね
限界までパフォーマンス突き詰める

985 名前:ネら自分で書くしかないだろうけど、半端なスキルで自作しても汎用エンジンより低性能になるだけだろうな… []
[ここ壊れてます]

986 名前:名前は開発中のものです。 mailto:sage [2014/06/26(木) 08:32:54.24 ID:a944jii7.net]
グラフィカルになってもプログラマーの
やるべき仕事の本質は変わらんべ

コード書く密度量が減っても
そのぶん規模が大きくなってる

昔からその繰り返しじゃん?



987 名前:名前は開発中のものです。 mailto:sage [2014/06/26(木) 10:31:17.39 ID:HDqbSuB3.net]
>>954
企画書があってこそコード書いてなんぼな状況になる
しかしプログラマの多くは企画書が書けないので、簡素なものに頼ってる

988 名前:名前は開発中のものです。 mailto:sage [2014/06/26(木) 10:43:16.51 ID:ROLnmccF.net]
スレチなのでそろそろ終わったほうがいいと思うが、

unityの無料版は非同期ロードが出来ないみたいだね。個人的にはここが致命的かな。
だからといって有料版買おうと思うほど、高度にグラフィカルなゲーム作ってる訳でもないし。

要件と費用対効果がいい感じになるのなら便利なんだろうけどな。

989 名前:名前は開発中のものです。 mailto:sage [2014/06/26(木) 10:52:26.33 ID:KO+8FPHu.net]
ゲームが作れるならコードだろうがツールだろうが構わないと思うが、
ツールは固有の使い方を覚えないといけないから
物覚えの悪い俺には不向きだ……。

とはいえ最近はUnity使えるとそれだけで有利なんだよなぁ……

990 名前:名前は開発中のものです。 mailto:sage [2014/06/26(木) 15:00:55.14 ID:BP57VnwG.net]
最近下ろしてみたらスプライトエディタまで実装してあるし
なんかすごい事になってるな

991 名前:名前は開発中のものです。 mailto:sage [2014/06/26(木) 22:20:03.49 ID:vxlMCzXq.net]
>>946
流し読みした限りでは、ヒゲモジャ教祖のコピーレフトじゃないほうの
つまり緩いほうのフリーソフトのライセンスの典型的な文言かと。
ちょっと自信なかったのでFAQのほうも読んでみました

userguide.icu-project.org/icufaq
の「How is the ICU licensed?」によれば

>a simple, permissive non-copyleft free software license,
>compatible with the GNU GPL.
>The ICU license is identical to the version of the X license

という事なので、Xライセンス(MITライセンス)と同じみたいですね

992 名前:名前は開発中のものです。 mailto:sage [2014/06/26(木) 22:44:18.33 ID:LTYq6LHZ.net]
>>961
おお、要約サンクス
MITと同じって事は著作権表示しとけば好きに使っていいのか
ちょっと触ってみようかな

993 名前:名前は開発中のものです。 mailto:sage [2014/06/27(金) 00:21:52.45 ID:ca0yLnFP.net]
ICUはすごいけど、でかすぎて大抵の用途に不向きよ

994 名前:名前は開発中のものです。 mailto:sage [2014/06/27(金) 04:25:38.40 ID:3FddD6R4.net]
絶望

995 名前:名前は開発中のものです。 mailto:sage [2014/06/28(土) 01:52:31.46 ID:Qml0dYMK.net]
ゲーム重視の会社・・・Unityが出来ればいい
プログラミング重視の会社・・・オブジェクト指向が出来ればいい
古さ重視の会社・・・C言語とUNIXが出来ればいい

だったらどれが一番多い?

996 名前:名前は開発中のものです。 mailto:sage [2014/06/28(土) 01:53:20.27 ID:/Aw0cnXs.net]
3つ×(バツ)を付けて
ちょっぴり大人さ



997 名前:名前は開発中のものです。 mailto:sage [2014/06/28(土) 01:59:32.24 ID:qVQSlIJD.net]
左と右がまったく合っていないので答えられません。

998 名前:名前は開発中のものです。 mailto:sage [2014/06/28(土) 09:07:15.04 ID:fYNbwyWm.net]
エンジンあれば簡単にゲームできると勘違いしている会社・・・Unityが出来ればいい
ツールはつくれても面白いゲームは作れない会社・・・オブジェクト指向が出来ればいい
時代の流れに完全に取り残されてる会社・・・C言語とUNIXが出来ればいい

こうかな…さすがにCとUNIXだけってゲーム会社はもうないかな

999 名前:名前は開発中のものです。 mailto:sage [2014/06/28(土) 13:14:02.98 ID:pkvK53ex.net]
>>962
私はpocoライブラリを使ってる都合で文字コード変換はしますけど
UTF-16⇔UTF-8のみなのでMSのAPIで済ませてます。簡便ですので

1000 名前:名前は開発中のものです。 mailto:sage [2014/06/28(土) 13:30:50.89 ID:UFXBTkrK.net]
Unicode相互変換ってC++11で標準ライブラリに入らなかったっけ?
使い方

1001 名前:ヘよく分からんけど []
[ここ壊れてます]

1002 名前:名前は開発中のものです。 mailto:sage [2014/06/29(日) 13:10:50.88 ID:Yl1HyccO.net]
最近のゲーム会社って偉そうだよね
楽して儲かるゲーム作っといてそれを言うなよって感じ・・・

1003 名前:名前は開発中のものです。 mailto:sage [2014/06/29(日) 15:05:01.46 ID:OwKWjPKS.net]
ttp://www.nicovideo.jp/watch/sm23811893
大爆笑

1004 名前:名前は開発中のものです。 mailto:sage [2014/07/01(火) 19:21:53.76 ID:14799agU.net]
>>972
誰か無料のゲームエンジンの存在を教えてやれよ…
ゲームコーディングを知識ほぼ0の状態からスタートとか、挫折する未来しか見えない

1005 名前:名前は開発中のものです。 mailto:sage [2014/07/01(火) 19:24:44.84 ID:2U1HTXmR.net]
残念ながらこいつがゲーム開発しようと思い立ったのは何年も前
詳しくは月雫タクトで検索

1006 名前:名前は開発中のものです。 mailto:sage [2014/07/01(火) 21:31:57.05 ID:NbePC4/B.net]
>>974
コイツのことだろ

C/C++ゲーム製作総合スレッド Part4
peace.2ch.net/test/read.cgi/gamedev/1376262450/481

一時期、前スレに湧いてた「kazuki」って奴だろそいつ



1007 名前:名前は開発中のものです。 mailto:sage [2014/07/01(火) 22:44:05.97 ID:bRWh4YXo.net]
なんでそいつだと思ったの?

1008 名前:名前は開発中のものです。 mailto:sage [2014/07/01(火) 23:06:23.36 ID:2U1HTXmR.net]
やってることがいつも同じだし

1009 名前:名前は開発中のものです。 mailto:sage [2014/07/01(火) 23:09:44.15 ID:2U1HTXmR.net]

ttp://jbbs.shitaraba.net/bbs/read.cgi/game/49104/1355540267/l50

1010 名前:名前は開発中のものです。 mailto:sage [2014/07/02(水) 00:54:00.05 ID:hTKfgYQb.net]
ttp://nicovideo.jp/watch/sm22798006
こいつはすごいの?

1011 名前:名前は開発中のものです。 mailto:sage [2014/07/03(木) 13:20:31.93 ID:bmzuMbOZ.net]
Graphics Diagnostics in Visual Studio 2013 Update 3 RC
blogs.msdn.com/b/vcblog/archive/2014/07/02/graphics-diagnostics-in-visual-studio-2013-update-3-rc.aspx

1012 名前:名前は開発中のものです。 mailto:sage [2014/07/05(土) 21:27:49.06 ID:4rWl8Euu.net]
>>972
一生掛けてもテトリスすら作れなさそう

1013 名前:名前は開発中のものです。 mailto:sage [2014/07/05(土) 22:33:05.40 ID:mMkxAecd.net]
JAVAの職業訓練が終わったのかな。

1014 名前:名前は開発中のものです。 mailto:sage [2014/07/05(土) 22:37:30.46 ID:VPCAfWy5.net]
>>972 は茨の道を行ってると思うがバカにはできないだろ

1015 名前:名前は開発中のものです。 mailto:sage [2014/07/05(土) 23:15:37.36 ID:CJTkk+Ap.net]
行ってるならね。
もし他の人が言ってるようにkazukiなら行くいく詐欺で実際には行ってないことになる。

1016 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 00:52:20.23 ID:crYRPTpb.net]




1017 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 01:25:59.86 ID:LtkmUGY2.net]
fpsのくだりが秀逸

1018 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 09:18:10.68 ID:/OKy/hLS.net]
一応最後まで(スキップしまくりで)見たけど、なんかあまりにもアレすぎて
自己啓発セミナーか何かに見えるんだよなぁ…

1019 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 10:10:14.99 ID:/c1kpgiT.net]
自分のモチベの為にやってるパターンでしょ。

1020 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 13:31:10.89 ID:ij3Sb7R1.net]
そのモチベもゲーム製作より動画作って講釈垂れる方がメインのようなキガス

1021 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 19:13:55.67 ID:0XE4ySRd.net]
よく考えたオブジェクト指向に徹したらまともにインスタンスプールとか使えなくね?
2年ぐらいずっとゲーム中にインスタンス化してたわ

1022 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 23:36:27.31 ID:aXYLrS//.net]
現実にある問題を解決するのに最適な実装があるなら採用すればいいのであって
それをさせない、使わせない、徹底した指向などというものがあるなら、それは
単なる教条主義、カルト宗教、ゲーム作れないアタマでっかちの屁理屈。無価値

1023 名前:名前は開発中のものです。 mailto:sage [2014/07/07(月) 22:37:43.59 ID:eo+VXBvr.net]
プログラミングしかしないプログラマがそれを言うか?w

1024 名前:名前は開発中のものです。 mailto:sage [2014/07/07(月) 23:58:57.62 ID:vAXNC/8j.net]
ゴミグラマは所詮奴隷だからね。
威張れるのは大学まで。
大学卒業後は他人の手駒としてキリキリこき使われる運命なのだ。

1025 名前:名前は開発中のものです。 mailto:sage [2014/07/08(火) 00:07:38.81 ID:5BHEJoHN.net]
お前らすげーな
>>990-991の会話の流れが全く理解できない

1026 名前:名前は開発中のものです。 mailto:sage [2014/07/08(火) 00:21:10.51 ID:4Hc5PqSd.net]
>>992「もっと楽な方法あったわ」
>>993「頭の固いお前が悪い」
>>992「オマエモナー」
>>993「人間に戻りたいです」



1027 名前:名前は開発中のものです。 mailto:sage [2014/07/08(火) 06:37:39.35 ID:ZcFfD8ry.net]
実際の現場でプログラムしかしない要員なんてほとんどいないだろ
大概は設計から製造、テストまで一通りやらされる
プログラムだけの仕事はオフショアでやる

プログラムしかできないとかデバッグ要員にしかならん

1028 名前:名前は開発中のものです。 mailto:sage [2014/07/08(火) 13:06:36.01 ID:n3Bq3v3Y.net]
int main()
{
for(i=995;i<1000;i++)
std::cout << "埋め";
}

1029 名前:名前は開発中のものです。 mailto:sage [2014/07/08(火) 13:18:07.15 ID:qjtrVyE1.net]
戻り値を戻せ。
こんな短いプログラムでミスするな。

1030 名前:名前は開発中のものです。 mailto:sage [2014/07/08(火) 13:21:39.89 ID:HOUfCYEJ.net]
cもc++もだいぶ前からmainは戻り値省略できるような

1031 名前:名前は開発中のものです。 mailto:sage [2014/07/08(火) 13:33:31.30 ID:Lr0fEuau.net]
iの型は宣言しなくていいのん?

1032 名前:名前は開発中のものです。 mailto:sage [2014/07/08(火) 14:41:48.07 ID:aAa77qni.net]
i++って++iに最適化されるとは限らないからやめとけとどっかで見たが
どの程度真実なのかね。

1033 名前:名前は開発中のものです。 mailto:sage [2014/07/08(火) 15:06:44.25 ID:M09CLZ/Z.net]
1000
        ,〜、
 ヽ('∀`)ノ ノ_ζ
  (  ) 彡
  /ω\

1034 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

1035 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前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