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/03/04(水) 22:53:21.49ID:GI8MSIuN
>>528
くだらない事言ってるとお前の*に->するぞ
2015/03/05(木) 00:38:58.57ID:f1raWeBS
>>530
>>531
簡素な遮蔽ポリゴンと、事前計算した超軽量なAABBでデプステストをパスするか確認するから軽くなるんだよ。
デプステストをパスしなかったら描画する対象のvertex shaderすら動かす必要が無いからね。

GPU内で完結するようにしたら実際のポリゴンを使うしかない。
そうすると、どうやっても全頂点計算するしかない。
それで隠れるポリゴンがあればfragment shaderは実行しなくて済むけど、それはTBDRっていう方法で既にGPUで実現済み。
ピクセルを書き込む回数を減らせるからメモリ帯域の狭いモバイルGPUでよく使われてる方法で、PowerVRが昔からその方法を使ってて有名。
それも半透明とかアルファテスト使うようなポリゴンがあると使えない。
2015/03/05(木) 02:25:19.75ID:YpPGywcJ
なんか2chの専ブラでハードコーディングしたからAPIキーが割れたって言ってるけどコンパイルしてネイティブコードに変換されて読み取れるもんなの?
2015/03/05(木) 06:12:17.20ID:KVc1+L+F
>>534
とりあえず板名100回復唱。な
2015/03/06(金) 07:01:26.91ID:22aEiDue
オーバーフローと配列範囲外のチェックってどうやんの
2015/03/06(金) 08:11:24.59ID:JOegiwit
if ( hoge.length() - 1<i ) return;
2015/03/09(月) 00:28:48.51ID:iEPwp1GV
入門ゲームプログラミングって本買った
まずロベールのC++本で基礎を身につける
2015/03/09(月) 00:55:44.81ID:KBqbZUvv
>>537
lengthがsize_tを返すのであればemptyの時に死ぬね
2015/03/09(月) 08:43:44.85ID:5/H88Ii0
そんなん配列のnullチェック先にするに決まってんだろ
2015/03/09(月) 11:25:36.92ID:KBqbZUvv
>>540
hogeってのは生配列を返す関数持っててnullチェックしないと使えない糞コンテナなのか?そんなもん窓から投げ捨てろ
2015/03/09(月) 16:56:13.92ID:Tsv4BOfD
>>541
なんか話噛み合ってないと思ったら、javaと勘違いしてたごめん。
あとjavaにしてもlengthの後の括弧いらんかったごめん。
2015/03/14(土) 11:31:02.28ID:Bn3tbHEp
ヘッダでstatic constな配列を初期化することってできない?
2015/03/14(土) 12:27:07.32ID:FGm0AUiX
const_castとかあるけど使ったことないから分からない
2015/03/21(土) 17:31:21.55ID:4J9dPJbb
DXライブラリで一通りゲームを作って次はDirctX9でゲームを作ろうと思って本なり読んでるけど
入力関連とかメインループ文に入ってるように見えないのになんで操作できてんだこれとか色々わけわかんなくてDXライブラリに逃げちゃいそう
2015/03/21(土) 17:41:03.09ID:WO0UmCC8
入力の取得関数の所にブレークポイント張ればいつ呼ばれるか解るだろ
ソースレベルで追えないんじゃそのあとも苦労しそうだが
2015/03/21(土) 22:19:51.97ID:Vu16KnFN
メッセージ系の処理の話かな?
Win32の仕組みを知らないといろいろわからないかもしれない
って言うか無理しないでDXLibでいいと思う
2015/03/22(日) 13:15:06.80ID:RZoxpRxM
>>545
まさかまかりなりにもDxlib使ってゲーム作った経験があるのにコールバック関数を知らない訳じゃないだろうな・・・w
2015/03/23(月) 00:04:40.06ID:6RzGsxDm
最低限の機能を使うだけなら、コールバック要らんぜ?
2015/03/23(月) 02:47:34.49ID:5MPdWZ7w
話をまとめると「コールバック関数でググれ」だな
2015/03/23(月) 08:21:54.36ID:OPwFNkI6
名前聞けば皆知ってそうなFLASHゲームの製作者なんて構造体すら知らなかったぞw
実装力>>>知識よ。
2015/03/23(月) 14:50:59.94ID:ORae6Rkf
コールバックの利点ってなんぞ
軽い機能ならswitchすればいいしでかいならクラスごとするし手間かかるだけじゃないのか
2015/03/23(月) 20:27:25.37ID:jlPJ7kT1
>>552
と、とりあえずググってこい、なっ?
2015/03/23(月) 20:32:37.09ID:6RzGsxDm
「ゲームで」だとそこまでは…
2015/03/23(月) 21:51:33.63ID:2BLAF17B
ライブラリの実装が楽になるぐらいじゃね
2015/03/25(水) 00:11:47.80ID:q/dDA6au
誰にも迷惑がかかるわけでもなし
メリットが無いと思うのならば使わず突っ走ってみるのも一興

スマートポインタ?delete忘れるわけねーだろとツッパっていたら
見事に二重deleteを踏み抜いて以来
スマートポインタ教になった俺みたいに
2015/03/25(水) 07:50:29.42ID:Ni1QV6xd
スマポ(RAII)は誰もが魅了される素晴らしい作法。
2015/03/25(水) 09:05:10.14ID:QSKvYWqw
二重deleteは追えばすぐ分かるだけ良心的
559名前は開発中のものです。
垢版 |
2015/03/29(日) 16:51:57.43ID:0emdsjcu
C++も、デフォルトで、ベクトル演算や行列演算のコンパイルができるようになればいいのに
コンパイラに任せると、機械語でオーバーヘッドが膨らみ過ぎるのかな・・・
2015/03/29(日) 17:28:01.84ID:xcFREV5w
どうせベクトルや行列の型を指定するんだから見た目だけなら演算子オーバーロードでいいだろ
そうじゃない自動ベクトル化ならIntelCでも使えよ、一応VCにもあるけど
2015/03/29(日) 17:28:41.73ID:ZYW27Yds
VC++の自動ベクトル化の空気さは異常
2015/03/29(日) 22:35:03.23ID:0emdsjcu
>ベクトルや行列の型を指定するんだから見た目だけなら演算子オーバーロードでいい
要するに自分でクラス定義して、そのクラスを引数に取る演算子のオーバーロードするって事だよな。
それって面倒じゃん?

たとえば、ベクトルxとスカラーcがあるとして、
例えば、x-cなんかで、cをベクトルに拡張して四則演算してくれるようにコンパイルをしてくれれば便利だ
記述が、すげースッキリするぜ
2015/03/29(日) 22:46:40.82ID:tAb5E4+1
そんな言語あるのか
2015/03/29(日) 23:57:58.80ID:LTE960gn
HLSLとかGLSLはそうとも言えるんじゃね?
C++に含めるのは仕様が膨らみすぎるしどう考えてもありえないけど
2015/03/30(月) 17:38:30.42ID:kGTScyVB
その程度のオーバーロードぐらい自分で書けよ
2015/03/30(月) 17:39:10.89ID:kGTScyVB
それかライブラリ使え
それぐらい既にあるだろ
2015/03/30(月) 18:13:10.35ID:slXQ1bOX
ベクトル化って並列化のことでなくて?
2015/03/30(月) 18:23:29.49ID:kGTScyVB
>>567
スカラーをベクトルに拡張してって話をどうこねくり回しても並列化にたどり着かないんだけど
2015/03/30(月) 20:10:43.25ID:1XyG6Wml
行列の話と、CPUの最適化の話がごっちゃになっとるなwww
Phiとか扱わんだろうからなぁ
2015/03/30(月) 20:48:54.91ID:b0tJqvqw
>>564
C言語でも、静的配列はsizeof()で、要素数が求まるじゃん。
だから静的配列に限っては、それほど無理なコンパイル要件でもないと思うんだ。
2015/03/30(月) 22:48:43.72ID:slXQ1bOX
>>568
いや
>>561
で出てんじゃん
2015/03/31(火) 00:17:17.94ID:DE0yY6pv
>>571
そいつに言ってるわけじゃないし
ID:0emdsjcu
はどう見てもベクトル命令の方は言ってないだろ返信の為に引用した方から見ても
2015/04/04(土) 12:05:56.45ID:QQCOreS+
>562
プリプロセッサとかテンプレート使え
2015/04/04(土) 15:28:53.15ID:yUzuUUN3
unityとかue使わないのにはなんか理由があるの?
2015/04/04(土) 16:35:38.22ID:vaG8wcz0
>>574
オープンソースじゃないと嫌な宗派の人たちとか
反プロプライエタリエンジン派の人たちとか?
2015/04/04(土) 17:34:51.61ID:YDk4o154
ゲームを作るだけが目標じゃなくて
技術習得とか作る行程にもこだわりがあるとか
2015/04/06(月) 02:30:22.94ID:uSGdnOak
>>576
まさにそれ。
ゲーム以外でも応用できる技術を身に着けるのが楽しくてしょうがない。
会社(非ゲーム)でも役に立ちまくってる。
2015/04/06(月) 08:15:15.97ID:sWIkPIlR
日本のIT屋はOSやオフィスソフトなんかを作らなかった
結果世界を相手にできない
日本のハード屋はゼロから作ること(メイドインジャパン)にこだわった
結果世界を相手にできてる
unityとかもいいけどゼロからでも作り上げれる技術は保持しときたい
だからC++は捨てれない
2015/04/07(火) 08:34:53.50ID:q9bGL2Lp
俺もだ

つまり、元々ゲームが作りたいんじゃなくて、プログラミングを楽しんで色んな技術や知見を得たい。その過程の一つとしてゲーム作ってるだけ。
2015/04/07(火) 10:05:55.63ID:6mIxjEc4
>>578
言語は関係ないのでは?
コピペしたいなら別だけど
2015/04/07(火) 19:26:39.87ID:J/eE9D3a
>580
VMでもスクリプトでもなくハードを直接叩けて多くのプラットフォーム向けのコンパイラのあるOOPも関数型もいける高級言語って他にある?
2015/04/07(火) 20:05:14.94ID:pKp3reSH
ハードを直接叩くって時点でC++は…
2015/04/07(火) 21:14:04.62ID:JigxqEUV
c++11以降の発展が素晴らしいから使ってる。
2015/04/07(火) 21:49:14.25ID:6Igr/bFa
ガベージコレクタないらしいじゃん
それだけで使う気になんないわ
2015/04/07(火) 22:15:58.91ID:Js45Pttp
C++11が神すぎて愛してる。

>>584
ガベコレの必要性が分からない。
スマポじゃダメなの??
2015/04/07(火) 23:22:56.51ID:r6+ZyJLJ
たしかガベコレのCライブラリもあったはず
わざわざC++でガベコレの使うぐらいなら
それでこそJavaでよくね?とは思うけど
使いこなせる人はきっといるのだろう

ま、使いやすいと思う言語を使えばいいのさ
2015/04/07(火) 23:52:39.26ID:V/NiCl4y
ジャンルにもよるけどゲームの場合はガベコレはデメリットが大きい
ガベコレ中はどうしても処理負荷がかかってしまう
あとガベコレでも循環参照とかメモリークの危険性はある
2015/04/08(水) 01:18:56.44ID:FP0EIOAz
循環参照を上手いこと扱ってくれるのをガベコレって呼ばないか?
単純な参照カウントは含まないイメージがある
2015/04/09(木) 04:57:40.20ID:V84tE5WO
処理が高速なのが売りの言語にそんな物を突っ込むこと自体が…
しかも、CPUの進化で結構余裕が出るようになってきたとはいえ1フレームを争うゲームで
まあ、処理の速さを活かして動作安定性を高めていると言えないこともないが
2015/04/09(木) 10:55:23.90ID:MHTRE/z5
そのあたりの利便性と実行速度のバランス自体を作り手の技術と裁量次第で自由に出来るのがC++の良さ

例えば、マークアンドスイープをメモリ領域を小分けにしてフレーム単位で分散して実行するとか
同じサイズのオブジェクトが大量に生成破棄されるならそれ用のメモリプール作っておくとか
2015/04/09(木) 11:07:59.75ID:U3R6v3b4
マークアンドスウィープ方式のGCを自分で実装なんて考えたこともないわ
2015/04/09(木) 14:05:15.05ID:eY4Y798Y
boostあたりでgcライブラリを出してくれてもいいんでねえ?
スマポの延長みたいな感じで
2015/04/09(木) 15:30:45.95ID:TQZSg7vZ
どうせ何かしらのスクリプト組み込むんだからGC必要な処理はそっちでやればいい
2015/04/09(木) 15:32:48.11ID:0uLPtayU
プログラミング初心者にはわからないと思うけど、プログラミングそのものが有名ゲームをプレイする以上に楽しかったりするんだよね
むしろお金を払わないでプログラミングができるってだけで結構楽しかったり
2015/04/09(木) 15:51:09.16ID:DMZkI4l5
料理とかプラモデルみたいな感覚って説明してる。
それを楽しいと思えるかどうかは別として。
2015/04/09(木) 20:09:02.62ID:V84tE5WO
問題は覚えるべき要素も多くて取っ付きにくいことと、
言語仕様がとっ散らかってて時々その仕様に悩まされることだ
2015/04/09(木) 21:03:17.88ID:0zValk89
C++11は洗練されてて好き。
まぁ、それでもプログラミングを楽しめるかどうかは適性次第だろうね。
自分はC++11が超キモチイイ。
2015/05/04(月) 22:56:40.79ID:bWjMZjgH
初心者だがコードを書くこと自体に喜びを感じる。
2015/05/05(火) 00:33:10.13ID:IAsXNTG2
それは幸せなことだ
初心者は喜びを知り
中級者は苦しみを知り
上級者は無常を知る
それがこの世界の理よ
2015/05/06(水) 00:50:58.96ID:ZQTteOf/
>>599
すごい世界だ・・・
2015/05/06(水) 01:10:46.90ID:o2LDDDsk
無情ならぬ無常か。イケテルじゃんw
2015/05/06(水) 03:08:49.55ID:IHlLqFXR
当方ビジュアルスタジオ2010にてアクションゲームを作っているんですが、
デバッグ中、配列に格納したマップ情報とオブジェクトとの判定をする部分で
ごくまれにエラーが起きて停止します。
経験則で判断すると、マップ判定でのエラーは
マップ情報の無い部分にオブジェクトが飛び出すというものが多かったんですが
今回は目視ですべてのオブジェクトが飛び出してるか否か確認出来る状態で
毎回エラー発生時に怪しいオブジェクトがいないので、今までのエラーとは違うような気がします。
しかも、滅多にそのエラーが出ないため、原因を探れません。

ただ、気持ち悪いことがひとつありまして、そのエラーで停止したあと、
マップの情報を入れた配列にカーソルを当てて、要素を見たら、
途中から「?」という状態になって表示されてるんです。
http://download1.getuploader.com/g/zipcodezipcode/91/B.png
http://download1.getuploader.com/g/zipcodezipcode/90/A.png
これがおかしなことに、見るのを止めて、もう一度カーソルを合わせてみると
今度はちゃんと中身が入ってる状態で表示されたりします。

ビジュアルスタジオの扱いにまだ慣れてないせいもあり、
中身が「?」で表示されたのは初めてだし、覗き直すたびに
「?」だったり、ちゃんと中身が見れたりすることが気持ち悪いんですが
これは別に、問題ないのでしょうか?(もともとそういうものだ、とか)
もし、ゲーム中に配列の中身が「?」みたいになる瞬間があるのなら
そりゃいきなりオブジェクトがど真ん中にいてもエラーになると思うんです。。。
これが原因なのかと思うんですが、、違いますか?
もしくは配列覗いたときの、「?」表示はビジュアルスタジオのバグなんでしょうか?

ちなみに、マップ配列の中身の格納はゲームが始まる最初に行っているので、
ゲーム中にマップ配列の中身が変わることは考えられない仕様です。
だとするとこの「?」はなんなんでしょうか?
考えられる要因を教えて下さい、お願い致します。
2015/05/06(水) 04:38:15.56ID:bWOaRpfa
その覗き直すってのは、実行を停止してる状態での話?
2015/05/06(水) 04:44:45.87ID:IHlLqFXR
>>603
深夜なのにレスありがとうございます。
リリースで実行中に、エラーが起きて「中断」します。
そのときに黄色の矢印がつきますよね、エラーが起きたところで。
中断状態ですね、デバッグモードになってるんでしょうか、
その時の話です。
2015/05/06(水) 04:51:52.90ID:bWOaRpfa
ちょうど同じような症状に悩まされてる人が居たから、そっちと協力すればいいんじゃないかな(鼻ほじ
http://peace.2ch.net/test/read.cgi/tech/1424782918/857
2015/05/08(金) 09:17:52.46ID:NPzwaxuV
DXライブラリでデータベースと連携させてアカウント制のオンラインゲームとかって作れる?
2015/05/08(金) 17:02:47.08ID:1OSTxxey
DXライブラリは、ただのDirectXのラッパだ
別のライブラリなり、自前なりで用意して組み合わせれば当然出来るだろう

DXライブラリにそういう機能があるか?って質問なら、無い。
そういう質問をするレベルの人が作れるかと問われれば、相当厳しいが頑張れとしか。
2015/05/10(日) 16:30:22.09ID:wE+sWsx1
>>602
一箇所で質問しろボケナス
2015/05/12(火) 19:53:17.91ID:S9OdlII3
>>601
マジで最近は技術の陳腐化がものすごく早まって、
ちょっと前までこれが最新最適とされていたコードがもう古い役に立たないコード扱いされてたりして、
そういう意味では無常ではある
2015/05/23(土) 12:10:33.26ID:OTbSyu9z
安定の99BASICとDarkBASIC。(キリッ
2015/05/23(土) 12:52:09.56ID:E7l9iLg/
>>610
IchigoJam行けよ
2015/05/23(土) 13:41:01.34ID:Mp8uVbop
実績のないルーキーが過剰にもてはやされる業界
2015/05/24(日) 01:01:21.31ID:2/e5e/p/
ゲームのAI作るの楽しいな
一応動いてくれた時の感動がたまらない
けど相手に合わせて学習するようなAIはデバッグが難しいね
2015/05/25(月) 20:19:16.09ID:uK2DB85t
>>611
わざわざ99BASIC未満の環境なんか逝くかよw
2015/05/25(月) 22:55:26.19ID:na2KTF3d
お前ならヒーローになれると思ったのになー、残念だわー
2015/05/30(土) 09:46:19.17ID:B9JLVvSW
参考書増えすぎて置き場所がなくなってきた
ブックエンドいくつか使って何とか置いてたけど
ちゃんとした本棚買うべきか・・・
2015/05/30(土) 10:04:43.12ID:euXn7anm
丁度サイズの合ういい本棚がないんだよな
2015/05/30(土) 10:36:42.87ID:B9JLVvSW
本棚買う金で新しい参考書買えるんじゃね?って考えてしまう気持ちもあってなぁ・・・
2015/06/02(火) 17:39:01.05ID:MlWv0OLE
今日発売の ゲームプログラマのためのコーディング技術 って読んだ人いる?
少し立ち読みして良かったら買おうと思って近所の本屋に寄ったけど置いてなかった
ゲームのシステムがある程度の規模になってくるとゴチャゴチャしてきて
わけわからなくなってくるから綺麗なコード書けるようになりたいんだけど参考になるかね?
専門学校時代も入れるとゲーム製作は3本目なんだけど、
いまだに悩んでるスパゲッティコードをなんとかしたい
2015/06/02(火) 17:58:05.87ID:MlWv0OLE
あ、3本目って言うのは一人で全部プログラミングしたって意味
分担ならもっと多いです
2015/06/02(火) 21:36:22.65ID:SNgoyQru
読んでないけどゲームプログラマのためのコーディング技術なんて
ループしないで並べるとか細かくメモリとらないとか、
綺麗なコードとは関係なさそうなイメージしかないけどな
2015/06/02(火) 22:41:29.74ID:kPJiVod8
汚いコード書く奴ほどバグ出してると感じることはある
綺麗に書こうと努力してるコードは何かしらのこだわりを持って書いているからだろうか
必然的に保守し易くなる傾向にあるとも思える
しかし何にも増して重要なのはやはりセンス
2015/06/02(火) 22:52:24.02ID:OsC99ZpC
>>622
まったくの同意。
美意識の低い人間のコードは見辛い、保守性悪い、汎用性、可搬性が考慮されていない等々、機能的にも美しくない。
こういうやつの尻拭いがまわってくる度に怒りが込み上げてくる。

うっかりミスや、見通しが難しい段階でのコーディングなど、止むを得ないことは仕方ないが、
もうちと考えるなり拘るなりしようや・・・。
2015/06/02(火) 23:00:59.32ID:G2Xt6Fyg
きったねえコードだ
2015/06/03(水) 16:11:07.48ID:Nya6+czP
とりあえず動けばいいやと考えて作るから場当たり的になってコードが汚くなるんだよ
はじめに全体像を大まかにでも作り上げておいて、それに従って体系だったコードを書いて
場合によっては書き直しも視野に入れるくらいしないと後でバグ探しが大変だよ
2015/06/03(水) 16:59:26.17ID:6kvk2a5h
それは分かったから
なんか具体例で示して
2015/06/03(水) 19:09:02.96ID:sRl87IVO
継承しまくってもはやどれだけの要素が絡んでるのかわからない子クラスとか、
ソースで使う要素が書かれていないヘッダとか、
あまり意味のないtypedefのせいで紛らわしくなってるソースとか、
ろくに改行もせずにごちゃごちゃ書きなぐってるソースとか…
可読性は落とそうと思えばいくらでも落とせそうだからなぁ
2015/06/04(木) 16:11:36.42ID:vrU+ubOi
>>625
たぶん、「とりあえず動けばいい」というコーディングをしつつも、
最低限の体裁が整ってるような、基礎力が必要なんだろうなあ

勉強しなきゃ
2015/06/04(木) 18:56:22.51ID:cnsghjkt
いつオープンソース化しても恥ずかしくないような
きれいな設計を心がけている
2015/06/05(金) 19:52:10.75ID:JMVsMa+y
そして暗号のような関数名や変数名
2015/06/05(金) 20:37:14.05ID:mCe853J4
3回も書き直せばマシになると思う
というか当たり前だけど、設計って細かい点までどうしてそうしたか説明できないと
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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