ゲーム製作における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/
C/C++ゲーム製作総合スレッド Part7 [転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2015/01/11(日) 10:19:31.85ID:RDQlUyF+
305名前は開発中のものです。
2015/02/11(水) 02:52:05.14ID:IKslX+U4 >>303
ゲームエンジン•アーキテクチャ(ソフトバンククリエイティブ)によれば、デフォルトのnewが遅い理由は管理コストとOSのコンテキストスイッチとあるけど
URL先の内容からすると最初に確保された分越えなければコンテキストスイッチは発生しないって事なんかな
ていうか2000年の時点でそういう仕様だったのか
ゲームエンジン•アーキテクチャ(ソフトバンククリエイティブ)によれば、デフォルトのnewが遅い理由は管理コストとOSのコンテキストスイッチとあるけど
URL先の内容からすると最初に確保された分越えなければコンテキストスイッチは発生しないって事なんかな
ていうか2000年の時点でそういう仕様だったのか
306名前は開発中のものです。
2015/02/11(水) 02:52:16.60ID:rJC6nJDr >>304
その自作アロケーターって複数スレッドから呼んでも大丈夫なように作ってんの?
だったらたいしたもの。
今時モバイルですらマルチスレッドが当たり前だからベンチマークも複数スレッドで実行すべき。
スレッド使うライブラリーをリンクしないとシングルスレッド版のmallocとリンクする環境もあるし
その自作アロケーターって複数スレッドから呼んでも大丈夫なように作ってんの?
だったらたいしたもの。
今時モバイルですらマルチスレッドが当たり前だからベンチマークも複数スレッドで実行すべき。
スレッド使うライブラリーをリンクしないとシングルスレッド版のmallocとリンクする環境もあるし
307名前は開発中のものです。
2015/02/11(水) 03:06:07.85ID:rJC6nJDr308名前は開発中のものです。
2015/02/11(水) 03:24:52.81ID:tga+SBCo >>306
データ読み込みや通信で「now loading…」、ムービー再生とか以外でマルチスレッドって何に使うの?
いろんな判定でシングルでないと困らない?
俺はコンシューマ長すぎのせいか、マルチスレッド(タイムスライス型)は、そもそもゲームシステムとして実装が思い付かない
どうしてもタスク()で疑似マルチしか作れないや
データ読み込みや通信で「now loading…」、ムービー再生とか以外でマルチスレッドって何に使うの?
いろんな判定でシングルでないと困らない?
俺はコンシューマ長すぎのせいか、マルチスレッド(タイムスライス型)は、そもそもゲームシステムとして実装が思い付かない
どうしてもタスク()で疑似マルチしか作れないや
309名前は開発中のものです。
2015/02/11(水) 03:29:13.74ID:0cWu/C1d >>306
ポインタのつなぎ替えの部分に一応クリティカルセクション使ってる。
が、これのベンチがねぇ・・・
複数スレッドで同時に確保しまくって人為的にコリジョン起こしても、
シングルの場合と違って純粋な値が取れないので。
ポインタのつなぎ替えの部分に一応クリティカルセクション使ってる。
が、これのベンチがねぇ・・・
複数スレッドで同時に確保しまくって人為的にコリジョン起こしても、
シングルの場合と違って純粋な値が取れないので。
310名前は開発中のものです。
2015/02/11(水) 03:54:41.50ID:0cWu/C1d スマポあった。同じく10000を10回。
new 0.00696283003770957 100
shared_ptr 0.039324851409757 564.782584046715
生ポインタとboostのshared_ptrね。
下が自作のリンク方式とカリカリにチューンした参照カウント方式のスマートポインタ。
link 0.0273835524999122 393.281932082318
count 0.0157994938635595 226.911956460117
これも、安全をとるなら生より多少遅くてもboostで十分と思う。
自作のスマポは労力の割にはねぇ。
new 0.00696283003770957 100
shared_ptr 0.039324851409757 564.782584046715
生ポインタとboostのshared_ptrね。
下が自作のリンク方式とカリカリにチューンした参照カウント方式のスマートポインタ。
link 0.0273835524999122 393.281932082318
count 0.0157994938635595 226.911956460117
これも、安全をとるなら生より多少遅くてもboostで十分と思う。
自作のスマポは労力の割にはねぇ。
311名前は開発中のものです。
2015/02/11(水) 04:10:32.63ID:0cWu/C1d312名前は開発中のものです。
2015/02/11(水) 08:00:15.92ID:JqfHYvpf んーなんか車輪の再発明がどんどん無駄になってくのな
必要な機能が既存のコードにあるなら、わざわざ作る必要は無い、みたいな
必要な機能が既存のコードにあるなら、わざわざ作る必要は無い、みたいな
313名前は開発中のものです。
2015/02/11(水) 08:08:59.24ID:JqfHYvpf 自分は今は自作コンパクションを使ってるけど、これも誰かの作ったコードを流用した方が早い時代が来るのかな?
314名前は開発中のものです。
2015/02/11(水) 08:40:48.37ID:45+5SbHz315名前は開発中のものです。
2015/02/11(水) 13:02:10.23ID:tga+SBCo >>314
これの詳細を知ってるが、レンダリングはPCだとGPU処理だから、マルチスレッドとは別で非同期でしょ?
それ以外は先程書いた通り
因みにこのフレームワークは自動変数(スタック)以外はメモリは静的に持ってるよ
これの詳細を知ってるが、レンダリングはPCだとGPU処理だから、マルチスレッドとは別で非同期でしょ?
それ以外は先程書いた通り
因みにこのフレームワークは自動変数(スタック)以外はメモリは静的に持ってるよ
316名前は開発中のものです。
2015/02/11(水) 13:10:49.29ID:vZk9YDm5 ガチな将棋AIとか作ることになったらやっぱりCPUスレッド数のスレッド作って読みを分散するんじゃなかろうか
317名前は開発中のものです。
2015/02/11(水) 13:40:34.62ID:sOoti607 どうせなら複数マシンに分散させるべき
318名前は開発中のものです。
2015/02/11(水) 14:57:37.67ID:/JcbXeo3 そもそもメモリ管理なんて個人でやるものじゃないよ
せいぜいオブジェクトプールのように局所的なところで使ったほうがいい
自作アロケータを使ってみたい気持ちはわかるんだけどねぇ
せいぜいオブジェクトプールのように局所的なところで使ったほうがいい
自作アロケータを使ってみたい気持ちはわかるんだけどねぇ
319名前は開発中のものです。
2015/02/11(水) 15:06:24.20ID:rJC6nJDr >>308
シングルスレッドでパフォーマンス十分なら要らないんじゃない?
その場合アロケーター自作しようとする理由すら解らなくなるけど。
レンダリングスレッドを分けるってのは比較的簡単だからよく使われてる方法だね。
グラフィックスのAPIが全て非同期という訳でもないし、呼ぶ事自体比較的コストが高いものもあるドローコールとか
あとGPUが全てやってくれるわけでもない。
影とかモデルの持ってるマテリアルによってはマルチパスレンダリングが必要になるしね
それら含めて一つの独立したスレッドでレンダリングを行うって事
どこまでやるかはそれぞれのゲームエンジンの実装次第だけど
シングルスレッドでパフォーマンス十分なら要らないんじゃない?
その場合アロケーター自作しようとする理由すら解らなくなるけど。
レンダリングスレッドを分けるってのは比較的簡単だからよく使われてる方法だね。
グラフィックスのAPIが全て非同期という訳でもないし、呼ぶ事自体比較的コストが高いものもあるドローコールとか
あとGPUが全てやってくれるわけでもない。
影とかモデルの持ってるマテリアルによってはマルチパスレンダリングが必要になるしね
それら含めて一つの独立したスレッドでレンダリングを行うって事
どこまでやるかはそれぞれのゲームエンジンの実装次第だけど
320名前は開発中のものです。
2015/02/11(水) 20:31:12.70ID:IKslX+U4 PS3なんかはは汎用コアが貧弱でマルチスレッド使わないとまともに動かないらしいけど
PCはターボブーストなんかもあるし処理分割しなくてもそれなりに動くのかね
ゲームで重い処理って言ったらAIとか物理演算とか?
それらやらなきゃコア使い切る事もなさそう
PCはターボブーストなんかもあるし処理分割しなくてもそれなりに動くのかね
ゲームで重い処理って言ったらAIとか物理演算とか?
それらやらなきゃコア使い切る事もなさそう
321名前は開発中のものです。
2015/02/11(水) 22:28:39.42ID:o3rdwdSA 自分の場合、(作ったのはC#とXNAだったけど)
・更新
非同期・4体のキャラの思考ルーチンをマルチスレッドで(他のキャラの状態は前フレームのものを利用)。
同期・同時に行う必要のある判定類。
非同期・4体のキャラのアニメーション演算(*)
↓
・描画(スキップされることがある)
非同期・キャラの描画コマンド発行(ただし、4体それぞれに(*)を同期)。(**)
同期
非同期・背景などの描画。
↓
・更新
※未了のタスクがあればいったん待機して、最初と同じ。
ということはやっていた。じつはXNAは(**)が異様に重くなるというハンデ持ちで、
(*)はC++だろうと当然重いはずだから、パフォーマンス上がると思うよ。
・更新
非同期・4体のキャラの思考ルーチンをマルチスレッドで(他のキャラの状態は前フレームのものを利用)。
同期・同時に行う必要のある判定類。
非同期・4体のキャラのアニメーション演算(*)
↓
・描画(スキップされることがある)
非同期・キャラの描画コマンド発行(ただし、4体それぞれに(*)を同期)。(**)
同期
非同期・背景などの描画。
↓
・更新
※未了のタスクがあればいったん待機して、最初と同じ。
ということはやっていた。じつはXNAは(**)が異様に重くなるというハンデ持ちで、
(*)はC++だろうと当然重いはずだから、パフォーマンス上がると思うよ。
322名前は開発中のものです。
2015/02/11(水) 22:33:55.73ID:o3rdwdSA 連投悪い。
というか、マルチコアのCPUなのにシングルで動作させてるって、同人ならともかく
商用ゲームだとハードを全然使いこなせていないんじゃないの。
仮にPS3相当かそれ以上のハードで、シングルで楽々動くゲームがあるとしたら、
それは「CPUスゲー!」じゃなくて「CPUを遊ばせている未熟なプログラム」
もしくは「絵的にボリューム不足」「敢えてシンプル路線のゲームにしただけ」だと思う。
というか、マルチコアのCPUなのにシングルで動作させてるって、同人ならともかく
商用ゲームだとハードを全然使いこなせていないんじゃないの。
仮にPS3相当かそれ以上のハードで、シングルで楽々動くゲームがあるとしたら、
それは「CPUスゲー!」じゃなくて「CPUを遊ばせている未熟なプログラム」
もしくは「絵的にボリューム不足」「敢えてシンプル路線のゲームにしただけ」だと思う。
323名前は開発中のものです。
2015/02/11(水) 23:00:37.92ID:DLujIAOi 妖精左「マルチスレッド!!」
妖精右「マルチタスク!!」
俺「じっそうできればいいから・・・」
部長「ま だ か は や く し ろ 。」
妖精右「マルチタスク!!」
俺「じっそうできればいいから・・・」
部長「ま だ か は や く し ろ 。」
324名前は開発中のものです。
2015/02/12(木) 00:02:20.82ID:ebWGGwik >>322
C#なんて全然ハード生かせないだろC++で作れよ
C#なんて全然ハード生かせないだろC++で作れよ
325名前は開発中のものです。
2015/02/12(木) 00:29:15.74ID:DJBGtoR8 C++至上主義の時代はもう終わった
326名前は開発中のものです。
2015/02/12(木) 00:32:29.34ID:UV0J6V6h まだだ!まだ終わらんよ!
327名前は開発中のものです。
2015/02/12(木) 02:23:42.32ID:U9NT4imE さっき始まったばかりですよ
328名前は開発中のものです。
2015/02/12(木) 02:30:04.64ID:rNOcVIpi >>322
たしかにC#だと、ネイティヴDirectX呼び出す時点でカーネル切替が発生し、ボトルネックになる
(ただ一方、GCはちょっと工夫すればシーン切替時以外は抑制できる)。
まあC++が最強という事実は揺るがないし、だからここを覗きに来てるんだけど
今まで作った資産をそっくり移植するのは全部1人開発だと工数的に厳し過ぎるんよ。
自分はあくまでゲームを完成させるのが主眼なもんで。
たしかにC#だと、ネイティヴDirectX呼び出す時点でカーネル切替が発生し、ボトルネックになる
(ただ一方、GCはちょっと工夫すればシーン切替時以外は抑制できる)。
まあC++が最強という事実は揺るがないし、だからここを覗きに来てるんだけど
今まで作った資産をそっくり移植するのは全部1人開発だと工数的に厳し過ぎるんよ。
自分はあくまでゲームを完成させるのが主眼なもんで。
329名前は開発中のものです。
2015/02/12(木) 02:30:45.99ID:rNOcVIpi >>324だった。
330名前は開発中のものです。
2015/02/12(木) 09:37:50.92ID:ebWGGwik >>328
> 仮にPS3相当かそれ以上のハードで、シングルで楽々動くゲームがあるとしたら、
> それは「CPUスゲー!」じゃなくて「CPUを遊ばせている未熟なプログラム」
> もしくは「絵的にボリューム不足」「敢えてシンプル路線のゲームにしただけ」だと思う。
こんなこと言う人間が
> 自分はあくまでゲームを完成させるのが主眼なもんで。
なんてよく言えるな
> 仮にPS3相当かそれ以上のハードで、シングルで楽々動くゲームがあるとしたら、
> それは「CPUスゲー!」じゃなくて「CPUを遊ばせている未熟なプログラム」
> もしくは「絵的にボリューム不足」「敢えてシンプル路線のゲームにしただけ」だと思う。
こんなこと言う人間が
> 自分はあくまでゲームを完成させるのが主眼なもんで。
なんてよく言えるな
331名前は開発中のものです。
2015/02/12(木) 09:58:41.94ID:DJBGtoR8 Unityの台頭とC++erの更なる没落
332名前は開発中のものです。
2015/02/12(木) 10:00:56.62ID:K+V6X3Ce 社員さん、ステマ乙
333名前は開発中のものです。
2015/02/12(木) 10:16:24.93ID:xZrWsSkn 世界は使いやすい道具の前にひれ伏す
これが分からない奴は一生地を這う
これが分からない奴は一生地を這う
334名前は開発中のものです。
2015/02/12(木) 10:44:14.01ID:K+V6X3Ce Unityあつかいづらいから自分でライブラリ作ったわwww
335名前は開発中のものです。
2015/02/12(木) 12:11:18.44ID:ZP/aF8VN アホか。
みなが同じ道具を使ったら、それを売って儲ける奴の小作農になるだけ。
これが分からない人こそ
>一生地を這う
みなが同じ道具を使ったら、それを売って儲ける奴の小作農になるだけ。
これが分からない人こそ
>一生地を這う
336名前は開発中のものです。
2015/02/12(木) 12:13:54.04ID:ZP/aF8VN337名前は開発中のものです。
2015/02/12(木) 13:25:06.24ID:0nYHwL7l 実際PS3の初期タイトルは酷いの結構あったな
アイデアファクトリーとか
アイデアファクトリーとか
338名前は開発中のものです。
2015/02/12(木) 15:23:29.14ID:gRG035Lb 作るものに応じて道具を選べない人が一生地を這うのでは
各処理をどんだけ細切れにしても結局全部処理しないと次には進めず、
しかも実は単一の処理は積み重ねても大して時間はかかっておらず、
単なるスレッドの立て損にしかなっていないんならマルチスレッドなんか不要
商業だからだのなんだのと適当な言い訳をしても、
実際は目に付くよさそうに見えるものに振り回されているキョロ充
まずは作りやすい方法で実装してテストして、ダメだったら作り直せばいいじゃん
各処理をどんだけ細切れにしても結局全部処理しないと次には進めず、
しかも実は単一の処理は積み重ねても大して時間はかかっておらず、
単なるスレッドの立て損にしかなっていないんならマルチスレッドなんか不要
商業だからだのなんだのと適当な言い訳をしても、
実際は目に付くよさそうに見えるものに振り回されているキョロ充
まずは作りやすい方法で実装してテストして、ダメだったら作り直せばいいじゃん
339名前は開発中のものです。
2015/02/12(木) 17:28:07.56ID:K+V6X3Ce Unityの社員ってステマのノルマがあるみたい
340名前は開発中のものです。
2015/02/12(木) 17:41:44.09ID:3BvTygsz スレッドのが実装しやすい処理もあると思うの
341名前は開発中のものです。
2015/02/12(木) 19:41:03.02ID:gRG035Lb うにちゃんは次期主力ゲームエンジンの座を狙っているからね、仕方ないね
何が悲しくてわざわざ柔軟な使い方のできる言語投げ捨ててゲームエンジンなんぞに…
PHPやらJAVAやらに行った方がマシ
何が悲しくてわざわざ柔軟な使い方のできる言語投げ捨ててゲームエンジンなんぞに…
PHPやらJAVAやらに行った方がマシ
342名前は開発中のものです。
2015/02/12(木) 20:21:56.36ID:K+V6X3Ce そんなに自信があるのなら、自分たちでゲーム機を出せばいいのに
彼らの夢は、所詮は砂上の楼閣なんかね
彼らの夢は、所詮は砂上の楼閣なんかね
343名前は開発中のものです。
2015/02/12(木) 20:26:40.79ID:EbJGy+Ll このスレってレベル低いよな
344名前は開発中のものです。
2015/02/12(木) 20:29:07.88ID:EbJGy+Ll >>338
出来ることは並列でやった方が早く終わるよね。
出来ることは並列でやった方が早く終わるよね。
345名前は開発中のものです。
2015/02/12(木) 20:35:29.18ID:wNE8sYSh >>342
それは無理。彼らの夢は、ゲーム業界に巣喰う寄生虫になる事だから。
それは無理。彼らの夢は、ゲーム業界に巣喰う寄生虫になる事だから。
346名前は開発中のものです。
2015/02/12(木) 20:42:55.10ID:K+V6X3Ce >>344
その前にアルゴリズムを考えた方が早いかもね
その前にアルゴリズムを考えた方が早いかもね
347名前は開発中のものです。
2015/02/12(木) 21:16:05.40ID:SEu5lClB シングルスレッドで足りるならシングルスレッドで作ればいいと思う
後からマルチスレッドにしようとか考えたら地獄みるけど
ムダに作り込んで時間かけても仕方ないしね
後からマルチスレッドにしようとか考えたら地獄みるけど
ムダに作り込んで時間かけても仕方ないしね
348名前は開発中のものです。
2015/02/12(木) 21:57:58.62ID:5lpYcWcf スレッドの話で盛り上がってるけど、みんなpromiseとかatomicとかcasとかちゃんと理解できてる?
俺は半分も理解してない
俺は半分も理解してない
349名前は開発中のものです。
2015/02/12(木) 22:02:24.65ID:BY0ie4C4 C++を書いているとJavaやC#にだんだん似てくるし
C++で便利コードを書いても既存のライブラリには適わないし
C++でゲーム用ライブラリを書いていると既存のエンジンに似てきたから
既存のエンジン使うことにした。困ったらエンジン改造すればいい。
C++で便利コードを書いても既存のライブラリには適わないし
C++でゲーム用ライブラリを書いていると既存のエンジンに似てきたから
既存のエンジン使うことにした。困ったらエンジン改造すればいい。
350名前は開発中のものです。
2015/02/12(木) 23:13:41.81ID:X8c9QSvd おーい、誰かクマが釣り針見つめてるAA持ってない?
>>348
promiseはFutureパターンのSTL実装かな。
casは不勉強だったわ。いちいちロックしなくても非同期でノード更新できるってことかな。
>>348
promiseはFutureパターンのSTL実装かな。
casは不勉強だったわ。いちいちロックしなくても非同期でノード更新できるってことかな。
351名前は開発中のものです。
2015/02/12(木) 23:54:36.97ID:yCMGD6Md352名前は開発中のものです。
2015/02/13(金) 00:16:59.27ID:6pLn2rnq visual c++2010です
コードを書いていると、未定義エラーなどのエラーが起こっている部分を波線で表示する機能がありますが
それをすばやく表示したい(エラーを確認する間隔を早めたい)時はどうすればいいのでしょうか?
オプションでそれらしき項目を探しているのですが、見つけられず困っています…
コードを書いていると、未定義エラーなどのエラーが起こっている部分を波線で表示する機能がありますが
それをすばやく表示したい(エラーを確認する間隔を早めたい)時はどうすればいいのでしょうか?
オプションでそれらしき項目を探しているのですが、見つけられず困っています…
353名前は開発中のものです。
2015/02/13(金) 00:28:10.25ID:FqU8O5pj 今表示されてる速度が最速だよ
文句があるならもっと早いCPUに代えろ
もしくはVSのバージョン上げたら改善される可能製はある
文句があるならもっと早いCPUに代えろ
もしくはVSのバージョン上げたら改善される可能製はある
354名前は開発中のものです。
2015/02/13(金) 00:38:48.23ID:PNw/R4Nn 何が原因かわからんが仮にnullpoって変数なり型名なりがあるとしてpoにだけ下線とエラー表示が出る謎現象なんかが困る
nullpoの間にスペース入れた後に消すなりコンパイルするなりして文字解析をやり直させると普通に通る
nullpoの間にスペース入れた後に消すなりコンパイルするなりして文字解析をやり直させると普通に通る
355名前は開発中のものです。
2015/02/13(金) 00:38:56.82ID:6pLn2rnq ありがとうございました
356名前は開発中のものです。
2015/02/13(金) 02:11:39.11ID:E1xWFoJ9 コードを書いてるといきなり妙な場所に波線
面食らいつつ原因を探るべくコードを見直しているといつの間にか消える
他にも指摘されて修正した部分の波線がなかなか消えず、
あれ?修正間違ったかなと書き直そうとすると消えたりする
VSに不信感を抱きそう
面食らいつつ原因を探るべくコードを見直しているといつの間にか消える
他にも指摘されて修正した部分の波線がなかなか消えず、
あれ?修正間違ったかなと書き直そうとすると消えたりする
VSに不信感を抱きそう
357名前は開発中のものです。
2015/02/13(金) 03:15:03.66ID:Jw6U7GOH VS2010より2012, 2013はずっと賢いから変えたほうがいい
あとVSの謎の挙動はコードが悪いせいなのできちんと書くように心がけましょう
あとVSの謎の挙動はコードが悪いせいなのできちんと書くように心がけましょう
358名前は開発中のものです。
2015/02/13(金) 03:17:28.00ID:Jw6U7GOH いつもコードが悪いせいではないな
一括置換とかファイル名変更とか,変なことをやるとVSたんはたまにアホになる
一括置換とかファイル名変更とか,変なことをやるとVSたんはたまにアホになる
359名前は開発中のものです。
2015/02/13(金) 03:36:37.36ID:PNw/R4Nn というわけでついっさっきVS2013導入したった
C++で打ってる時2010だとショートカットキー(Alt→派)でしかインテリセンス出なかったのが改善されてるのが今のところ一番嬉しい
C++で打ってる時2010だとショートカットキー(Alt→派)でしかインテリセンス出なかったのが改善されてるのが今のところ一番嬉しい
360名前は開発中のものです。
2015/02/13(金) 04:37:35.15ID:diYHW0ok 外部エディタを使っている自分に隙はなかった
361名前は開発中のものです。
2015/02/13(金) 09:12:51.03ID:PRy9EczC どんなスペックのPC使ってんの
362名前は開発中のものです。
2015/02/13(金) 10:50:31.89ID:WvS4Hu4Q JavaやC#ならわかる
だが負の遺産であるクソ構文抱えたC++で
実用的な速度であれだけのことが出来ることそのものが信じられん
動いたらラッキーくらいの謙虚な気持ちで使うべき
だが負の遺産であるクソ構文抱えたC++で
実用的な速度であれだけのことが出来ることそのものが信じられん
動いたらラッキーくらいの謙虚な気持ちで使うべき
363名前は開発中のものです。
2015/02/13(金) 11:23:05.70ID:/fWsfy1c C++とC#ってそんなにちがうか??
C++って多少手間暇かかる部分はあるが、自前で組めばどうにでもなる事でね?
まあ、プログラムはソースの書き方だけで作る時間に10倍以上の差が出るし、
モジュールやオブジェクト指向を理解してるかどうかで100倍以上の差が出るから、
その辺りの違いだろうけどな。
C++って多少手間暇かかる部分はあるが、自前で組めばどうにでもなる事でね?
まあ、プログラムはソースの書き方だけで作る時間に10倍以上の差が出るし、
モジュールやオブジェクト指向を理解してるかどうかで100倍以上の差が出るから、
その辺りの違いだろうけどな。
364名前は開発中のものです。
2015/02/13(金) 11:25:59.01ID:NjULDeHN MSがBC++を買っとけば世界が平和になってたんですよ…
365名前は開発中のものです。
2015/02/13(金) 12:17:28.61ID:oAXnXeHu 学習コストの高い言語はもう流行んないでしょ
ゲームもコア部分以外はスクリプトで書くのが主流になるだろうし
C++プログラマはゲームエンジン書けるレベルの人しか生き残れないな
ゲームもコア部分以外はスクリプトで書くのが主流になるだろうし
C++プログラマはゲームエンジン書けるレベルの人しか生き残れないな
366名前は開発中のものです。
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
まだそんな事を言っているのか
http://arewefastyet.com/#machine=28&view=breakdown&suite=asmjs-ubench
368名前は開発中のものです。
2015/02/13(金) 14:07:45.39ID:/fWsfy1c まずは、JavaとJavaScriptの違いから勉強しようね?
369名前は開発中のものです。
2015/02/13(金) 14:07:50.74ID:ozS65/+Z と言うかC/C++のスレでいい加減スレチw
370名前は開発中のものです。
2015/02/13(金) 14:18:22.58ID:diYHW0ok いや、C/C++の存在意義を知る上で重要な議論だよ。
371名前は開発中のものです。
2015/02/13(金) 14:20:03.86ID:s8SeVfmU しかも、asm-jsってClangで中間コードにしたものをJavascriptに変換するものであって人間が書いてネイティブコードより速くなるもんじゃねえよ
372名前は開発中のものです。
2015/02/13(金) 14:58:19.33ID:wCixqXPj 他の言語は実行がVMだから遅い、C++はネイティブコードだから(常に)VMより速いと言う幻想を>>366は持っているようなので
ぶち壊してやった
ぶち壊してやった
373名前は開発中のものです。
2015/02/13(金) 15:06:44.71ID:/fWsfy1c で、JavaやC#がC++と等速になったとかいうデータはマダー??
374名前は開発中のものです。
2015/02/13(金) 15:23:17.57ID:fRUihGLp375名前は開発中のものです。
2015/02/13(金) 15:25:16.23ID:diYHW0ok いったい、何のためにそんなことを・・・
376名前は開発中のものです。
2015/02/13(金) 15:25:55.96ID:9I9SRziA C++の中にCをラップしているという、気味の悪いC++の現状を憂う気持ちは分かる
C++という言語自体がすでに溶岩流状態だよなwww
…
C++という言語自体がすでに溶岩流状態だよなwww
…
377名前は開発中のものです。
2015/02/13(金) 15:26:18.69ID:s8SeVfmU378名前は開発中のものです。
2015/02/13(金) 15:27:18.22ID:7ayiwF3a 中間コードを実行するVMの関数呼び出しや演算がC++より速くなることは原理的にないんじゃないの
速くなったとしても結局記述されたコードのレベルの差でしょ
C++でチューニングしたコード書けばもっと速くなる
Cのコードがチューニングされたアセンブリより遅いのといっしょ
速くなったとしても結局記述されたコードのレベルの差でしょ
C++でチューニングしたコード書けばもっと速くなる
Cのコードがチューニングされたアセンブリより遅いのといっしょ
379名前は開発中のものです。
2015/02/13(金) 15:31:25.28ID:4Xq/J0Q+ 話の流れに乗ってみるが
ゲーム本体はc++でツール等はc#というのを
ちらほら聞くけど実行している人いる?
いるとしたらどれだけ有用か意見をお伺いしたい
ゲーム本体はc++でツール等はc#というのを
ちらほら聞くけど実行している人いる?
いるとしたらどれだけ有用か意見をお伺いしたい
380名前は開発中のものです。
2015/02/13(金) 15:36:07.95ID:s8SeVfmU381名前は開発中のものです。
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分ぐらいかかります
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分ぐらいかかります
382名前は開発中のものです。
2015/02/13(金) 15:46:18.40ID:diYHW0ok 原理的なパフォーマンスより生産性を優先されることで言語の歴史は移り変わってきたし、
機械語 ⇒ アセンブラ ⇒ C
までは割とはっきりと移り変わってきたと思う。
それ以降、C ⇒ C++ ⇒ Java or C#
についてはうろうろしてる感じ・・・。
やっぱり、今もC++は欠かせないでしょ。
機械語 ⇒ アセンブラ ⇒ C
までは割とはっきりと移り変わってきたと思う。
それ以降、C ⇒ C++ ⇒ Java or C#
についてはうろうろしてる感じ・・・。
やっぱり、今もC++は欠かせないでしょ。
383名前は開発中のものです。
2015/02/13(金) 15:46:47.59ID:7ayiwF3a >>380
あー確かにターゲットが広いとC++で全部に最適化するのは現実的じゃないな
あー確かにターゲットが広いとC++で全部に最適化するのは現実的じゃないな
384名前は開発中のものです。
2015/02/13(金) 15:52:11.33ID:KYsA9vla ツールはマルチプラットホームで動く必要が無いってのが大きいんじゃないの?
Windows, Mac, コンシューマ機 で動くとなると C++ しか選択肢が無かった気がする。
そこにモバイルが加わって、必ずしもC++が移植性の面で最良では無くなりつつあるのかもしれない。
Windows, Mac, コンシューマ機 で動くとなると C++ しか選択肢が無かった気がする。
そこにモバイルが加わって、必ずしもC++が移植性の面で最良では無くなりつつあるのかもしれない。
385名前は開発中のものです。
2015/02/13(金) 15:55:59.21ID:/fWsfy1c 問題点がGCを使うことの有無になってきてる気がするな
適切にGC.Collect()を使えばいいというような話はあるが……どちらが良いかはよーわからんw
適切にGC.Collect()を使えばいいというような話はあるが……どちらが良いかはよーわからんw
386名前は開発中のものです。
2015/02/13(金) 15:56:27.80ID:7ah0RMwS なんか勘違いしてる人が多いみたいだけど、C#は簡単な言語じゃなくて、理想的なオブジェクト指向をするための言語
そもそもオブジェクト指向が出来ない人はC++もC#もまともに使いこなせないから
そもそもオブジェクト指向が出来ない人はC++もC#もまともに使いこなせないから
387名前は開発中のものです。
2015/02/13(金) 15:59:29.02ID:diYHW0ok >>386
まーそうだな。
いずれにしても、ちゃんとした設計ができるというのが前提。
その上でパフォーマンスと生産性(クロスプラットフォームかどうかなど)を勘案した上で適切な言語を選択する。
できれば全部C++でやりたい派だけどw
まーそうだな。
いずれにしても、ちゃんとした設計ができるというのが前提。
その上でパフォーマンスと生産性(クロスプラットフォームかどうかなど)を勘案した上で適切な言語を選択する。
できれば全部C++でやりたい派だけどw
388名前は開発中のものです。
2015/02/13(金) 16:09:25.94ID:/fWsfy1c 設計気にせずコーディングでゴリゴリやりたい派が居るからなぁ……
ライブラリが充実してると有効なんだが、充実してない場合は……お察し下さい
ライブラリが充実してると有効なんだが、充実してない場合は……お察し下さい
389名前は開発中のものです。
2015/02/13(金) 17:05:12.10ID:wCixqXPj C++のコンパイラは事前コンパイラだから
実行前にはプログラム全体のネイティブコードが得られるが
プログラム全体を無差別に最適化する分コンパイルに時間が掛かるし
実行時の状況を見て最適化する事も出来ない
JITコンパイルは実行時によく使われたコードだけを最適化するから割と高速に実行できる事が多い
http://ja.wikipedia.org/wiki/実行時コンパイラ
実行前にはプログラム全体のネイティブコードが得られるが
プログラム全体を無差別に最適化する分コンパイルに時間が掛かるし
実行時の状況を見て最適化する事も出来ない
JITコンパイルは実行時によく使われたコードだけを最適化するから割と高速に実行できる事が多い
http://ja.wikipedia.org/wiki/実行時コンパイラ
390名前は開発中のものです。
2015/02/13(金) 17:11:55.89ID:diYHW0ok その中間がGPUのシェーダーって感じかな。
動的ではないけど、同じコードをデバイス(ドライバ)に応じて実行直前に一度コンパイルする。
動的ではないけど、同じコードをデバイス(ドライバ)に応じて実行直前に一度コンパイルする。
391名前は開発中のものです。
2015/02/13(金) 17:26:17.39ID:wCixqXPj JITだと最適化すべき所があまりに多いと最適化が間に合わないし、あまり複雑な最適化はできないだろうけど
プロファイラで遅いところを見つけてそこだけC++で書くことも出来る
そうすれば速度が下がるデメリットより生産性が上がるメリットの方が上回ると思う
Android 5.0は中間コードから事前コンパイル出来るらしいが
インストールに時間取りそうだな
MonoはJITコンパイルが禁止されているiOS向けには事前コンパイルするらしい
プロファイラで遅いところを見つけてそこだけC++で書くことも出来る
そうすれば速度が下がるデメリットより生産性が上がるメリットの方が上回ると思う
Android 5.0は中間コードから事前コンパイル出来るらしいが
インストールに時間取りそうだな
MonoはJITコンパイルが禁止されているiOS向けには事前コンパイルするらしい
392名前は開発中のものです。
2015/02/13(金) 17:30:13.12ID:s8SeVfmU393名前は開発中のものです。
2015/02/13(金) 17:40:26.14ID:7ayiwF3a ただでさえ動的な型付けやジェネリクス、クロージャなんかでスクリプトの最適化にかかるコストは高いし
かけられるコストに制限のかかるJITが静的なコンパイラ超えるのはまだまだ先の話だろうな
かけられるコストに制限のかかるJITが静的なコンパイラ超えるのはまだまだ先の話だろうな
394名前は開発中のものです。
2015/02/13(金) 17:49:39.74ID:3uAgugBd C++入門系の本だと「STLは難しいので分からなくてOKです^^;」とか書いてあるけど
Javaとかの入門書だとジェネリクスやリフレクションも簡単に分かって当たり前が前提
程度の低い人がC++入門書の内容も理解できずに「C++はすごいんだ」と威張っている
Javaとかの入門書だとジェネリクスやリフレクションも簡単に分かって当たり前が前提
程度の低い人がC++入門書の内容も理解できずに「C++はすごいんだ」と威張っている
395名前は開発中のものです。
2015/02/13(金) 17:53:19.30ID:s8SeVfmU >>394
何言ってるのか解らない
何言ってるのか解らない
396名前は開発中のものです。
2015/02/13(金) 17:57:54.44ID:9I9SRziA どこの入門書だよ…
STLのような便利ツールを分からなくてOKなんて書くような入門書はクソ本認定必至だぞ
Unityに絡まれたりC#やJavaに絡まれたり大変だな
一体何が始まるんです?
STLのような便利ツールを分からなくてOKなんて書くような入門書はクソ本認定必至だぞ
Unityに絡まれたりC#やJavaに絡まれたり大変だな
一体何が始まるんです?
397名前は開発中のものです。
2015/02/13(金) 18:00:31.37ID:3uAgugBd ここで何の言語が速いだのマルチスレッドだの騒いでる連中は怪しいってこと
398名前は開発中のものです。
2015/02/13(金) 18:05:07.34ID:s8SeVfmU >>394
> Javaとかの入門書だとジェネリクスやリフレクションも簡単に分かって当たり前が前提
何が言いたいのか解らないからここだけに反応するけど、AmazonでJava入門して人気度でソートして一番上に出てきた「スッキリわかるJava入門」って本の目次にはジェネリクスもリフレクションも無いぞ
> Javaとかの入門書だとジェネリクスやリフレクションも簡単に分かって当たり前が前提
何が言いたいのか解らないからここだけに反応するけど、AmazonでJava入門して人気度でソートして一番上に出てきた「スッキリわかるJava入門」って本の目次にはジェネリクスもリフレクションも無いぞ
399名前は開発中のものです。
2015/02/13(金) 18:19:41.22ID:ozS65/+Z 別にオートマ乗りたい人もマニュアル車乗りたい人も好きにすればいいよ
400名前は開発中のものです。
2015/02/13(金) 19:06:42.10ID:diYHW0ok ほんとに最初はSTLなしで勉強したらいいけど、
ある程度できるようになったらSTLを使わない手はない。
STLなしで大規模プログラミングするとか拷問。
ある程度できるようになったらSTLを使わない手はない。
STLなしで大規模プログラミングするとか拷問。
401名前は開発中のものです。
2015/02/13(金) 19:09:22.59ID:9I9SRziA そんなことより
Hoge() {}
と
Hoge() {
}
と
Hoge()
{
}
を使い分けるタイミングについて
Hoge() {}
と
Hoge() {
}
と
Hoge()
{
}
を使い分けるタイミングについて
402名前は開発中のものです。
2015/02/13(金) 19:20:16.61ID:ozS65/+Z403名前は開発中のものです。
2015/02/13(金) 19:23:44.45ID:9WE2qWDV バージョンによるかも知れないけどVSでインデント自動だと
Hoge() {}
じゃなくて
Hoge() { }
と中括弧の間に半角空白が入るのが気になる。
Hoge() {}
じゃなくて
Hoge() { }
と中括弧の間に半角空白が入るのが気になる。
404名前は開発中のものです。
2015/02/13(金) 19:27:56.48ID:ozS65/+Z 大抵のIDEにコーディングスタイル(ルール)の設定あるはず
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】トランプ大統領、中国の習近平国家主席を「国賓」として招待することに ★3 [ニョキニョキ★]
- 【速報】トランプ大統領、中国の習近平国家主席を「国賓」として招待することに ★4 [ニョキニョキ★]
- 日本と中国を結ぶ12航空路線で全便欠航 中国人に最も人気の海外旅行先は日本から韓国に ★2 [ぐれ★]
- 【東京・足立の車暴走】赤信号無視か 危険運転致死傷疑いも視野に捜査 逮捕された職業不詳の男性(37)は精神疾患で通院歴も ★3 [ぐれ★]
- 防衛費増額「賛成」62・8% 「反対」32・2%を大きく上回る 賛成「18~29歳で8割」世代差あらわ 産経FNN合同世論調査 ★3 [尺アジ★]
- 【テレビ】鈴木福&あのちゃんW主演 テレ東で押見修造氏の漫画『惡の華』実写ドラマ化決定! 累計325万部を突破した伝説的漫画 [冬月記者★]
- 【実況】博衣こよりのえちえち朝こよ🧪★2
- 【実況】博衣こよりのえちえち朝こよ🧪
- 【悲報】小野田紀美さん、宇宙人みたいな服を着てしまう…また、そのことを突っ込まれブチ切れ中www [856698234]
- 【悲報】セブンイレブンの納豆巻きの値段、限界突破wwwwwwwwwwwwwwwwww [977261419]
- 🏡
- お前らっていつもここにいるよな
