トップページgamedev
1001コメント321KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2014/07/08(火) 19:30:19.51ID:J+zVqUil
ゲーム製作におけるC/C++全般に関するスレです。

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

前スレ
C/C++ゲーム製作総合スレッド Part1
http://toro.2ch.net/test/read.cgi/gamedev/1337516528/
C/C++ゲーム製作総合スレッド Part2
http://toro.2ch.net/test/read.cgi/gamedev/1351015269/
C/C++ゲーム製作総合スレッド Part3
http://toro.2ch.net/test/read.cgi/gamedev/1357899040/
C/C++ゲーム製作総合スレッド Part4
http://toro.2ch.net/test/read.cgi/gamedev/1376262450/
C/C++ゲーム製作総合スレッド Part5
http://peace.2ch.net/test/read.cgi/gamedev/1389798031/
0355名前は開発中のものです。2014/10/16(木) 14:11:40.09ID:iU5kylbT
は?意味わからない
0356名前は開発中のものです。2014/10/16(木) 15:57:05.99ID:XA7dLBCP
UnityVSはProじゃないと使えないのか(´・ω・`)
03573522014/10/16(木) 23:15:25.79ID:6yN2mL4I
>>353
やはり、そのあたりですかね。

http://game.watch.impress.co.jp/img/gmw/docs/586/729/html/gra_53.jpg.html
http://game.watch.impress.co.jp/img/gmw/docs/586/729/html/gra_54.jpg.html
http://game.watch.impress.co.jp/img/gmw/docs/586/729/html/gra_55.jpg.html
http://game.watch.impress.co.jp/img/gmw/docs/586/729/html/gra_56.jpg.html
これ、PSVitaのゲーム開発環境の解析画面なんだけど、こういう感じで見たいなぁ。

>>354
DirectXTKのPrimitiveBatchで、異なるトポロジ(三角ポリと線)を頻繁に切り替えながら描画
(切り替わる度にDrawコールされる)してしまっていたのをできるだけまとめて描画するようにしたら、
Debugモード時に4倍くらいfpsが上がってマジ感動した。
Releaseモードは、わずかに向上するか、ほとんど変わらないときもあった。

>まとめられるのは2D描画だけだと思うけど
3Dモデルならジオメトリインスタンシングが使えるケースがあるね。
0358名前は開発中のものです。2014/10/16(木) 23:59:18.32ID:mNWrvpmf
一応、VS2013Proのグラフィックス診断だと
DrawCall単位で何マイクロ秒かかってるかってのを測定して
CSVかXMLでエクスポートすることはできるみたい
03593522014/10/17(金) 02:07:27.36ID:1FCA9thd
>>358
おお、それはなかなか良い機能!
それを活用かなぁ。
0360名前は開発中のものです。2014/10/17(金) 10:58:36.38ID:i0zyuJTB
>>356
おう、諦めな
0361名前は開発中のものです。2014/10/17(金) 22:20:59.73ID:t1QiiFRy
>>356
cocos2d-xやろうぜ(´・ω・`)
0362名前は開発中のものです。2014/10/19(日) 21:58:12.45ID:A4TBNuX7
ちょうど今cocos2d-xでなんかスマホゲーム作ろうと思ってる
プログラミングよりストア登録とか素材作りでつみそう
03633522014/10/19(日) 22:56:32.89ID:Me3iytM1
http://adruab.net/wp-images/GDC14_infamous_second_son_engine_postmortem.pdf

このスライドの33枚目にあるようなタスク所要時間の視覚化機能を実装したいなぁ。
GPUの処理時間とか、どうやって計測するんだよ!w
0364名前は開発中のものです。2014/10/20(月) 06:37:43.13ID:Vt4+cJIA
なんか最近、スレ違いのレスが多いな
0365名前は開発中のものです。2014/10/20(月) 11:09:09.21ID:YjayBuJo
素材作りで積むのはゲーム制作しようとプログラミング学んできた人間にはよくある話
3Dモデルや絵かける方がよっぽどゲーム作れるぞ
0366名前は開発中のものです。2014/10/20(月) 11:29:32.25ID:jwhsqWX+
ツクール系やフレームワークがあるからだいぶ敷居は下がったよね
絵や話つくりは何とかなりそうなんだけど音関係がなあ・・・
0367名前は開発中のものです。2014/10/20(月) 11:53:52.64ID:DtF3+BwM
音がきついのすごく分かる
絵なんてそれなりのツール使って作品にあった書き方練習すれば半年でなんとかなる
初心者用サイトも多いし
音は何からどうすればいいかわからなくて詰む
0368名前は開発中のものです。2014/10/20(月) 12:00:13.49ID:wIxNXk0C
音はフリーの素材でなんとかならんか
絵の方がアニメーションとかサイズとか考えると難しいよ
0369名前は開発中のものです。2014/10/20(月) 12:37:30.84ID:mkykchgR
効果音ってどうしてる?
0370名前は開発中のものです。2014/10/20(月) 13:17:49.07ID:b7HsFQvV
大半をフリーで補いつつ、ピンポイントで有料素材
0371名前は開発中のものです。2014/10/20(月) 14:07:32.34ID:GwxwpQhh
>なんか最近、スレ違いのレスが多いな
って言われた端からこれだもんな
0372名前は開発中のものです。2014/10/20(月) 14:15:39.93ID:jwhsqWX+
だがガチガチにコードの話だけって限定するのもあれだな
0373名前は開発中のものです。2014/10/20(月) 14:34:05.88ID:RcYiFGCh
CとC++の話だけに限定するならスレ自体要らんしな
0374名前は開発中のものです。2014/10/20(月) 14:35:40.06ID:xrex0yYU
ま話題もあんま無いしな
0375名前は開発中のものです。2014/10/20(月) 18:54:24.39ID:+9Jsm3nb
Unityとかの全く無関係な話が出なけりゃ、それでいい
0376名前は開発中のものです。2014/10/20(月) 19:20:29.41ID:+9Jsm3nb
>>331
namespaceごとにファイルを作っても全く問題はないが?
0377名前は開発中のものです。2014/10/20(月) 20:05:13.07ID:k9NKmLW6
>>375
昔Unityの話題だしてごめんな
0378名前は開発中のものです。2014/10/20(月) 20:59:37.69ID:mkykchgR
スレ違いのレスどころかレス自体ほとんどないじゃん
100レス消費するのに1ヶ月て
0379名前は開発中のものです。2014/10/20(月) 21:26:24.20ID:GwxwpQhh
ゲ製の技術系スレなんて大抵がそんなもんだろ
流れが遅けりゃ何を話題に出してもいいのか?
勢い至上主義の人は別の板に行ったほうがいいぞ
0380名前は開発中のものです。2014/10/20(月) 21:44:59.67ID:mkykchgR
ゲーム製作に関連した話題だろ
話の広がりを全て排除するオキテでもあんの?
0381名前は開発中のものです。2014/10/20(月) 22:03:31.71ID:crBxYzk6
なんとなくム板住人っぽい
0382名前は開発中のものです。2014/10/20(月) 22:07:06.42ID:5MyCaHfJ
服や髪の毛を風でヒラヒラさせるくらいなら、
物理エンジン使うの大げさかな?
C++でスクラッチで実装してる人いる?
0383名前は開発中のものです。2014/10/20(月) 22:49:22.88ID:T47b68DN
11月号の日経ソフトウェアに
「効果音」「BGM」「歌」はこう作る(Cubase/VOCALOIDで)
音だってプログラミング!
ってな記事があるよ
12月号が10/24発売だからチェックするなら早めにな
0384名前は開発中のものです。2014/10/21(火) 00:05:57.07ID:rqDahQkS
>>382
モーションとかで設定すんのきついからエンジンでいいんじゃ
03853822014/10/21(火) 00:10:52.73ID:CEedc/zF
>>384
たしかに。
パフォーマンスもエンジンのほうが良さそうだし、
簡単なことでも、下手に自分で組むよりイイかも。
コリジョン全般もやらせられるし。
ありがとう、エンジン使う方向でいくわ。
0386名前は開発中のものです。2014/10/21(火) 00:35:00.20ID:DPj+H0co
初めてOOPしてるライブラリ使ったけど楽しいな
0387名前は開発中のものです。2014/10/21(火) 22:05:55.64ID:zLum7v8j
>>386
OGREかな?
0388名前は開発中のものです。2014/10/22(水) 19:05:01.43ID:mUYRFHNV
アクションゲームのバフというか、状態異常ってどうやって処理してる?
バフがつくキャラクタークラスに「〜のバフがあったら〜」という処理を記述するのが簡単なんだろうけど、
バフの数だけキャラクタークラスの処理が増えるのってなんか変だし、
キャラクタークラスが行動しようとするたびにバフ一つ一つにチェックかけるのか・・・
0389名前は開発中のものです。2014/10/22(水) 19:22:28.97ID:1itouT9H
>>388
武器毎にキャラクタークラスの処理増えてるわけじゃないだろ?
それと同じだよ
0390名前は開発中のものです。2014/10/22(水) 20:23:54.50ID:WiWK8TWz
バフってどこで流行ってる言葉なん初めて聞いたんだが
0391名前は開発中のものです。2014/10/22(水) 20:26:43.81ID:eqXGTzBz
もう十年以上前から、MMORPGで使ってたよ。
ステータスを一時的にパワーアップするのをバフ、
逆にパワーダウンするのをデバフって。
0392名前は開発中のものです。2014/10/22(水) 20:36:40.39ID:T1nolpti
最近はMMO流行ってないからなあ
0393名前は開発中のものです。2014/10/22(水) 21:44:48.22ID:hFcfDOrV
MMOからの輸入だと思うけど、ここ数年はMMO以外でも結構聞くなあ
0394名前は開発中のものです。2014/10/22(水) 22:31:22.09ID:U9EexPEj
>>389
モンハンとか武器ごとに増えてない?

最近は10秒以内に他のデバフを食らわないと即死するデバフとか、特定の属性の敵に攻撃力2倍とか、3秒に一回キャラクターの行動を中断する麻痺デバフみたいな、
単純なステータス操作じゃないものが多くて、そういうの視野に入れて作ろうかなと

そういや構造って、
ゲーム起動時にstatic変数としてバフのインスタンスを持っておいて、キャラクターのポインタとバフの残り時間を与えれば結果を返してくれるようにするのか、
キャラクターにバフがついた瞬間インスタンス化して、バフが消えた瞬間deleteするようなクラスを作るか
どっちがいいんですか?
0395名前は開発中のものです。2014/10/23(木) 08:02:34.39ID:I+oJL2c7
そりゃステートパターンよ
0396名前は開発中のものです。2014/10/23(木) 08:15:05.80ID:s5Cm5p+v
【毒】と【放心】と【催淫】が同じキャラにかかった場合とか考えると
クラスに自殺機能的なものを持たせつつ、キャラごとにリストで持っておきたいなあ。

あー、でもフィールド自体にスリップダメージ効果、みたいなパターンもあるか。
0397名前は開発中のものです。2014/10/23(木) 09:46:02.30ID:VAxuJujr
それはバフの自殺条件に「指定範囲から外れた時に消滅する」って条件が出来ればおkなはず
そうするとバフが欲しい情報はマップ上にあるオブジェクトのリストと、キャラクターのポインタと、時間かな
ゲームの仕様にもよるけど大体この3つ安定
0398名前は開発中のものです。2014/10/23(木) 09:46:44.49ID:VAxuJujr
>>395
ステートパターンだと一つしか状態異常かからなくない?
ポケモンなら一つだけど
0399名前は開発中のものです。2014/10/23(木) 10:02:49.79ID:s+t98wQk
フィールドのスリップダメージは状態異常じゃなくて衝突イベントで処理すれば
0400名前は開発中のものです。2014/10/23(木) 13:23:41.02ID:noQ9gUlZ
>>394
そういうの作るほうは大変だけどユーザにウケるか、手間に見合うかというと、う〜ん
かえってわかりにくいと敬遠されかねない

その点討鬼伝のミタマはうまくやったなと思う いろいろな意味でw
0401名前は開発中のものです。2014/10/23(木) 17:30:00.96ID:I+oJL2c7
>>398
ステートパターン+配列でいいじゃん?
ゲームの仕様側を単純化しないと実装の複雑化はさけられないぞ

std::vector<State*> state_list;
state_list += new Poison();
0402名前は開発中のものです。2014/10/23(木) 19:43:01.60ID:I0e3Ds/C
仕様はカッチリ決めといた方が設計はしやすいな
なんでもありを想定して作って結局あんまり使わないなんてムダだし
0403名前は開発中のものです。2014/10/23(木) 21:28:12.43ID:qInVWJ1L
【毒】を放置しておくと【猛毒】になるとか、
そういうのが無くてもStateパターンって便利?
0404名前は開発中のものです。2014/10/24(金) 00:54:44.36ID:jy1RY2Vz
ステートはしぬほど楽
0405名前は開発中のものです。2014/10/24(金) 20:11:21.11ID:ddPt2zGi
イベントで処理出来ないかな
スリップダメージならイベント処理時にダメージ&継続判定して再度イベント投げるみたいな
オーバーヘッドでかそうだけど汎用性はある気がする
0406名前は開発中のものです。2014/10/24(金) 22:30:58.39ID:LvhDFXW3
>>405
オーバーヘッドとかそう言うのはプロファイラで測ってから言いなさいな

普通、負荷がかかるのはもっと重い処理の部分でしょ
0407名前は開発中のものです。2014/10/25(土) 03:42:15.96ID:fVKGIfTf
オーバーヘッドは本来の処理とは関係ない所で発生する計算コストの事で相対的な話でしょ
0408名前は開発中のものです。2014/10/25(土) 07:52:10.14ID:NLLH5JYR
オーバーヘッドキックなら知ってるぞ
0409名前は開発中のものです。2014/10/26(日) 16:26:16.62ID:RQv84B/3
>>407
だからそのオーバーヘッドが大きいかどうかはそこがネックになってるかどうかで判断しろって言ってるんでしょ
0410名前は開発中のものです。2014/10/26(日) 17:41:30.80ID:dULlRr0t
>>408
だからそれがオーバーヘッドキックかどうかはそれがキックになってるかどうかで判断しろって言ってるんでしょ
0411名前は開発中のものです。2014/10/26(日) 18:19:06.69ID:Z5NRlQnX
せやな
0412名前は開発中のものです。2014/10/26(日) 19:50:32.98ID:YANUPprV
知ったような口を利くんじゃない
0413名前は開発中のものです。2014/10/26(日) 19:56:46.37ID:eW7jlsGh
微妙に会話が噛み合ってない感じするな
0414名前は開発中のものです。2014/10/26(日) 22:10:45.35ID:PTfFlHbF
相対的なコストの話だって言ってるのに全体で判断しろっておかしいでしょ
0415名前は開発中のものです。2014/10/26(日) 22:20:48.23ID:Wgbd5x3C
ボトルネックって言うけどさ、瓶はドボドボ出ない様にわざと狭く作ってあるんだよな?
0416名前は開発中のものです。2014/10/26(日) 22:37:50.70ID:RQv84B/3
オーバーヘッドの影響が大きいかどうかはって言えばよかったかね
0417名前は開発中のものです。2014/10/27(月) 22:07:07.84ID:sM1yBz6U
俺だってオーパーツヘッドくらい知ってるよ!
0418名前は開発中のものです。2014/10/28(火) 00:30:16.35ID:/GKC+OVC
俺もオーバーライドとオーバーロードの違いぐらいわかるよ!
0419名前は開発中のものです。2014/10/28(火) 21:29:09.92ID:ysAm8J5x
俺なんてどっちかというと見た目がオーバーサーンだよ!
0420名前は開発中のものです。2014/10/29(水) 19:22:23.08ID:nDYTAhVm
俺はsum41のオーバーヘッドなんちゃらっていう曲好き
0421名前は開発中のものです。2014/10/29(水) 23:42:07.72ID:4ZmDH5l4
俺なんてゲームオーバーヘッドですよ
0422名前は開発中のものです。2014/10/31(金) 00:17:00.08ID:nSbgcPzE
みんな状態異常がなんたらとかC++で記述してる?
自分は限界を感じてC++はゲームライブラリをラップするエンジン部分だけに使って
ゲームロジック部分はLuaでできるように勉強してる

C++(エンジン) // C++(エンジン上で動作するパーツ) // Lua(パーツを利用するロジック) // Lua(モデルやイベント用スクリプト)
0423名前は開発中のものです。2014/10/31(金) 07:04:00.65ID:m5w778wA
Lua で書けるなら同じことを C++ で書けばいいだけだと思うけど
何で書くかというより設計の問題でしょ
0424名前は開発中のものです。2014/10/31(金) 10:05:54.22ID:6bcSF0zB
>>422
自分もLua使ってて今作ってるけど、ロジックはC++で組んでる(組む予定)
Luaでやるのはキャラの初期値などのパラメータ値の設定やイベントの記述、
画面背景に表示するものをLuaで記述、くらいの予定かな

>>423の人も言ってるけど、Luaで書けるならC++でも書けるから、何をLuaに求めるかだと思うけど、
自分の場合はLuaでやるメリットはリコンパイルせずにレベルデザインの動作確認を行えるようになること
ロジック部分はLuaに追い出すと速度的なデメリットが大きそうなのと、
Luaで書けるようにすること自体の工数も大きそうなのでやめた
0425名前は開発中のものです。2014/10/31(金) 12:53:25.76ID:CfUZyuSt
スクリプトの利点はコンパイルしなくても修正出来るところ
0426名前は開発中のものです。2014/10/31(金) 17:49:19.79ID:wudHshK9
作り方によってはゲーム中にリアルタイムに変更できたりするよね
0427名前は開発中のものです。2014/10/31(金) 17:59:48.36ID:881Z1hau
コンパイルは必要だけど動的変更ならC++でも出来るけどね
0428名前は開発中のものです。2014/10/31(金) 18:15:11.72ID:jL8HxUOw
デバッガでぽちぽち変数の値いじるの?
0429名前は開発中のものです。2014/10/31(金) 18:24:36.01ID:6bcSF0zB
ゲーム中にスクリプト書き換えてリアルタイムに反映?
いらねーよw
0430名前は開発中のものです。2014/10/31(金) 19:02:05.50ID:LbK2+I6l
今の所スクリプトは、用途に応じて別のスクリプトを作って使ってるな
3種類ほど
一つはシナリオとかのイベント管理用
一つはレコード単位のデータ管理用
一つはツリー構造のデータ管理用
0431名前は開発中のものです。2014/10/31(金) 19:18:37.90ID:oJQR+l+C
・高速なコンパイル
・クラスとヘッダーに分けなくていい
・importはC/C++のincludeより使いやすいと思う
C/C++だとどれをインクルードすべきか調べないと分からない事もあるし
・ネイティブの部分だけ予めコンパイルしておけば、変更したコードを複数のデバイスですぐにデバッグ可能
・GCでメモリ管理が自動に
・リフレクションでクラスの情報に実行時アクセス
・実行時の式評価(デバッグに使う)

実行時コード編集は確かにあまり役立ってないかも
デリゲート・・・はC++11なら使えるのか
0432名前は開発中のものです。2014/10/31(金) 19:23:51.37ID:GqyQ4J03
>>429
実行中に変更出来ないと一回落として変更して同じところまで進めないといけないから
レベルの調整とかしてるとめちゃくちゃめんどい
0433名前は開発中のものです。2014/10/31(金) 19:24:16.18ID:LbK2+I6l
VB.netのスレはここじゃないんだが?
0434名前は開発中のものです。2014/10/31(金) 19:32:27.85ID:6bcSF0zB
>>432
まあ半分わかるけど、相当規模が大きなものじゃないといらないし、
代替としてその環境を作るスクリプトも組めるし、
途中で変えちゃったら、ユーザーがほんとにその条件に辿り着けるのかテストにならないから
やっぱりいらないな
0435名前は開発中のものです。2014/10/31(金) 20:11:52.54ID:GqyQ4J03
>>422
ロジックをスクリプトで記述するなら汎用ゲームエンジンでいい気がするな
Unityとかめっちゃお手軽よ
0436名前は開発中のものです。2014/10/31(金) 20:42:19.68ID:3MYWoAmv
スクリプト言語はやっぱ、コルーチンが使える点が良いよね?
0437名前は開発中のものです。2014/10/31(金) 20:58:16.81ID:qWph+yLX
yieldってなんて読むの
0438名前は開発中のものです。2014/10/31(金) 22:36:22.81ID:ARi4wFqk
ヨィールドって脳内再生してうr
0439名前は開発中のものです。2014/10/31(金) 22:57:08.23ID:oJQR+l+C
>>437
いーるどぅ
0440名前は開発中のものです。2014/10/31(金) 22:59:35.82ID:r+epGFzI
インバースキネマティクスについて書かれている書籍知りませんか?
0441名前は開発中のものです。2014/10/31(金) 23:09:11.23ID:BXR79UmA
>>440
シューティングゲームアルゴリズムマニアクスにあったように記憶してる。
手元にないから確かじゃないけど。
04424402014/10/31(金) 23:15:42.18ID:r+epGFzI
>>441
ありがとうございます!
その本は持っているのですが、IKについて書かれていることに気付きませんでしたw
コードも書いているので参考になりそうです。

他の本も、ご存知の方がおられたら是非教えてください。
0443名前は開発中のものです。2014/11/01(土) 01:19:56.78ID:/W7J7qqw
>>442
最近読んだのだとこれ
XNAのソースがサンプルであるけど今はXNA自体が使えない
http://www.borndigital.co.jp/book/94.html
04444402014/11/01(土) 01:22:56.00ID:THgSKMXt
>>443
ありがとうございます!
XNAでも参考にはなると思うので買ってみます。
0445名前は開発中のものです。2014/11/01(土) 10:44:08.91ID:oqeDiPeW
AがtrueならB、falseならC
BがtrueならD、falseならE
DがtrueならF、falseなら・・・
という感じで
if (A) {
if (B) {
if (D) {
F();
} else {
G();
}
} else {
E();
}
} else {
C();
}
というようなことになってしまいます
例えばAがゲーム開始フラグ、Bがプレイヤー出現フラグ、Dが敵出現フラグという時
最初にC()でカウントを回してAをtrueにしゲーム開始
E()でカウントを回してプレイヤーを出現
G()でカウントを回して敵を出現
F()でバトル開始
のような感じになるのですが、どうすればいいのでしょう
あまり良くないですがswitch caseなどでもいいのかなと考えてます
0446名前は開発中のものです。2014/11/01(土) 11:05:49.01ID:/W7J7qqw
>>445
ステートパターン使うといいよ
IStateを実装した開始ステート、敵出現ステートなどをつくって、
unique_ptr<IState> state = make_unique<InitialState>();
while ...
state->update();
if (state->next)
state = state->next;
0447名前は開発中のものです。2014/11/01(土) 16:11:10.84ID:XJ9qlDD+
普通のクラスだったらプレフィックスにCってつける?
04484402014/11/01(土) 17:17:01.83ID:THgSKMXt
>>443
買ってきました!
とても詳しく書かれていて大満足です。
ありがとうございました!
0449名前は開発中のものです。2014/11/02(日) 01:02:23.40ID:p7Beypyf
>>446
やっぱりStateパターンが良いですよね
ありがとうございます
0450名前は開発中のものです。2014/11/02(日) 10:54:46.91ID:F1N1A3wT
Stateパターンと
Strategyパターンって
コードの書き方はまったくと言っていいほど同じじゃないですか?
Stateは状態的な切り替え、
Strategyは機能的な切り替え、
というふうに、どういう使い方をするかで名称が別れてるということですか?
0451名前は開発中のものです。2014/11/02(日) 12:52:42.92ID:2+iLF1K9
ストラテジーはアルゴリズムの切り替え
状態遷移はストラテジーっぽい
0452名前は開発中のものです。2014/11/02(日) 13:07:10.08ID:nNeu0fIH
どういう意図で組んでるか?という情報は
後から見た時に結構重要だったりするよね
0453名前は開発中のものです。2014/11/02(日) 13:26:08.13ID:bYY9FFGo
だよなぁ
例えば遷移だと>>446のやり方はそれぞれのStateの中で自分に関係する遷移条件と遷移先だけ指定するから
ソースを見ただけじゃ全体の遷移一覧がぱっと見えてこないんだよなぁ
0454名前は開発中のものです。2014/11/02(日) 20:23:50.79ID:rvNm7bLn
ソースに依存関係が少ないて部分では良い事だろ
偏移状態はUMLなりその他の手段で伝わればいい
■ このスレッドは過去ログ倉庫に格納されています