C/C++ゲーム製作総合スレッド Part6
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2014/07/08(火) 19:30:19.51ID:J+zVqUil元スレ
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/
0765名前は開発中のものです。
2014/11/30(日) 19:08:33.40ID:6mhBW/fH99%以上は本人のミスだ
0766名前は開発中のものです。
2014/11/30(日) 19:19:20.08ID:wowBQ4xCデバッグビルドってデバッグコード埋め込むだけだと思ってたわ
http://msdn.microsoft.com/ja-jp/library/dykf6bx9.aspx
0767名前は開発中のものです。
2014/11/30(日) 19:28:29.73ID:3sYJoklf0768名前は開発中のものです。
2014/11/30(日) 19:28:51.51ID:6mhBW/fH0769名前は開発中のものです。
2014/11/30(日) 19:37:40.53ID:mq2znQaRその変数が引数としてしか使われてないなら、変数を経由しないで
計算結果を直接スタックに乗せるようになってる、とかかなぁ。消えた原因は。
あんまり関係ない話だけど
つい最近(というか今日)、DirectXMathで躓いたのが
newで確保したXMVECTORの配列が16バイトアラインメントに乗って無くて
SSEのmovapsでアクセス違反が起きるって奴だった。
アクセス違反が報告されたメモリアドレスが「0xFFFFFFFF」ってなってて
どういうこっちゃとしばらく悩んだよ・・・。
0770764
2014/11/30(日) 19:54:39.02ID:09iyr5dNちょ・・・、今回クラッシュするところの逆アセンブリ結果が、同じくmovapsっす・・・。
floatの引数削られるのと、どう関係あるか分からないけど。
DirectXMathのSSE絡み、ちょっと怖いっすね。
>その変数が引数としてしか使われてないなら、変数を経由しないで
>計算結果を直接スタックに乗せるようになってる、とかかなぁ。消えた原因は。
そうそう、引数にしか使われてないから、ダイレクトにスタックに乗せるのは納得する。
けど、なぜクラッシュw
0771名前は開発中のものです。
2014/11/30(日) 20:14:02.81ID:mq2znQaRmovapsはXMMレジスタへ128ビット分のデータを一括転送するSSE命令だけども
メモリ⇔レジスタの転送の場合、メモリ側が16バイト境界に沿っている必要があるのよ。
(movapsのaはalignedのa)
XMMatrixPerspectiveFovLHの戻り値を格納しようとしている変数(XMMATRIX)の
メモリアドレスが怪しい気がする。
XMMATRIXはXMVECTOR4個の塊だし
0772名前は開発中のものです。
2014/11/30(日) 20:25:50.60ID:mq2znQaR多分、リリースビルドでだけ発生する原因は、速度優先の最適化によって
movups命令(16バイト境界に沿っていなくてもOK、ただし低速)からmovaps(高速)に
使用する命令が置き換えられたからだと思う。
で、多分fAspectにvolatileを付けたら動くってのは
fAspectの分だけスタック使用量が増えるから、格納先変数のアドレスが
16バイト境界に合うようになって、それでエラー落ちしなくなるんじゃないかな・・・
でも「_m128 型の変数は、16 バイト境界に自動的にアラインされます。」ってMSDNには書いてあるから
違う原因かも。
0773764
2014/11/30(日) 21:00:10.04ID:09iyr5dNサンクス。
fAspectが増えたことで16Byteアラインしたから通ったとしたら、たまたまで怖い気もw
いずれにせよ、たしかに_m128型使ってる以上、アラインされることは期待できそうだよね。
0774名前は開発中のものです。
2014/11/30(日) 21:49:21.14ID:3sYJoklf0775名前は開発中のものです。
2014/11/30(日) 22:42:52.60ID:wowBQ4xCヒープに確保すんのはやめた方がいいらしいけど
http://msdn.microsoft.com/ja-jp/library/ee418725%28v=vs.85%29.aspx
0776名前は開発中のものです。
2014/12/03(水) 13:17:19.43ID:Z1yRDwuo0777名前は開発中のものです。
2014/12/03(水) 13:18:24.64ID:iziS6ZnM0778名前は開発中のものです。
2014/12/03(水) 21:11:51.59ID:OgMzERcn・C標準のfopen系
・C++標準のfstream系
・WinAPIのCreateFile、ReadFile、WriteFile
みたいに、たくさんあるけど、使い分けってどうしてる?
0779名前は開発中のものです。
2014/12/03(水) 22:44:11.09ID:TXwtBb38普段使いのC++で機種依存しないライブラリはstream系
C系のライブラリで開発汁ときはfopen系
いずれにせよメインプログラムから直接ファイル操作関数は使わなーい
0780名前は開発中のものです。
2014/12/04(木) 01:02:24.18ID:YkojZjJMC標準を使うとランタイムライブラリが必要になるので却下。
今どき使うのはオッサンとバカだけ。
C++も結局はWinAPIの薄いラッパに過ぎないので、
基本的にはWinAPIを呼ぶのが正解。
0781名前は開発中のものです。
2014/12/04(木) 03:01:38.93ID:ClGYe+T3try-catchを使っただけでもCRTが要るだろ?
あと、Windowsなら、よく使うのはAPIの関係でIStream系が多いなぁ。
0782名前は開発中のものです。
2014/12/04(木) 03:07:11.75ID:iZaOw4vq0783名前は開発中のものです。
2014/12/04(木) 08:11:19.48ID:L+71L5pW例外、IO、メモリ関係とかはランタイム必要そうだけど
その辺全部OSのAPIで済ますの?
0784名前は開発中のものです。
2014/12/04(木) 08:35:11.34ID:y13HpW+M0785名前は開発中のものです。
2014/12/04(木) 09:42:58.76ID:ClGYe+T3昔のATLコンポーネントで、実行ファイルを小さくするためにランタイム無しってのはたまに見かけた。
IOやメモリ関係は、Win APIで代替が利く。 例外は使わないか、SEHやRAIIで代用。
ただ、浮動小数やstd::*を使えないし、かなりの制限を受けるよ。
0786名前は開発中のものです。
2014/12/04(木) 10:01:50.12ID:Eg8ibX6rそっちの方がオッサンくさい。
0787名前は開発中のものです。
2014/12/04(木) 19:29:15.66ID:tgdEpz3NWinAPIでも、
shared_ptr<void> pFile( CreateFile( ... ), CloseHandle );
でRAIIできるし、WinAPIならメモリマップドファイルが使えるから、Seekすることが多い用途で使う。
fopen系でも、上記要領でRAIIできるけど、
fopenだと、VC++でfopen_s使えって警告がウザいし、1行でスマートに書けないから嫌い。
でも、fprintf、fscanfは便利なんだよなぁ・・・。
0788名前は開発中のものです。
2014/12/04(木) 21:52:37.38ID:BSnl4VWGファイル入出力に近いモジュールは一度組んだらほぼ手を加えないので
環境依存のAPIを使ってても、次に使う時は細かいこと忘れちまってるな
オッサンだな
0789名前は開発中のものです。
2014/12/04(木) 21:53:54.27ID:BSnl4VWG0790名前は開発中のものです。
2014/12/06(土) 04:00:55.39ID:X/U/zDqchttp://jbbs.shitaraba.net/bbs/read.cgi/news/5097/1275245794/96 ←
0791名前は開発中のものです。
2014/12/07(日) 13:13:24.02ID:mFsIvomy他のメンバ関数でsizeが0になるんですが、vectorにそういう感じの仕様ってあるんですか?
http://codepad.org/QE4clISm
vector変数の中身を消す処理はしてません
0792名前は開発中のものです。
2014/12/07(日) 13:40:07.34ID:9LyEQ/ju0793名前は開発中のものです。
2014/12/07(日) 14:36:04.47ID:5KYRoGrU0794名前は開発中のものです。
2014/12/07(日) 14:39:37.63ID:hyValMsU0795名前は開発中のものです。
2014/12/07(日) 15:34:57.43ID:EqvPSafZ0796名前は開発中のものです。
2014/12/07(日) 16:06:32.38ID:6S6vavTT0797名前は開発中のものです。
2014/12/07(日) 16:43:30.16ID:dMVqqTm9C#やVB使う場合はfor each使うけどね
C++では扱いづらい
0798名前は開発中のものです。
2014/12/07(日) 16:52:24.55ID:dMVqqTm90799名前は開発中のものです。
2014/12/07(日) 16:56:54.79ID:9LyEQ/ju0800名前は開発中のものです。
2014/12/07(日) 17:45:42.30ID:e6dpx8ymイテレーター使えればなんでもいけるのこれ
0801名前は開発中のものです。
2014/12/07(日) 17:57:50.11ID:fL0IRO+A結局普通のforになることが多い。
0802名前は開発中のものです。
2014/12/07(日) 18:19:55.91ID:6S6vavTTあるあるw
でもそうでもない限りは記述が美しいから、できる限り使うようにしてるな。
0803名前は開発中のものです。
2014/12/07(日) 20:32:17.28ID:heuc+ktl0804名前は開発中のものです。
2014/12/07(日) 20:40:01.29ID:6S6vavTT知らんかったw
すげーw
さんきゅー。
0805名前は開発中のものです。
2014/12/07(日) 21:00:39.07ID:KCbAkKfJ範囲forのほうがむしろタイプ数が少ないような
0806名前は開発中のものです。
2014/12/07(日) 21:44:37.07ID:0+t1yYxF0807名前は開発中のものです。
2014/12/08(月) 00:26:35.24ID:Tkb5ImKOboost::for_eachというのもある
0808名前は開発中のものです。
2014/12/08(月) 01:42:50.74ID:/dWjo4ra考えてみれば当たり前だけどこれvector以外のコンテナで全ての要素でやったら計算量O(n2)になるな
こういうのちゃんと覚えておかないと使い所間違えそう
0809名前は開発中のものです。
2014/12/10(水) 15:07:51.95ID:fIQTJgumそれともUnityとかアンリアルエンジンとか?
0810名前は開発中のものです。
2014/12/10(水) 19:05:50.57ID:UFn2Nat6最近は一部エディタでもコンシューマ開発用キットを出してる
エディタ系はアクション系特化が多いので、
もしかしたらエディタ製もあるかもしれない
0811名前は開発中のものです。
2014/12/10(水) 20:57:58.95ID:WqzdIXuzUnityだってコア部分はC++で作られているだろ
0812名前は開発中のものです。
2014/12/10(水) 21:08:38.95ID:OgtEYajR0813名前は開発中のものです。
2014/12/10(水) 21:17:30.67ID:Z1DuKoHtそもそもプログラミング言語使わずにゲームが作れるのが一番の売りだし
0814名前は開発中のものです。
2014/12/10(水) 21:19:34.07ID:WqzdIXuzそう言うミドルウェアにライセンス料払いたくないか
全部自分でコントロールしたいから非オープンソースが嫌な人達だろう
0815名前は開発中のものです。
2014/12/10(水) 21:21:37.53ID:TxBmxmRH0816名前は開発中のものです。
2014/12/10(水) 21:26:51.59ID:PG4tDcoQ0817名前は開発中のものです。
2014/12/10(水) 21:27:36.02ID:Z1DuKoHtで、商業でやってるところはだいたい自分で書いてるとすでに答えられてる
0818名前は開発中のものです。
2014/12/10(水) 21:34:16.87ID:FC5BkzvK0819名前は開発中のものです。
2014/12/10(水) 21:35:32.23ID:X2qHCJlAそれを簡単なC++から使うか、適当なスクリプト言語から使うかの差しかない。
0820名前は開発中のものです。
2014/12/10(水) 21:48:54.83ID:Z1DuKoHtそれをしないためのプログラミング言語なんだし
バージョン管理は商業で作るところならまず間違いなく専用のソフトを入れているし、
個人でやるなら中〜大規模な作品でもなければ多分なくても管理できる
何人か集まって作るならその時導入を検討すればいい
0821名前は開発中のものです。
2014/12/10(水) 22:03:07.95ID:FC5BkzvKバージョン管理って個人的なのでも結構使うなあ・・・
ソースに変なコメントとか残したくないんだよねw
0822名前は開発中のものです。
2014/12/10(水) 22:21:09.59ID:6ysuSswG0823名前は開発中のものです。
2014/12/10(水) 22:22:55.40ID:WqzdIXuzsvn等の外部のバージョン管理システムも使いたければ使える
0824名前は開発中のものです。
2014/12/10(水) 23:18:34.81ID:SWjWjl7/場合によっては編集前のコードをコメントで残すとかいうルールしいてることもある
もうアホかと
0825名前は開発中のものです。
2014/12/10(水) 23:36:58.77ID:FC5BkzvKGitだとサーバーとか立てなくても気軽にローカルでリポジトリ
作れたりとかできちゃうから楽だわ
作業内容はソースにコメントで残すんじゃなくコミットログに
押し込めるし時系列で追えるしね
0826名前は開発中のものです。
2014/12/11(木) 00:13:34.16ID:RhkXQVIG0827名前は開発中のものです。
2014/12/11(木) 00:16:26.40ID:6Drf6QBaちょっと思い付いたらブランチ切って気が済むまで弄り倒して
上手く行ったらそのままマージ、
ダメだったら元のブランチをチェックアウトすれば元通り。
今はGUI付きのクライアントもあるし有り難い時代だ
0828名前は開発中のものです。
2014/12/11(木) 02:04:41.77ID:vflPKXfmUnityやcocos2dの経験者歓迎とか書いてあるぞ
商用で普通に使われてるんだと思うんだが
0829名前は開発中のものです。
2014/12/11(木) 08:52:12.08ID:6p4P8aMh弱小は既存ツール使うしか選択肢がない
0830名前は開発中のものです。
2014/12/11(木) 09:22:11.45ID:HPqpSaB40831名前は開発中のものです。
2014/12/11(木) 13:18:32.61ID:2JpT6opCUnity使った商業作品なんて山ほどあるだろ
>>829
いやだからどこの世界の話だよ。
0832名前は開発中のものです。
2014/12/11(木) 19:04:56.48ID:aRGwjS4y0833名前は開発中のものです。
2014/12/11(木) 19:10:00.11ID:b4/DV/vlそれでも大抵の人は困ることはないだろうけど
0834名前は開発中のものです。
2014/12/11(木) 21:50:30.14ID:jqIw6zJe海外だとアンリアルエンジンで作った大型タイトルあるぽいんだが
http://ja.m.wikipedia.org/wiki/Unreal_Engineを採用したゲームソフト一覧
0835名前は開発中のものです。
2014/12/11(木) 22:59:37.83ID:aRGwjS4yいろんなユーザ(団体)が利用できるという意味での汎用?
エロゲやアマチュアまで含めれば、テキストゲーム系エンジンやツクール等も結構多そうだが。
0836名前は開発中のものです。
2014/12/11(木) 23:14:39.27ID:jqIw6zJeUnityとUE位しか知らんけど
2Dもこういうエンジンってなんかあるんかな
0837名前は開発中のものです。
2014/12/11(木) 23:22:19.61ID:FC/EOQl8・・・
cocos2d-x
http://peace.2ch.net/test/read.cgi/gamedev/1390136237/
0838名前は開発中のものです。
2014/12/11(木) 23:43:01.37ID:jqIw6zJeソシャゲではよく使われてるみたいだけど
0839名前は開発中のものです。
2014/12/12(金) 00:23:08.10ID:QnblLndCいろんな開発エンジンを次々使いこなせるだけの柔軟さと適応力は充分潰しが利くと言えると思う。
0840名前は開発中のものです。
2014/12/12(金) 02:25:38.84ID:bDxMroSG独自仕様のゲーム作るなら特に
0841名前は開発中のものです。
2014/12/12(金) 07:21:28.86ID:o+Ocs+h7エンジン使いこなせるって言ってもエディタ使って効率的に作れるだけでプログラマとしてはスクリプタレベルよ
0842名前は開発中のものです。
2014/12/12(金) 12:34:20.78ID:wXPiKRYS何でも自前で作るのが良いとは限らないだろ
0843名前は開発中のものです。
2014/12/12(金) 13:11:01.77ID:so0Qz3P5何でもかんでも自分で書いて糞のようなコード量産するより、広く使われているゲームエンジンの良い設計のコードに触れる方が為になる。
0844名前は開発中のものです。
2014/12/12(金) 13:27:08.97ID:evwzVpBf0845名前は開発中のものです。
2014/12/12(金) 16:01:25.41ID:v/KVbnR10846名前は開発中のものです。
2014/12/12(金) 17:38:37.97ID:cemAAiyOできますん
0847名前は開発中のものです。
2014/12/12(金) 18:39:21.32ID:ntY+D6GU0848名前は開発中のものです。
2014/12/12(金) 19:46:05.18ID:KvfRzLEl0849名前は開発中のものです。
2014/12/12(金) 20:17:56.66ID:6Y7Yxnc10850名前は開発中のものです。
2014/12/12(金) 20:19:28.11ID:evwzVpBf0851名前は開発中のものです。
2014/12/12(金) 20:48:58.45ID:s0rRP3Zy0852名前は開発中のものです。
2014/12/12(金) 21:30:09.86ID:EW3P8d8Tそこらのサイトに書いてある簡単なテンプレコードほどの価値もないからな…
0853名前は開発中のものです。
2014/12/12(金) 21:41:45.52ID:KfzBrrjx自分で読めないのは論外だけど
0854名前は開発中のものです。
2014/12/12(金) 22:33:35.88ID:evwzVpBf0855名前は開発中のものです。
2014/12/12(金) 23:05:56.51ID:KfzBrrjxいずれにしても自分で読む気も起きないようなコードはただのゴミ
0856名前は開発中のものです。
2014/12/12(金) 23:44:33.51ID:b4Xh27MQそのライブラリを深く理解する事がないとか、ライブラリになるようなものを書くことがないというのであれば、それだけの資質だったということ
0857名前は開発中のものです。
2014/12/12(金) 23:59:52.22ID:EW3P8d8Tよほど天才的なプログラミングの素質でもなければソフト作りのはるか手前で地面に転がるぞ
っつーか、ライブラリ製作自体がソフト製作に近いし
0858名前は開発中のものです。
2014/12/13(土) 06:34:13.77ID:/sKItXqVまあ、適材適所じゃね?
今更ゲーム製作でデータ圧縮や暗号化、組み込みスクリプトのコードを書く奴は滅多にいないだろ
書いたけどな、俺は、スクリプトを
けど、ゲーム製作での一番のキモは独創性だろ
そんな所は自分で書くしか方法が無いんだよ!
独創性の無い、ありふれたゲームを作りたいなら、好きに流用すればいいさ
0859名前は開発中のものです。
2014/12/13(土) 10:06:03.65ID:KmIl68fQどんなコードでも読める能力の方がいい。
0860名前は開発中のものです。
2014/12/13(土) 10:33:09.68ID:GVgS9kEW読めるコード書けないとチーム開発で役に立たないじゃん
リバースエンジニアリング専門でやんの
0861名前は開発中のものです。
2014/12/13(土) 11:10:08.60ID:vJXa5IWH0862名前は開発中のものです。
2014/12/13(土) 11:19:10.70ID:KmIl68fQ何書いても読めない人はいるわけで。
0863名前は開発中のものです。
2014/12/13(土) 11:28:25.00ID:A651+XDEすげーな。
実力派だな。
やっぱ自分で書くのが一番気持ちいいな。
基本的には一人で全部組んでるな。
生産性は別にしてw
0864名前は開発中のものです。
2014/12/13(土) 11:46:26.04ID:OLxz298bまあlint通してからやれば比較的楽だが
■ このスレッドは過去ログ倉庫に格納されています