1 名前:名前は開発中のものです。 mailto:sage [2012/10/24(水) 03:01:09.64 ID:oI68Vzqz] ゲーム製作におけるC/C++全般に関するスレです。 元スレ DXライブラリ 総合スレッド その12 toro.2ch.net/test/read.cgi/gamedev/1330000532/ C/C++ゲーム製作総合スレッド Part1 toro.2ch.net/test/read.cgi/gamedev/1337516528/
138 名前:名前は開発中のものです。 mailto:sage [2012/11/08(木) 21:01:40.06 ID:1/7WKa2O] >>137 もちろん単純な計算とかはintと同じような振る舞いができるようにしようと思ったんだけど 思いつきだったから他所の各種フォーマットのこととか考えると一気にめんどくさくなってくるね・・・
139 名前:名前は開発中のものです。 mailto:sage [2012/11/08(木) 21:36:07.56 ID:G2+9xcvR] 多倍長整数クラスみたいなのは自作しないのが鉄則だと思う
140 名前:名前は開発中のものです。 mailto:sage [2012/11/09(金) 16:35:38.97 ID:X+TCzH6/] ググッてみたが連絡必須な作者ばっかりだな
141 名前:名前は開発中のものです。 mailto:sage [2012/11/09(金) 19:50:15.35 ID:VSrh+osv] 「任意倍長整数 std::vector」でググッた? しかし、ゲームではスコアぐらいしか使い道が無いような・・・
142 名前:名前は開発中のものです。 mailto:sage [2012/11/09(金) 20:23:54.88 ID:r5dUZ16H] intがダメならlongを使えばいいじゃない 現実的な時間でカンスト出来なきゃおkでしょ
143 名前:名前は開発中のものです。 mailto:sage [2012/11/09(金) 22:04:54.38 ID:VSrh+osv] それを言うならlong longじゃね? longとintじゃ、サイズ一緒だし。
144 名前:名前は開発中のものです。 mailto:sage [2012/11/09(金) 22:08:31.43 ID:VSrh+osv] C#やVBとC++じゃ、データサイズ違うしな
145 名前:名前は開発中のものです。 mailto:sage [2012/11/09(金) 22:20:24.27 ID:iHmFaNL/] さーせんintが16bitと勘違いしてた
146 名前:名前は開発中のものです。 mailto:sage [2012/11/09(金) 22:34:04.03 ID:Dzz1dA77] 少し質問です。 最近のFPSゲームなどはどんな言語、環境、ソフトを使って開発しているのでしょうか?
147 名前:デジタルハリウッド偏差値45 mailto:sage [2012/11/09(金) 22:36:07.04 ID:8DN5+ede] >>146 Unity
148 名前:名前は開発中のものです。 mailto:sage [2012/11/09(金) 22:42:50.09 ID:Dzz1dA77] >>147 ゲームエンジンが主流ですか、Unityなら言語はC++でしょうか? DXライブラリというものも耳にしますが、あれは何なのですか?
149 名前:デジタルハリウッド@偏差値45 mailto:sage [2012/11/09(金) 22:44:39.99 ID:8DN5+ede] >>148 わかりません Unityやってます はいjavasciptでUnityを使います シューティングゲームみたいなのを作っています
150 名前:名前は開発中のものです。 mailto:sage [2012/11/09(金) 22:48:57.56 ID:lyg7gPNA] >>145 >さーせんintが16bitと勘違いしてた 16bit機なら間違ってない。
151 名前:名前は開発中のものです。 mailto:sage [2012/11/09(金) 22:51:56.08 ID:pwxZtJFc] PCのFPSなら、作品数で多いのはudk またはunreal engineかと。やったことあるならロゴはみたことあるよね。 それかc++とdirectXで内製するかかな? dxlibは公式みればわかるけど、directXのラッパーで扱いやすくしてるらしい。2dがメイン? 3Dは一応dxlibでもあるらしいよ。使えるか使うほどのものかは自分で調べてね。 公開されてるゲームエンジンならtorque3dとか、ogre3d(c#とかあるけどどれだけ利用されてるかはしらないな。
152 名前:デジタルハリウッド@偏差値45 mailto:sage [2012/11/09(金) 23:03:02.76 ID:8DN5+ede] >>148 あ、javascirptやってればいいと思います 僕は学校でunityのjavascirptを使ってunityゲームつくってます あ、そうなんですか FPSはあれがすきです ゴーデンアイです 日本のゲームしかわかりません
153 名前:名前は開発中のものです。 mailto:sage [2012/11/09(金) 23:17:07.62 ID:Dzz1dA77] >>149 >>151 おぉレスありがとうございます、早速いろいろと調べてみます ちなみに好きなFPSはAVAです
154 名前:デジタルハリウッド@偏差値45 mailto:sage [2012/11/09(金) 23:22:45.88 ID:8DN5+ede] >>153 AVAですか でもAVAってネトゲですよ 運営のGAMEONは韓国資本です 搾取されてる感じなのでネトゲはあんまり好きじゃないです
155 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 00:06:42.01 ID:ZRDvwXZX] (^q^)FPSが大好きです、どうやって作ればいいですか?
156 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 00:09:07.07 ID:/iHA2cHX] >>155 まず服を脱ぎます
157 名前:名前は開発中のものです。 mailto:age [2012/11/10(土) 00:26:49.89 ID:C6N3xOd/] C++製の同人ゲーでオススメは?
158 名前:名前は開発中のものです。 [2012/11/10(土) 00:51:56.35 ID:c/VcRE9w] CかC++かとかわからんやろ〜
159 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 01:42:45.45 ID:jSSOLfjK] >>157 どうやって判断すんだw
160 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 01:51:18.61 ID:uDOWmTU2] readmeや自サイトに書かれてることは少なくないけどね
161 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 08:04:43.07 ID:vuCkQhFB] DXライブラリ使ってれば大抵C++
162 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 08:58:28.72 ID:WCv+J7TM] 同人ゲームならコミケ行って開発者に聞くのが早くね?
163 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 09:08:47.06 ID:vuCkQhFB] バイナリエディタでexeを開いて「C++」で検索すると、「Visual C++ Runtime Library」という文字列が出てきた VC++製のプログラム全部に含まれるみたいだからこれで判別できるな
164 名前:デジタルハリウッド@偏差値45 [2012/11/10(土) 09:41:21.35 ID:LnFUWnqt] >>155 Unityがいいですよ DirectXっていうのは時代遅れです C++も時代遅れです Javascriptがブームです Unity Game Jamっていうサークルがあるのでよかったらきてください FPS作ってる人もいます
165 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 09:44:50.76 ID:JDLvE6hN] UnityみたいなゲームエンジンもJavascriptで作れる時代なのか・・・ GooogleのV8もJavascriptで書かれてるのかな そのうちJavascriptでOS書いたりデバイスドライバ書いたりできるようになるかな?
166 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 10:17:43.51 ID:hp96843s] >>165 なんか勘違いしてるっぽい
167 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 11:19:24.13 ID:JDLvE6hN] まさか時代遅れのC++やさらに古いC言語で書かれてたりしないですよね?
168 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 11:20:29.38 ID:7J8tbM/I] 俺はjavascriptで身長伸びて彼女できて宝くじが当たったよ
169 名前:デジタルハリウッド@偏差値45 mailto:sage [2012/11/10(土) 11:23:04.28 ID:LnFUWnqt] 僕はUnityとjavascript使ってゲーム作ってるよ C++とか時代遅れだよ javascriptの時代だよ
170 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 11:24:43.50 ID:GU+cQ84R] 高度な釣り
171 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 11:39:58.87 ID:ugQSrMUN] 高度ではないだろ
172 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 12:39:11.62 ID:HViNGugV] どこからが釣りなの? >ゲーム製作におけるC/C++全般に関するスレです。 まさかこれ?
173 名前:デジタルハリウッド@偏差値45 mailto:sage [2012/11/10(土) 12:42:27.01 ID:LnFUWnqt] ???
174 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 12:47:00.70 ID:L5/NCAoO] 馬鹿と無知としったかはほっておけ。スルースキルは2chのスキルの中で最も重要
175 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 12:51:39.87 ID:HViNGugV] >>174 もともと釣りじゃなかったのか、了解した
176 名前:デジタルハリウッド@偏差値45 mailto:sage [2012/11/10(土) 12:58:26.41 ID:LnFUWnqt] C++のnewってどういう意味でしょうか?
177 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 13:01:59.44 ID:7J8tbM/I] newはjavascriptにもあるだろ
178 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 21:44:09.79 ID:kdgWH7qz] javascriptwwwww ブラクラゲームかwwwww
179 名前:デジタルハリウッド@偏差値45 mailto:sage [2012/11/10(土) 22:20:18.38 ID:LnFUWnqt] 何がおかしいんですか?
180 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 22:39:49.87 ID:zPoeI4Ci] 初心者でも今時JavaとJavascriptは混同しねーよwww
181 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 22:51:17.47 ID:0f/wz9cV] 誰かブラクラゲームに突っ込んでやれよw
182 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 22:57:47.64 ID:zPoeI4Ci] 余計なJavaScriptはウザいからそういう皮肉かと思った
183 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 09:12:21.25 ID:9N5q0Xsj] 話題ないみたいだからちょっと質問 透明色含んだビルボード表示するときにvectorに突っ込んで表示順ソートしてるんだけどなんか遅そうな気がする もっと効率的にソートする方法ないかな もしくはzバッファ切った方がいいの?
184 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 09:30:12.70 ID:8Q0utp4J] >>183 何個ソートしてんの?
185 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 10:33:03.40 ID:9N5q0Xsj] >>184 3Dシューティングぽいので弾を全部ソートしてるから最大で300くらいかな? 敵増やすと増えるからちょっとあいまいだけど
186 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 10:37:25.65 ID:4wR9uF6j] たった300なら何も問題ない ただ、vectorにはポインタを詰め込むべき vectorはlistと違ってソート時にメモリを直接置換するから、構造体のサイズがそのままネックになる ポインタを詰めれば毎フレーム10000以上の要素をソートしても60fps余裕だよ
187 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 11:35:18.71 ID:A9vKBFCi] vectorの中身をポインタにして比較関数の中でポインタの先参照して比較って感じでいいのかな?
188 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 14:36:53.02 ID:7uL1yheX] でも「毎フレーム全ソート」って本当に必要? 弾が作られた時にだけ適所にインサートすればいんじゃない?
189 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 15:38:57.87 ID:4wR9uF6j] ソート方法によるけど、STLのマージソートは未ソートの要素が多いほど時間が掛かって、 ソート済の場合ほとんど処理を食わないから毎フレームソート処理してても大して問題ないはず それに>>185 は3D空間のオブジェクトのソートをしてるというから、カメラがちょっと動いただけでもソートの必要が出る ソート関数にかけること自体がソートする必要があるかの判定になってると言ってもいい
190 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 16:39:59.60 ID:eWkVVOn6] >>183 ですが とりあえずstlのソートでも十分速いと言うことなので安心した 勉強になりました
191 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 21:04:01.78 ID:cEtJDQKT] 横。 vectorにポインタを格納するとして、本体はどこに置くの? もちろん状況次第だとは思うけど、別のvectorとか?
192 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 21:19:11.80 ID:a9WU8SHc] ヒープ
193 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 21:43:47.14 ID:HVfjUt4J] newしろ
194 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 21:56:20.66 ID:Oj4WY+EN] 固定で別の配列にするのが普通だと思う
195 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 22:23:30.25 ID:4pvX9vHm] なら実データをvectorに入れればいいじゃん
196 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 22:35:19.83 ID:R7nFxA7+] シーンの最初と最後に生成、破棄するならauto_ptr使って ポインタだけvectorで管理するのもありなんじゃないかと 思ったんだがどうだろうか
197 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 22:43:12.39 ID:HVfjUt4J] とりあえずauto_ptrとかいうゴミを捨てるんだ
198 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 22:57:50.27 ID:R7nFxA7+] よく考えたらauto_ptr使って元のポインタだけ管理しようとしたら newしてる関数抜けた瞬間deleteされるからダメかw
199 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 22:58:45.26 ID:BrAT+Ts5] もうauto_ptr時代遅れなん?
200 名前:名前は開発中のものです。 [2012/11/13(火) 23:01:15.07 ID:KobHHPjK] 気にせず使ってください^^
201 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 23:01:32.88 ID:k2b3NisB] auto_ptrってなんですか? どうしてunique_ptrを使わないんですか?
202 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 23:02:03.36 ID:R7nFxA7+] c++11でdeprecated指定だって en.m.wikipedia.org/wiki/Auto_ptr なんかunique_ptrが代わりになるのかな?
203 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 23:07:03.03 ID:k2b3NisB] スコープを抜けるときに自動で閉じるファイルポインタとか 例外いつ投げても閉じてくれるので便利ですね? std::unique_ptr<FILE, decltype(&fclose)> fp(fopen("filename", "r"), fclose);
204 名前:191 mailto:sage [2012/11/14(水) 00:25:26.13 ID:CmmzPOW9] >>192-194 最初から数が分かってるか、途中で増えるか等に応じて、 普通の配列、配列の動的確保、vectorあたりを使い分けるって感じかな?
205 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 07:47:57.43 ID:f09Uuje+] vectorで実体まとめるとバッファのリサイズ発生した時にアドレス変わるんじゃない?
206 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 08:50:51.27 ID:Za6Nl7tI] そんなの当たり前じゃん。
207 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 08:58:13.52 ID:f09Uuje+] vectorで実体管理してソートのためにポインタのvector使ったら リサイズ発生した時点で参照変わるからちゃんと動かなくなるよね 最初に確保した分より増えないなら大丈夫だろうけど これ発生したら原因特定めんどくさそう
208 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 09:06:59.91 ID:CmmzPOW9] あー、それもそうか。失敬
209 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 15:05:59.50 ID:Za6Nl7tI] >>207 っていうか「Vectorで実体管理」がそもそも意味不明。 ポインタで管理してるならそれだけでいいじゃん。
210 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 16:31:57.71 ID:OuQGweox] 確かにvectorにポインタいれときゃそれでdelete出来るな 自分でちゃんとdeleteするならそれで十分か
211 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 17:44:55.77 ID:3cThVkCw] newしたポインタはとりあえずstd::unique_ptrかstd::shared_ptrに入れるべき deleteなんて自分で書いたら負けだぞ デストラクタもハンドル管理クラスみたいなの以外では自分で書いたら負け
212 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 18:27:52.20 ID:lHOdfYqK] それは一般レベルの場合な 我々のように国家機密レベルでやってる場合は違う
213 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 18:36:32.02 ID:5BbMRJco] 何に負けるんだよ 見えない敵と戦う労力こそが一番の無駄
214 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 19:00:59.45 ID:3cThVkCw] 見えない敵というとメモリリークですね まあ、お遊びプログラムならすぐに終了されるので リークしても問題ないのかもしれませんが
215 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 19:09:24.21 ID:3BI2eEEx] shared_ptrはvectorに入れても大丈夫なのか vector<shared_ptr<クラス>>でやっときゃ勝手に消えてくれそうだな
216 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 19:15:38.28 ID:CmmzPOW9] >>211 十行くらいのブロックで、かつ外に出すつもりもないならnew/deleteで書いちゃうなあ
217 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 19:28:19.33 ID:BbQiy07V] リークするのはお前の脳みそだけにしておけ
218 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 19:32:08.10 ID:FHk4zIEt] うんまぁお前らも一番実感してると思うけど、自分のルールの一貫性を保つことが一番大事だからな もちろん柔軟に対応するのも大事だし柔軟に対応できるような構造にしておくことはもっと大事だが
219 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 19:38:37.20 ID:3BI2eEEx] >>216 ブロックの外に出さないならローカル変数の方がよくない? 可変長だと無理かもしれんけど
220 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 19:40:11.42 ID:3cThVkCw] 生ポインタの場合 A* a = nullptr; B* b = nullptr; try { a = new A(); b = new B(); doSomething(a, b); }catch(...){ if (a) { delete a; } if (b) { delete b; } throw; } delete a; delete b; std::unique_ptrを使う場合 std::unique_ptr<A> a(new A()); std::unique_ptr<B> b(new B()); doSomething(a.get(), b.get()); なぜわざわざ生ポインタを使おうとするのか、理解できない
221 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 19:52:16.75 ID:3BI2eEEx] 生ポとは関係ないんだけど、例外処理ってしてる? tryは遅いらしいと何かでみたから基本投げっぱなしスープレックスなんだけど 実際どうなん?
222 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 19:56:47.63 ID:aP39cEyY] 投げっぱなしだとexeが落ちちゃうだろ…(Windowsなら
223 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 20:00:51.70 ID:K6TezrTK] 落ちなかったらバグったまま続いちゃうじゃん?
224 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 20:45:10.81 ID:S4/fLXg9] なんでC++11前提で話してるのか理解できない
225 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 20:49:59.82 ID:3cThVkCw] C++11じゃないならboostを使えばよろしい
226 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 21:04:33.08 ID:KC8fJK0S] >>222 デバッグで例外が発生したら例外の原因箇所にチェック入れて防ぐように修正してる 基本は例外じゃなくて戻り値で成否を返すような感じ
227 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 22:40:22.29 ID:FilUuDwR] スマートポインタの名前の長さは C++スタイルキャストを思い出す
228 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 00:52:00.71 ID:CCQxRnc8] ふと思ったんだが、ゲーム・アプリのプレイ期間中に、 同一スコープ内でnewして解放する局面ってあるか? つうか、プレイ期間中じゃなくても、同一スコープ内で newして解放する局面って思いつかないな。 同一スコープ内なら、非ポインタのオブジェクト変数で済ませる。
229 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 08:27:34.76 ID:kybbSnHR] コンストラクタに引数必須とか?
230 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 13:27:32.69 ID:CCQxRnc8] >>229 変数定義に引数記述してもコンパイル通るよ。 class Test { public: Test(int arg); : }; int a = rand(); Test ins(a);
231 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 13:44:36.27 ID:FiWT7kKo] >>230 出来るんだ… 考えてみれば出来ない理由もないか じゃあ>>203 みたいにポインタ返すけど、後始末は呼び出し側がやらないといけない関数とかかな? あとはスタックにデカイ領域作りたくないとか?意味があるかはわからんけど
232 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 17:38:22.10 ID:CCQxRnc8] >スタックにデカイ領域作りたくないとか これはあるかもね。 とは言っても具体的な局面が思い浮かばない・・・
233 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 19:13:59.62 ID:JDzb/9N7] スコープ抜けたら勝手に消えるだけがメリットじゃないだろう メンバ変数にしておけば親が死ぬとき勝手に死んでくれるし ていうかスマートポインタ使わないとコンストラクタで例外が発生した時どうするんだ
234 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 20:24:55.99 ID:CCQxRnc8] 具体的にどんな例外を想定してるの?
235 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 21:06:29.19 ID:JDzb/9N7] なんでスマートポインタを使うのを躊躇うの? unique_ptrは自動的にdeleter呼んでくれる上に 性能的には生ポと同じコストで使えるんだぞ
236 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 21:15:04.36 ID:V2Q8QmNk] >>235 別に躊躇ってる人は居なくね?
237 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 21:16:59.75 ID:/bYy5p67] なんかこの流れ前にも見たな 今話してるのはunique_ptr使うんだったら普通にautoで変数定義すればよくね? って所だと思うが
238 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 21:17:12.28 ID:f9BWxP4M] なんでC++11やboost前提で話してるのか理解できない