C/C++ゲーム製作総合スレッド Part5
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2014/01/16(木) 00:00:31.27ID:w6WW3hAo元スレ
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/
0021名前は開発中のものです。
2014/01/19(日) 10:49:59.46ID:NnB84tXJ本当にこれ
まぁソースは社内で共有してるからドキュメントでここを直すように指示出すと「お前みたいな新入が生意気言うんじゃねぇ」って怒られる
ボクもう3年目なんだけど、いつまで新入社員って言われるんだろうか・・・
ちなみに社内ではCとC++とJavaを使ってる「C#は使うから勉強しといてね」って言われたまま1年過ぎてるんだけどいつ使うの?
0022名前は開発中のものです。
2014/01/19(日) 10:56:21.22ID:zArRV3lb生意気言うんじゃねぇって言いたくなる気持ち分かるわ
0023名前は開発中のものです。
2014/01/19(日) 11:11:40.48ID:dxh/zY+ystd::string str;
str << "i=" << i << std::endl;
あれ、できないじゃーん!?
ググル → stringstream? めんどくせーな
// GCなしだと不便な例
std::vector<Hoge*> list;
Hoge* add(){
Hoge* hoge = new Hoge();
list += hoge;
return hoge;
}
Javaは不細工だけど使いやすいよ
0024名前は開発中のものです。
2014/01/19(日) 11:26:08.74ID:NnB84tXJマジか・・・
今度から何も言わないようにしよう
0025名前は開発中のものです。
2014/01/19(日) 11:54:37.95ID:zArRV3lbいや、もっとおっさんになってから
ガキだったなHAHAHAって笑えばいい
0026名前は開発中のものです。
2014/01/19(日) 12:09:14.19ID:TJLqrM7y0027名前は開発中のものです。
2014/01/19(日) 12:26:00.28ID:r/kDygNKhttp://kohada.2ch.net/prog/
0028名前は開発中のものです。
2014/01/19(日) 14:14:56.82ID:Ln30iNfrMFCのCStringは扱いやすいよ
とりあえず自前で実装したが
0029名前は開発中のものです。
2014/01/19(日) 20:23:57.46ID:vj8v8wNWauto_ptr使えばよくね?
0030名前は開発中のものです。
2014/01/19(日) 20:49:07.44ID:dxh/zY+y0031名前は開発中のものです。
2014/01/21(火) 07:47:41.61ID:6mpa2LLJそーゆーのが嫌いな人には向かないのかもな
0032名前は開発中のものです。
2014/01/21(火) 10:53:50.44ID:k20gbOyK0033名前は開発中のものです。
2014/01/21(火) 20:38:32.81ID:ZBJojU/1そして個人利用フリーのゲームエンジンに触れて無意味だったと知る
0034名前は開発中のものです。
2014/01/21(火) 21:36:58.77ID:/+yIHRaDぜひ教えて欲しい。
0035名前は開発中のものです。
2014/01/21(火) 21:44:06.65ID:HN69ElltオレオレXML(DOM)、オレオレAutoPtr(スマートポインタ)、オレオレException
みたいなユーティリティクラスが満載なのはひどいよ
0036名前は開発中のものです。
2014/01/21(火) 21:51:16.31ID:wLwEpkEcツリー状のメモリー情報を簡単に記録でき、しかもフラグメンテーションを
起こさないスグレモノ
だったんだが、ちょいと重すぎた
0037名前は開発中のものです。
2014/01/21(火) 22:20:38.42ID:/+yIHRaDそれが最近になってようやく「少しはわかったかな?」って感じになってきて、
俺俺ライブラリ……と呼べるほど立派なものじゃないけど、ゲームの土台を俺俺で作ってるところだから、
こういう行為を無意味とか言われるとちょっと辛いw
0038名前は開発中のものです。
2014/01/21(火) 22:41:33.97ID:wLwEpkEcオレの場合、マルチスレッドのしっかりした使い方はマスター出来たし
データ構造も一般人には何を意味してるか分からないぐらいに複雑なモノを
扱えるようになったし、スクリプト言語も好きなように拡張出来るようになった。
ただ、肝心のゲームはまだ納得のいくものが出来てないわけだが・・・
0039名前は開発中のものです。
2014/01/22(水) 00:21:13.24ID:qXFTHavY具体的に教えて
0040名前は開発中のものです。
2014/01/22(水) 00:45:51.85ID:FwnXEaYsお勉強マシーンと揶揄されるパターンに嵌ってるな
俺も笑えない口だが、まあがんばれ
>>39
ロックしろ。使うのはクリティカルセクションだけで十分
0041名前は開発中のものです。
2014/01/22(水) 00:52:28.97ID:1GoepMJHUnityとかUREは個人で使う範囲なら無料ライセンスがある
まあロゴ出ちゃったりするけど
Unityは少しくらい儲けてもおkだったはず
0042名前は開発中のものです。
2014/01/22(水) 05:31:21.08ID:MUoEPc440043名前は開発中のものです。
2014/01/22(水) 07:22:25.22ID:OGkLlkIlんー、頑張る
あとロックする方法に関しては、自分はミューテックスとイベント使ってるな
ちなみにセマフォは使ってない
>>39
マルチスレッド 同期でぐぐってみ?
あと、DirectXでマルチスレッドと相性の悪い命令があるから、それにも注意した方がいい
0044名前は開発中のものです。
2014/01/22(水) 08:14:42.24ID:OGkLlkIlとりあえず、異なるスレッドが同じ変数にアクセスするとエラーになる場合がある事は理解してる?
0045名前は開発中のものです。
2014/01/22(水) 08:25:54.82ID:AONvqNdWと
「どうやって作るのかわかんないから既製品でいいや」
の間には絶対越えられない山脈が横たわる。
んで、一緒に既製品使ってたのにある日突然その山脈をヒョイっと越えてく人達がいるんだ。
0046名前は開発中のものです。
2014/01/22(水) 16:00:09.27ID:4ljV+t0J別のプロジェクトで再利用したりする機会が出てくると、
フリーのライブラリやミドルウェアを使ってるのが足かせになる場合が出てくる。
…ので、おれは自分で書けるものは自分で書くことにしてる。
0047名前は開発中のものです。
2014/01/22(水) 19:55:47.76ID:FwnXEaYsJavaとかC#やらん人は一度体験したほうがいい
0048名前は開発中のものです。
2014/01/22(水) 20:38:32.77ID:MuwJkdzbWindows95の頃からある古い技術だし
0049名前は開発中のものです。
2014/01/22(水) 21:25:45.67ID:wzTb147vいったいこの知ったかは何を言っているんだろう?
0050名前は開発中のものです。
2014/01/22(水) 21:46:05.00ID:FwnXEaYs覚えることなにもないんじゃないの?
多重起動防止でミューテックス使うかもしれんけど、
マルチスレッドじゃなくてマルチプロセス?の話だし、
セマフォやイベントもまるで出番ないなぁ
そんなわけで結城のマルチスレッド・デザインパターン本の知識とか
ゲーム内で使わないし、ファイルIO、BGM、ネットワークくらいかな、
スレッドが関連してるのは
0051名前は開発中のものです。
2014/01/22(水) 21:50:12.62ID:dtO4FDEt0052名前は開発中のものです。
2014/01/22(水) 21:54:50.35ID:y74k/mSd0053名前は開発中のものです。
2014/01/22(水) 23:46:51.66ID:FwnXEaYsOpenMPとかも保守性を落とすわりには、バッファコピーとかくだらない
並列化しかできないし、積極的にスレッド化してもリスクの方が多い
>>51
Direct3D10以降に出てきたマルチスレッド対応も
結局内部でクリティカルセクションやってるだけだろうから、
だったらswingみたいにシングルスレッドモデルやるほうが無難だと思う
0054名前は開発中のものです。
2014/01/23(木) 00:01:05.67ID:9bErv8vs低クロック動作省エネこそ正義の非力な組込システムとかなら
仕方なく中〜細粒度並列の形で書いたりもするけれど
ほら、パソコンってアメ車のマッスルカーじゃないですか
CPUリソース、余るんですよね。湯水の如く
なので>>50の言うように粗い粒度でなら取り入れるけど
ゲームの中核部、シミュレーション部については古式ゆかしい
シングルスレッド前提の簡潔なスタイルでラクチンです
0055名前は開発中のものです。
2014/01/23(木) 00:58:45.53ID:XQzipMrBあるいは他スレだったかな?
0056名前は開発中のものです。
2014/01/23(木) 01:15:55.11ID:f/NLGL86背景・マップの更新
カメラの更新
これで3つスレッド使える
0057名前は開発中のものです。
2014/01/23(木) 01:18:02.56ID:f/NLGL86同じデータ参照しちゃいけないなら
一番負荷のかかるキャラクター周り計算が終わってから描画開始しないといけないじゃん
0058名前は開発中のものです。
2014/01/23(木) 01:29:07.57ID:y0vYWKn+描画側の垂直同期で待つのを避けるためにデータの複製を更新したあとに
スレッド間でデータをコピーorスワップする方法はある
データ用のメモリを2倍も使ったり、対価となるコストも大きいがな
これは広大なマップをもつシムシティのような特殊なゲーム用だね
0059名前は開発中のものです。
2014/01/23(木) 01:35:10.24ID:f/NLGL860060名前は開発中のものです。
2014/01/23(木) 02:21:59.68ID:s/ECi/gl0061名前は開発中のものです。
2014/01/23(木) 02:43:04.45ID:s/ECi/gl0062名前は開発中のものです。
2014/01/23(木) 08:54:48.07ID:o//cFEYQややこしいな
0063名前は開発中のものです。
2014/01/23(木) 09:00:18.56ID:WQKAVBetできるだけセマフォ使う回数が減るようにしないと本末転倒だ。セマフォって本来は要らないモノだし。
0064名前は開発中のものです。
2014/01/23(木) 09:37:12.46ID:o//cFEYQ0065名前は開発中のものです。
2014/01/23(木) 09:44:44.32ID:8rbpDm/Cマルチスレッドで分散させて計算させるだけでも、
マルチコアの恩恵でかなり効果が出る。
モデルデータことにやれば、データのバッティングしないので管理も容易。
細分化して、親フレームからばらけた子フレームの計算を、
複数のコアに投げてもいいんだろうけど、さすがに面倒くさい。
0066名前は開発中のものです。
2014/01/23(木) 09:59:16.39ID:C/RQiWS+0067名前は開発中のものです。
2014/01/23(木) 10:28:58.88ID:aF2XRTqqIntel:「せっかく俺様が気を利かせて面倒を肩代わりしてやってんのに…
最適化をご所望なら弊社謹製の開発ツール群をお買い求め下さい」
0068名前は開発中のものです。
2014/01/23(木) 11:25:23.28ID:7+IY4GKU0069名前は開発中のものです。
2014/01/23(木) 12:09:27.48ID:9AoVHus1これ以外ではめんどくてマルチスレッドしないわ
0070名前は開発中のものです。
2014/01/23(木) 13:18:55.33ID:8rbpDm/C0071名前は開発中のものです。
2014/01/23(木) 14:01:36.18ID:sIh8uNuQ作業を増やさずに問題解決するに越したことはないし、
コンピュータを使わずに問題解決するに越したことはないし、
プログラムを組まずに問題解決するに越したことはないし、
並列処理を使わずに問題解決するに越したことはない。
上司に嫌がらせしたいんだったら、↑の逆に向かう理論武装に日々怠らなければ良いwww
0072名前は開発中のものです。
2014/01/23(木) 14:42:15.40ID:y0vYWKn+最新技術みたいな中二ワードで本を売る業者に騙されていりこむ信者もいる
彼らは自分が他人より技術があると信仰している
他の連中は技術がないからOpenMP使えないんだ、ヤレヤレと信仰している
0073名前は開発中のものです。
2014/01/23(木) 14:54:35.72ID:o//cFEYQ環境によっても変わるしな
0074名前は開発中のものです。
2014/01/23(木) 18:57:57.85ID:B/J3zYBR0075名前は開発中のものです。
2014/01/23(木) 19:35:48.55ID:XQzipMrB計測する技術がないから使えないだけじゃね?
0076名前は開発中のものです。
2014/01/23(木) 20:23:20.02ID:y0vYWKn+肝心な箇所のスレッド化は自前でやるんだから変なものは導入しないほうがマシ
Javaとか.Netランタイムは、何もしなくても勝手に
OpenMPでやるような単純なスレッド化ポイントを探して
やってくれるらしいから、そっちに期待したほうがまだ実りがあると思うよ
>>62
処理速度が目的ならあらゆる手段でロックを避けるのが基本
0077名前は開発中のものです。
2014/01/23(木) 21:23:37.19ID:AhrZfxvI何でも掲示板が2ch並みの不毛さになってんだがwww
0078名前は開発中のものです。
2014/01/23(木) 22:00:13.37ID:f/NLGL86俺も平穏な頃はお世話になったが代わりにそこの住人の心が荒れてしまった
0079名前は開発中のものです。
2014/01/23(木) 22:13:04.53ID:Gy4H0ec+0080名前は開発中のものです。
2014/01/23(木) 22:28:18.98ID:y0vYWKn+技能がないではなく知能がないやつが沸くのは初心者系の宿命さ
0081名前は開発中のものです。
2014/01/23(木) 22:41:55.18ID:AhrZfxvI初心者向けじゃ無くせばいいのにw
0082名前は開発中のものです。
2014/01/24(金) 00:19:10.71ID:GEmYWJ47ここの住民はその傾向強いけど
0083名前は開発中のものです。
2014/01/24(金) 01:13:55.26ID:Jcy2cywVバッドノウハウを叩き込む本も海外含めて出版されすぎ
パラノイアになるのもしかたあるまい
0084名前は開発中のものです。
2014/01/24(金) 01:19:36.77ID:2quQhFog俺にわかるように日本語で喋る
0085名前は開発中のものです。
2014/01/24(金) 02:38:13.12ID:75+tl8UCイージーなワードでトーク出来ない事がフーリッシュだとアンダスタンドしてないよね
0086名前は開発中のものです。
2014/01/24(金) 04:50:34.13ID:pN9eWABR0087名前は開発中のものです。
2014/01/24(金) 17:19:24.19ID:Jcy2cywV俺みたいな中3でノンブロッキングI/Oしてる野郎、他に、いますかっていねーか、はは
今日のクラスの会話
Boostシリアライズかっこいい とか DXライブラリ とか
ま、それが普通ですわな
かたや俺はデバッグ用のコンソールでカーネル・ウップスを見て、呟くんすわ
it's a 深刻なエラー.狂ってる?それ、ランタイム・エグゼプションね。
好きなFW MTフレームワーク(カプコン社員でもないのに!)
尊敬する人間 ジョエル・スポルスキー(ユダヤ・ジョークはNO)
0088名前は開発中のものです。
2014/01/24(金) 17:30:23.22ID:jYeepMxG匿名掲示板で自分の事を勝手に語り始めた
自分が特別な存在であり、周囲より目立って当然であるという厨二病症状が伝わってくる
そんな貴方に対し、先輩として一つ、大人の現実を教えよう
ゲームを作りたければ、プログラミングだけじゃ駄目だ
プログラミングと絵を練習しなさい
音楽が得意なら音楽にも手を付けなさい
絵が描けないまま大人になれば、辿り付く先はゲーム会社のディレクターではなく、過労のIT豚小屋企業だ
さぁ、若者よ、時間が無いぞ
今日からpixivに通うんだ
0089名前は開発中のものです。
2014/01/24(金) 17:59:26.14ID:Ak56Y4mX0090名前は開発中のものです。
2014/01/24(金) 18:36:58.01ID:z3bTrILf0091名前は開発中のものです。
2014/01/24(金) 18:57:08.80ID:8axgouAhそこのクラスは構造体とかのクラスにはしないんだ
0092名前は開発中のものです。
2014/01/24(金) 18:57:20.98ID:Jcy2cywVおめーゲーム作れねーくせに、2chの受け売りで知ったかかましてんじゃねーぞゴラァ!
無能なくせに、先輩風吹かして上から目線の説教する哲学者気取りには反吐がでるぜ!!
http://anago.2ch.net/test/read.cgi/gline/1311577271/l50
0093名前は開発中のものです。
2014/01/24(金) 19:00:30.40ID:Jcy2cywVあー、見落としたわ
0094名前は開発中のものです。
2014/01/25(土) 04:15:46.46ID:8r1nXkC0絵って・・・同人じゃないんだから専門の絵描きさんにお願いするだろ普通
0095名前は開発中のものです。
2014/01/25(土) 16:31:59.91ID:jy8SNfJbあっちで引き取ってもらおう
ニート、無職、フリーターがゲームを作るスレ6
http://toro.2ch.net/test/read.cgi/gamedev/1389441602/
0096名前は開発中のものです。
2014/01/25(土) 20:03:22.14ID:ErNorzVO0097名前は開発中のものです。
2014/01/25(土) 22:16:45.80ID:ykCYICO9これってもしかしてListにAddされたあと
スコープ抜けて寿命付きてListの中なにも残ってなかったりする?
0098名前は開発中のものです。
2014/01/25(土) 23:11:32.82ID:jy8SNfJbvector内でnew SCache()されたものであり、aiueo()ローカル変数SCache Cacheが
新しく生成されたインスタンスに対してコピーコンストラクタでコピーされるはず
だからたぶんコピーコンストラクタをprivateで定義しておくとコンパイルが通らないはずだ
SCache::SCache(const ©){}
一応自分で確認してくれ
0099名前は開発中のものです。
2014/01/25(土) 23:12:47.19ID:jy8SNfJbSCache::SCache(const SCache ©){}
0100名前は開発中のものです。
2014/01/26(日) 00:11:58.97ID:Iw5/1QMxありがとうございました
0101名前は開発中のものです。
2014/01/26(日) 00:17:49.78ID:wqDtdTDr例外ダイアログでvectorほにゃらら〜がでるとか、それ系なん?
0102名前は開発中のものです。
2014/01/26(日) 00:28:30.05ID:wqDtdTDrvectorの内部バッファが大きくなるとポインタが無効になる
std:: vector<Hoge> list;
Hoge* add(Hoge &obj)
{
list += obj;
Hoge* last = &list[ list.size()-1 ];
return last;
}
0103名前は開発中のものです。
2014/01/26(日) 08:53:27.52ID:Iw5/1QMx2000個ぐらいなんだけど、多い?
0104名前は開発中のものです。
2014/01/26(日) 09:28:31.24ID:+p1FZWASだから要素数がいくつだったらって話じゃないよ
0105名前は開発中のものです。
2014/01/26(日) 09:48:24.53ID:f2NeeHoK0106名前は開発中のものです。
2014/01/26(日) 12:46:34.63ID:WQN234w50107名前は開発中のものです。
2014/01/26(日) 15:37:26.70ID:1jTIwhcQ瑣末
0108名前は開発中のものです。
2014/01/26(日) 16:41:16.86ID:RpTDvif5STLコンテナにアロケータ設定できるのも知らんのか?
そもそもメモリコンパクションがどうとかいう話は
GC系言語ですらとっくに切り捨てた昔話だと思うが
0109名前は開発中のものです。
2014/01/26(日) 17:41:28.90ID:f2NeeHoKアローケーター操作するの面倒じゃね?
ある程度大きめにメモリーを取得しといて使い回す方が楽っぽいが
0110名前は開発中のものです。
2014/01/26(日) 17:56:52.23ID:RpTDvif5好きなようにやればいいさ
0111名前は開発中のものです。
2014/01/26(日) 18:42:00.91ID:f2NeeHoKあらかじめ取得しといた容量よりも大きなサイズが必要になったら倍のサイズに領域を拡張してる
0112名前は開発中のものです。
2014/01/26(日) 18:47:27.36ID:f2NeeHoKつーか>>102の場合はvectorよりもlist使った方が良くないかい?
0113名前は開発中のものです。
2014/01/26(日) 18:52:43.37ID:y8TPPY9Q実際ベンチマークを取るとvectorの方が速いことが多いので侮れない。
0114名前は開発中のものです。
2014/01/26(日) 18:59:37.83ID:f2NeeHoK0115名前は開発中のものです。
2014/01/26(日) 19:20:58.79ID:1jTIwhcQ>>114
やっぱり瑣末かと。換言すれば、取るに足らない、微レ存、取越苦労、枝葉、の話かと。
いや違う考慮に値するというなら問題が再現可能な状況を示してみればいいのでは。
異常な頻度で確保/再割当/解放を繰り返すような無理な状況設定が必要になるけど。
件の話なら適切にreserve使えばいいかと。それで解決しない問題ってあるかな?
0116名前は開発中のものです。
2014/01/26(日) 19:22:33.48ID:1jTIwhcQヒープ割当はフラグメンテーション回避で独自のメモリプールをーとかこの手の
取らぬ狸の皮算用になりがちな話題は何度目かというくらい既視感があったので
過去発言を適当に検索。関連ありそうなので貼り
> PCの場合、例えば平凡なDoug Lea Malloc(の亜種)を使うことについて
> 処理速度上の問題で難癖を付けるには、意図的に相当に意地悪な(過酷な)状況設定を
> 引っ張ってくる必要があると思うなぁ
> 例えば3D視点のゲームで、視覚効果に使う粒子状の短命オブジェクトが盛り盛り
> 無数に画面上に散りばめられてて、それらが何と一粒一粒馬鹿正直にヒープから
> メモリ割り当てされてて何の工夫もない線形リストに挿入されてて、毎フレーム
> 線形リストを馬鹿正直に巡回して一粒一粒更新したり削除即時解放したりとか
(この状況設定がなぜ意地悪かというと)
> 描画関数に渡すパーティクル用のデータ構造と明らかに違う状態だから
(不必要な)
> セットアップもあるしね。まぁ、いずれにせよ、何でそんな馬鹿な
> 想定を持ち出すんだと閉口するような話に持っていかないと処理速度上の
> 問題で横槍いれるのは難しいと思う
0117名前は開発中のものです。
2014/01/26(日) 19:24:03.74ID:y8TPPY9Qオレオレ用語じゃ意味が分からん。
おそらくその現象は君の脳内世界でしか発生しない。
0118名前は開発中のものです。
2014/01/26(日) 19:43:21.57ID:f2NeeHoK1jTIwhcQには意味が通じてるぞ?w
>>115
いや、そこまで分かってるなら特に問題は無い……な
ただ、ゲームの場合、ムチャなメモリーの使い方する事が多いから、
reserveを忘れる事も珍しくないのでは?と思ったんだが
まあ、些末な問題と言えば些末な問題か
0119名前は開発中のものです。
2014/01/26(日) 20:01:52.93ID:NBq5fzCq0120名前は開発中のものです。
2014/01/26(日) 20:31:03.96ID:q4s5e5oc初期化したときに必要な分確保しとけってことでいいの?
■ このスレッドは過去ログ倉庫に格納されています