C/C++ゲーム製作総合スレッド Part7 [転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2015/01/11(日) 10:19:31.85ID:RDQlUyF+
ゲーム製作におけるC/C++全般に関するスレです。

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

前スレ
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/
C/C++ゲーム製作総合スレッド Part6
http://peace.2ch.net/test/read.cgi/gamedev/1404815419/
2015/02/12(木) 17:28:07.56ID:K+V6X3Ce
Unityの社員ってステマのノルマがあるみたい
2015/02/12(木) 17:41:44.09ID:3BvTygsz
スレッドのが実装しやすい処理もあると思うの
2015/02/12(木) 19:41:03.02ID:gRG035Lb
うにちゃんは次期主力ゲームエンジンの座を狙っているからね、仕方ないね

何が悲しくてわざわざ柔軟な使い方のできる言語投げ捨ててゲームエンジンなんぞに…
PHPやらJAVAやらに行った方がマシ
2015/02/12(木) 20:21:56.36ID:K+V6X3Ce
そんなに自信があるのなら、自分たちでゲーム機を出せばいいのに
彼らの夢は、所詮は砂上の楼閣なんかね
2015/02/12(木) 20:26:40.79ID:EbJGy+Ll
このスレってレベル低いよな
2015/02/12(木) 20:29:07.88ID:EbJGy+Ll
>>338
出来ることは並列でやった方が早く終わるよね。
345名前は開発中のものです。
垢版 |
2015/02/12(木) 20:35:29.18ID:wNE8sYSh
>>342
それは無理。彼らの夢は、ゲーム業界に巣喰う寄生虫になる事だから。
2015/02/12(木) 20:42:55.10ID:K+V6X3Ce
>>344
その前にアルゴリズムを考えた方が早いかもね
2015/02/12(木) 21:16:05.40ID:SEu5lClB
シングルスレッドで足りるならシングルスレッドで作ればいいと思う
後からマルチスレッドにしようとか考えたら地獄みるけど
ムダに作り込んで時間かけても仕方ないしね
2015/02/12(木) 21:57:58.62ID:5lpYcWcf
スレッドの話で盛り上がってるけど、みんなpromiseとかatomicとかcasとかちゃんと理解できてる?
俺は半分も理解してない
2015/02/12(木) 22:02:24.65ID:BY0ie4C4
C++を書いているとJavaやC#にだんだん似てくるし
C++で便利コードを書いても既存のライブラリには適わないし
C++でゲーム用ライブラリを書いていると既存のエンジンに似てきたから
既存のエンジン使うことにした。困ったらエンジン改造すればいい。
2015/02/12(木) 23:13:41.81ID:X8c9QSvd
おーい、誰かクマが釣り針見つめてるAA持ってない?

>>348
promiseはFutureパターンのSTL実装かな。
casは不勉強だったわ。いちいちロックしなくても非同期でノード更新できるってことかな。
2015/02/12(木) 23:54:36.97ID:yCMGD6Md
casって言われてもメモリのclしか思いつかないです
これの事でいいの
http://ja.m.wikipedia.org/wiki/コンペア・アンド・スワップ
2015/02/13(金) 00:16:59.27ID:6pLn2rnq
visual c++2010です
コードを書いていると、未定義エラーなどのエラーが起こっている部分を波線で表示する機能がありますが
それをすばやく表示したい(エラーを確認する間隔を早めたい)時はどうすればいいのでしょうか?
オプションでそれらしき項目を探しているのですが、見つけられず困っています…
2015/02/13(金) 00:28:10.25ID:FqU8O5pj
今表示されてる速度が最速だよ
文句があるならもっと早いCPUに代えろ
もしくはVSのバージョン上げたら改善される可能製はある
2015/02/13(金) 00:38:48.23ID:PNw/R4Nn
何が原因かわからんが仮にnullpoって変数なり型名なりがあるとしてpoにだけ下線とエラー表示が出る謎現象なんかが困る
nullpoの間にスペース入れた後に消すなりコンパイルするなりして文字解析をやり直させると普通に通る
2015/02/13(金) 00:38:56.82ID:6pLn2rnq
ありがとうございました
2015/02/13(金) 02:11:39.11ID:E1xWFoJ9
コードを書いてるといきなり妙な場所に波線
面食らいつつ原因を探るべくコードを見直しているといつの間にか消える
他にも指摘されて修正した部分の波線がなかなか消えず、
あれ?修正間違ったかなと書き直そうとすると消えたりする

VSに不信感を抱きそう
2015/02/13(金) 03:15:03.66ID:Jw6U7GOH
VS2010より2012, 2013はずっと賢いから変えたほうがいい
あとVSの謎の挙動はコードが悪いせいなのできちんと書くように心がけましょう
2015/02/13(金) 03:17:28.00ID:Jw6U7GOH
いつもコードが悪いせいではないな
一括置換とかファイル名変更とか,変なことをやるとVSたんはたまにアホになる
2015/02/13(金) 03:36:37.36ID:PNw/R4Nn
というわけでついっさっきVS2013導入したった
C++で打ってる時2010だとショートカットキー(Alt→派)でしかインテリセンス出なかったのが改善されてるのが今のところ一番嬉しい
2015/02/13(金) 04:37:35.15ID:diYHW0ok
外部エディタを使っている自分に隙はなかった
2015/02/13(金) 09:12:51.03ID:PRy9EczC
どんなスペックのPC使ってんの
2015/02/13(金) 10:50:31.89ID:WvS4Hu4Q
JavaやC#ならわかる
だが負の遺産であるクソ構文抱えたC++で
実用的な速度であれだけのことが出来ることそのものが信じられん
動いたらラッキーくらいの謙虚な気持ちで使うべき
2015/02/13(金) 11:23:05.70ID:/fWsfy1c
C++とC#ってそんなにちがうか??
C++って多少手間暇かかる部分はあるが、自前で組めばどうにでもなる事でね?

まあ、プログラムはソースの書き方だけで作る時間に10倍以上の差が出るし、
モジュールやオブジェクト指向を理解してるかどうかで100倍以上の差が出るから、
その辺りの違いだろうけどな。
2015/02/13(金) 11:25:59.01ID:NjULDeHN
MSがBC++を買っとけば世界が平和になってたんですよ…
2015/02/13(金) 12:17:28.61ID:oAXnXeHu
学習コストの高い言語はもう流行んないでしょ
ゲームもコア部分以外はスクリプトで書くのが主流になるだろうし
C++プログラマはゲームエンジン書けるレベルの人しか生き残れないな
2015/02/13(金) 13:34:54.76ID:/fWsfy1c
パソコン自体がもうほとんど進化しなくなったのに、遅い言語を勧められてもな
367名前は開発中のものです。
垢版 |
2015/02/13(金) 14:00:42.22ID:wCixqXPj
状況次第ではJavaScriptの方が速いなんて事もあるのに
まだそんな事を言っているのか

http://arewefastyet.com/#machine=28&;view=breakdown&suite=asmjs-ubench
2015/02/13(金) 14:07:45.39ID:/fWsfy1c
まずは、JavaとJavaScriptの違いから勉強しようね?
2015/02/13(金) 14:07:50.74ID:ozS65/+Z
と言うかC/C++のスレでいい加減スレチw
2015/02/13(金) 14:18:22.58ID:diYHW0ok
いや、C/C++の存在意義を知る上で重要な議論だよ。
2015/02/13(金) 14:20:03.86ID:s8SeVfmU
しかも、asm-jsってClangで中間コードにしたものをJavascriptに変換するものであって人間が書いてネイティブコードより速くなるもんじゃねえよ
2015/02/13(金) 14:58:19.33ID:wCixqXPj
他の言語は実行がVMだから遅い、C++はネイティブコードだから(常に)VMより速いと言う幻想を>>366は持っているようなので
ぶち壊してやった
2015/02/13(金) 15:06:44.71ID:/fWsfy1c
で、JavaやC#がC++と等速になったとかいうデータはマダー??
2015/02/13(金) 15:23:17.57ID:fRUihGLp
>>371
>>372 は多分あなたの言っていることが全く理解できていないだろうな。

たぶん初〜中級者に「VMやJSは思ったほど遅くない」という幻想を抱かせるのが目的。
2015/02/13(金) 15:25:16.23ID:diYHW0ok
いったい、何のためにそんなことを・・・
2015/02/13(金) 15:25:55.96ID:9I9SRziA
C++の中にCをラップしているという、気味の悪いC++の現状を憂う気持ちは分かる
C++という言語自体がすでに溶岩流状態だよなwww

2015/02/13(金) 15:26:18.69ID:s8SeVfmU
>>372
誰もVMだから遅いなんて言ってないと思うんだけど
で、遅いのは確実だろC#がネイティブコードになっても遅いのは変わらないよ
CやC++より実行時に行う事が多いのだから当たり前のこと
2015/02/13(金) 15:27:18.22ID:7ayiwF3a
中間コードを実行するVMの関数呼び出しや演算がC++より速くなることは原理的にないんじゃないの
速くなったとしても結局記述されたコードのレベルの差でしょ
C++でチューニングしたコード書けばもっと速くなる
Cのコードがチューニングされたアセンブリより遅いのといっしょ
2015/02/13(金) 15:31:25.28ID:4Xq/J0Q+
話の流れに乗ってみるが
ゲーム本体はc++でツール等はc#というのを
ちらほら聞くけど実行している人いる?
いるとしたらどれだけ有用か意見をお伺いしたい
2015/02/13(金) 15:36:07.95ID:s8SeVfmU
>>378
いや、そうとも限らないよターゲットが固定されてるなら問題ないが、
ネイティブコードに変換したら実行するCPUを完全に生かすコードを吐けるとは限らない。

JITならターゲットがコンパイラを内蔵してるようなものだから動かす環境のCPUを完全に生かすコードを吐ける。
もちろん実行時だから時間のかかる複雑な最適化は出来ないから元のコード次第だけど

>>379
そういえばUnrealは昔エディタはVB製だったな。
2015/02/13(金) 15:43:02.61ID:6pLn2rnq
>>361
356ですが、もし自分の事でしたらXeon W5590(8コア3.33GHz)・メモリは12gbです
遅延が起こるコードはDLLを作る用のもので、約5000行
(2000行のファイル2つ・1000行のファイル1つ、それぞれa.cpp b.h c.hとします)です

a.cpp(2000行)の途中でb.hとc.hをインクルードしてる状態ですが
a.cppの一番下の行の方でスクリプトを書きますと、
波線や#if 0-#endifの半透明化が行われるまでにおよそ2分ぐらいかかります
2015/02/13(金) 15:46:18.40ID:diYHW0ok
原理的なパフォーマンスより生産性を優先されることで言語の歴史は移り変わってきたし、
機械語 ⇒ アセンブラ ⇒ C
までは割とはっきりと移り変わってきたと思う。
それ以降、C ⇒ C++ ⇒ Java or C#
についてはうろうろしてる感じ・・・。

やっぱり、今もC++は欠かせないでしょ。
2015/02/13(金) 15:46:47.59ID:7ayiwF3a
>>380
あー確かにターゲットが広いとC++で全部に最適化するのは現実的じゃないな
2015/02/13(金) 15:52:11.33ID:KYsA9vla
ツールはマルチプラットホームで動く必要が無いってのが大きいんじゃないの?
Windows, Mac, コンシューマ機 で動くとなると C++ しか選択肢が無かった気がする。
そこにモバイルが加わって、必ずしもC++が移植性の面で最良では無くなりつつあるのかもしれない。
2015/02/13(金) 15:55:59.21ID:/fWsfy1c
問題点がGCを使うことの有無になってきてる気がするな
適切にGC.Collect()を使えばいいというような話はあるが……どちらが良いかはよーわからんw
2015/02/13(金) 15:56:27.80ID:7ah0RMwS
なんか勘違いしてる人が多いみたいだけど、C#は簡単な言語じゃなくて、理想的なオブジェクト指向をするための言語
そもそもオブジェクト指向が出来ない人はC++もC#もまともに使いこなせないから
2015/02/13(金) 15:59:29.02ID:diYHW0ok
>>386
まーそうだな。
いずれにしても、ちゃんとした設計ができるというのが前提。

その上でパフォーマンスと生産性(クロスプラットフォームかどうかなど)を勘案した上で適切な言語を選択する。

できれば全部C++でやりたい派だけどw
2015/02/13(金) 16:09:25.94ID:/fWsfy1c
設計気にせずコーディングでゴリゴリやりたい派が居るからなぁ……
ライブラリが充実してると有効なんだが、充実してない場合は……お察し下さい
2015/02/13(金) 17:05:12.10ID:wCixqXPj
C++のコンパイラは事前コンパイラだから
実行前にはプログラム全体のネイティブコードが得られるが
プログラム全体を無差別に最適化する分コンパイルに時間が掛かるし
実行時の状況を見て最適化する事も出来ない

JITコンパイルは実行時によく使われたコードだけを最適化するから割と高速に実行できる事が多い

http://ja.wikipedia.org/wiki/実行時コンパイラ
2015/02/13(金) 17:11:55.89ID:diYHW0ok
その中間がGPUのシェーダーって感じかな。
動的ではないけど、同じコードをデバイス(ドライバ)に応じて実行直前に一度コンパイルする。
2015/02/13(金) 17:26:17.39ID:wCixqXPj
JITだと最適化すべき所があまりに多いと最適化が間に合わないし、あまり複雑な最適化はできないだろうけど
プロファイラで遅いところを見つけてそこだけC++で書くことも出来る

そうすれば速度が下がるデメリットより生産性が上がるメリットの方が上回ると思う

Android 5.0は中間コードから事前コンパイル出来るらしいが
インストールに時間取りそうだな

MonoはJITコンパイルが禁止されているiOS向けには事前コンパイルするらしい
2015/02/13(金) 17:30:13.12ID:s8SeVfmU
>>391
だからってJavaやC#が速いってことにはならんからな。
そこを勘違いすんなよ
2015/02/13(金) 17:40:26.14ID:7ayiwF3a
ただでさえ動的な型付けやジェネリクス、クロージャなんかでスクリプトの最適化にかかるコストは高いし
かけられるコストに制限のかかるJITが静的なコンパイラ超えるのはまだまだ先の話だろうな
2015/02/13(金) 17:49:39.74ID:3uAgugBd
C++入門系の本だと「STLは難しいので分からなくてOKです^^;」とか書いてあるけど
Javaとかの入門書だとジェネリクスやリフレクションも簡単に分かって当たり前が前提
程度の低い人がC++入門書の内容も理解できずに「C++はすごいんだ」と威張っている
2015/02/13(金) 17:53:19.30ID:s8SeVfmU
>>394
何言ってるのか解らない
2015/02/13(金) 17:57:54.44ID:9I9SRziA
どこの入門書だよ…
STLのような便利ツールを分からなくてOKなんて書くような入門書はクソ本認定必至だぞ

Unityに絡まれたりC#やJavaに絡まれたり大変だな
一体何が始まるんです?
2015/02/13(金) 18:00:31.37ID:3uAgugBd
ここで何の言語が速いだのマルチスレッドだの騒いでる連中は怪しいってこと
2015/02/13(金) 18:05:07.34ID:s8SeVfmU
>>394
> Javaとかの入門書だとジェネリクスやリフレクションも簡単に分かって当たり前が前提

何が言いたいのか解らないからここだけに反応するけど、AmazonでJava入門して人気度でソートして一番上に出てきた「スッキリわかるJava入門」って本の目次にはジェネリクスもリフレクションも無いぞ
2015/02/13(金) 18:19:41.22ID:ozS65/+Z
別にオートマ乗りたい人もマニュアル車乗りたい人も好きにすればいいよ
2015/02/13(金) 19:06:42.10ID:diYHW0ok
ほんとに最初はSTLなしで勉強したらいいけど、
ある程度できるようになったらSTLを使わない手はない。
STLなしで大規模プログラミングするとか拷問。
2015/02/13(金) 19:09:22.59ID:9I9SRziA
そんなことより

Hoge() {}



Hoge() {
}



Hoge()
{

}

を使い分けるタイミングについて
2015/02/13(金) 19:20:16.61ID:ozS65/+Z
>>401
上は本当に何もすることが無い、空実装の場合だけ
下2段は好み(規約でスタイルが統一されてない場合)
2015/02/13(金) 19:23:44.45ID:9WE2qWDV
バージョンによるかも知れないけどVSでインデント自動だと

Hoge() {}

じゃなくて

Hoge() { }

と中括弧の間に半角空白が入るのが気になる。
2015/02/13(金) 19:27:56.48ID:ozS65/+Z
大抵のIDEにコーディングスタイル(ルール)の設定あるはず
2015/02/13(金) 19:31:59.81ID:ozS65/+Z
>>389
pragmaでモジュール毎に最適化の指定って一部の処理系のみ?
2015/02/13(金) 19:46:05.27ID:s8SeVfmU
>>405
pragma自体処理系依存
2015/02/13(金) 21:20:17.39ID:ozS65/+Z
まあ最適化の方針自体が処理系依存だしな

言語仕様で他言語と比較すること自体無意味かも
2015/02/13(金) 22:15:35.36ID:9+3djK7O
>>381
スペックたけええ
IOくらいしかボトルネックになりそうなところなさそうだけど
2分遅れるってのはちょっと遅すぎだな
2015/02/13(金) 23:08:30.20ID:E1xWFoJ9
ソース一枚で2000行ってのはもうちょっとバラせないのかなぁ?
相当大規模なプログラムなんだろうか
2015/02/14(土) 00:36:28.82ID:+drYNYXs
>>408-409
別の環境(インタプリタ)で作っているゲームがありまして、
一部の重い処理をc++を使ってDLL化し、(インタプリタの方でDLLを読み込んで)使っている状態です
ツール→オプションやプロジェクト→プロパティでいくつか操作した記憶があるのですが、
どれを操作したのかは思い出せなません……。 すみません

http://fast-uploader.com/file/6979396992867/
あまりC++に慣れてなく、アップロード時にどこまで載せるべきなのかが分からないのですが
とりあえずcppファイルとhファイル、defファイルだけ用意したものです
(個人用開発のスクリプトで、本来あまりやるべきではない処理も複数使っているためコード自体はかなり見づらいと思います)
これのdll1.cppの最初の位置の方でコードを書くと波線がすぐ表示され、
dll1.cppの最後の方でコードを書くと波線が表示されるまでに数十秒、#if 0-#endifでの半透明化に2分ほど掛かる状態です
411名前は開発中のものです。
垢版 |
2015/02/14(土) 00:52:52.43ID:o7XnZ6lm
かなりの素人っぽいコードになってるな。
これでプログラムは正常動作するんだったらいいけど。
2015/02/14(土) 16:14:47.43ID:i+Qy19Ot
nullpo
2015/02/14(土) 21:45:25.56ID:8yKSZnHL
nullptrだろ
2015/02/14(土) 22:15:17.68ID:dPtZMbpp
肝心なこと忘れてるぞ
>>412 ガッ
2015/02/15(日) 00:52:20.75ID:cKjU4/tc
>>354 ガッ ガッ



よくわからんけど、これでいいのか?
2015/02/15(日) 14:24:16.38ID:HGj2LM7P
ぬるぽはガッする これ鉄の掟ネ
2015/02/15(日) 17:08:32.51ID:lIyPTDYW
OpenGLのライトの設定って8つまでしか設定出来ないの?
2015/02/15(日) 18:13:03.67ID:221Gw+Uq
一つのモデル書くのに8個も使うこと無いと思うけど
2015/02/15(日) 18:18:15.97ID:kJKCFPVs
使うか使わないかなんて誰も聞いてないのでは
2015/02/15(日) 18:27:22.52ID:QJPI0val
8つまでは保障されるって書かれてるね

それ以上はGPU次第?
2015/02/15(日) 18:30:35.01ID:pHH37jBe
普通にシェーダにuniformで渡せばいいんじゃなかろうか
2015/02/15(日) 20:13:36.87ID:221Gw+Uq
使わない機能について質問するのは普通なの?
ここってそういうスレッドだった?
2015/02/15(日) 20:15:43.39ID:BSm63ZvK
未だに固定機能パイプライン使ってるのかよ
ES2.0やCoreプロファイルでは削除されたと言うのに
2015/02/16(月) 10:55:53.67ID:GCnoGlJr
このスレのみんなは何ゲーム作ってる?作ってた?俺は今は2DRPGを作ってる。
作り始めてもう2年は経つが、バイトしながら作っているのでなかなか先に進まない。
その前は剣で敵を殴り倒すサイドビュー2Dアクションとか作ってた。
公開してる作品はまだ無いけれど、今回作ってる作品はようやく公開できそうだ。
2015/02/16(月) 12:05:03.56ID:xAAEGNM/
いつゲームを思いついてもいいように自分用フレームワーク作ってる
今はポストエフェクトとかの高級機能の追加とパフォーマンスチューニングやってる・・・
2015/02/16(月) 14:01:53.12ID:zTNZgaYq
昔3Dのゲーム公開してグラボ必須と明記したのに
オンボードのグラフィックで動かないって言われるから萎えたw
2015/02/16(月) 14:25:13.79ID:GCnoGlJr
オンボードってグラボと違うんだ……知らんかった
2015/02/16(月) 15:11:57.10ID:YsWE65vY
体験版かベンチマークテスト付けるのが間違いない
2015/02/16(月) 15:20:33.89ID:SFvkE6bf
日本語が読めない日本人のコメ欄荒らしなんか今に始まった事じゃないし
ひどいと環境も書かずに動かないのでクソみたいなことを言ってくるぞ
その理由がインストール失敗だったりするし、あの人達は異常

>>425
何か作っちゃえよ…さもないと意味ないってそんな作業
2015/02/16(月) 15:35:35.16ID:ilnxTAbg
起動時に「こんな貧相な環境では起動できません」とメッセージだすとか
2015/02/16(月) 15:44:19.94ID:DJ/HQJjd
譏斐?ョ繧ェ繝ウ繝懊?シ繝峨げ繝ゥ繝輔ぅ繝?繧ッ繧ケ縺ッ譛ャ蠖薙↓雋ァ蠑ア縺縺」縺溘°繧峨↑窶ヲ
繧ヲ繧」繝ウ繝峨え繧ФI縺ョ謠冗判繧竪PU縺ァ繧?繧雁?コ縺励◆譛霑代?ッ縺九↑繧翫?槭す縺ォ縺ェ縺」縺溘s縺倥c縺ェ縺?縺繧阪≧縺?
432431
垢版 |
2015/02/16(月) 15:52:15.48ID:DJ/HQJjd
ごめんなんかすごい文字化けした、なんだこれ

最近になって普通のGUIをGPUで描画するようになって
ようやくオンボードグラフィックの性能も上がってきたよね
的なことを書きたかった・・・
2015/02/16(月) 20:48:43.56ID:SFvkE6bf
>>430
大半のユーザーにとってはただ処理が煩雑になるだけだな
っつーか、手の込んだおちょくり方だなw
2015/02/16(月) 22:42:53.99ID:vhmKDLh4
起動時にデバイスの判別とかする?
D3Dの初期化出来るかくらいしか見てないすわ
ていうかデバイスの判別なんて出来るもんなの?
2015/02/16(月) 23:54:49.98ID:7aPTvn5L
GPUのデバイス名を見てショボそうだったらエフェクトを減らしたりして品質を下げるのは良くある
2015/02/16(月) 23:58:04.64ID:+QAYKcbY
やるとしても初期化できるかできなかったらでいいと思う
できなかったらエラーはいてもいいけど,情報をログに出しておくとのちのち面倒になりにくい
2015/02/16(月) 23:58:32.44ID:+QAYKcbY
訂)初期化できなかったら
2015/02/17(火) 01:00:22.99ID:8xjE9Voj
メーカーや型番を調べるってこと? CAPSじゃなくて。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況