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/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回も書き直せばマシになると思う
というか当たり前だけど、設計って細かい点までどうしてそうしたか説明できないと
2015/06/05(金) 22:35:58.01ID:LdgVPS1s
>>619の本がアマゾンのゲームプログラミングカテゴリで売れ筋1位になってんな
2015/06/06(土) 14:40:28.29ID:dpbcAJje
ゲームプログラミングカテゴリ

ニッチすぎる
2015/06/06(土) 15:35:59.70ID:sud1dN03
そのニッチなことに興味あるのがこのスレに居る奴らだろう
2015/06/07(日) 13:09:26.35ID:NNLpNWfN
 技術テストだから・・・と書き始めたコードを、体裁整えて本番用にしてしまいました。
 構造体には、今後を見据えた無駄が沢山ヽ(`Д´)ノ
 関数には、アップデートの過程で使われなくなった関数そこそこヽ(`Д´)ノ
 グローバル変数こそ控え目なものの、そこかしらに謎の変数int i;が溢れていますヽ(`Д´)ノ

 うん、もう少し頑張ろう。
2015/06/07(日) 19:01:21.25ID:GcuHsAFc
>>619の読んだ人はいない?
まだ現物見てないからすでに手に入れた人がいたら感想聞きたいが
2015/06/07(日) 19:49:11.96ID:kU5YoC5S
田舎だからか本屋に置いてなかった
2015/06/09(火) 13:45:46.10ID:KfX/rE3U
電子版あるべや
2015/06/09(火) 17:10:14.78ID:xMkQCsUA
中身確認してから買いたいって意味だろ
2015/06/09(火) 20:36:17.49ID:fdMK9ws0
>>635
バージョン管理ソフトで定期的にバックアップを取りつつ、
使わなくなった関数は消してあげるといいよぉ
っつーか、使わないなら消してくれ 頼むから
2015/08/31(月) 13:46:15.71ID:BsMwLClI
幸福を固定された状況で規定するのは無意味
重要なのはどれだけそれを望むかということ

それに富と名声が同時に手に入らないと決まっているわけでもない
わざわざ自分から天井作ることはないだろ
ニートよ大志を抱け
2015/08/31(月) 13:46:58.10ID:BsMwLClI
ごwばwくw
2015/09/27(日) 10:14:22.18ID:U9LV1Cm0
前スレ >>996 です
やっと移植終わりました
60ポリの飛行機が120fpsでしたがw
とりあえずOS(バイナリのみ)ともとにしたPC版ソースあげてみます
http://www1.axfc.net/u/3540804
2015/09/30(水) 16:48:24.79ID:/wD0a4XY
自作OSで3D表示に挑戦してた人か、乙
645名前は開発中のものです。
垢版 |
2015/12/19(土) 14:08:46.68ID:xrPl3RjI
プログラマはMacを使ってるってマジ?
http://hayabusa3.2ch.net/test/read.cgi/news/1450395043/
2016/03/08(火) 21:48:03.20ID:aJ2MUmL6
14歳からはじめるC言語わくわくゲームプログラミング教室 Visual Studio 2013編p148に

//画像を読み込み
if (LoadGameImage() == FALSE) return -1; 

というのがあるんだが
画像をこれで読み込んでるらしいが
プログラムに異常があったときの処理があるようにしか見えない
それともC++とDXライブラリではこれが画像読み込みを意味するんだろうか・・・
2016/03/08(火) 23:48:05.21ID:HZQ9dU35
どういうこと?
2016/03/08(火) 23:55:20.55ID:xTnST2lM
LoadGameImageは自作関数じゃないの?
2016/03/08(火) 23:58:22.29ID:S/avUcpG
>>646
読み込みとエラー判定を兼ねているのではなく?
2016/03/08(火) 23:59:47.69ID:HZQ9dU35
>プログラムに異常があったときの処理があるようにしか見えない

これが具体的に何を指すのかが分かれば
答えようもあるんだが
2016/03/09(水) 00:25:01.22ID:6v8oW5co
http://www12128uf.さくら.ne.jp/forum/viewtopic.php?t=16197&p=128079

ここに>>646が言ってるものと思われるコードが載ってるけど、
エラー判定をするif文に何か関数が入ってれば当然その関数もif文を判定するときに実行される
だからエラー判定の一行だけで画像の読み込みも同時に済む
これはDXライブラリの仕様ではないよ

>プログラムに異常があったときの処理があるようにしか見えない
これは失敗した時に-1を返すようになってるからそう思ったんだと思う
DXライブラリの関数でもそうなっているね
2016/03/09(水) 10:30:03.03ID:hrHSTVTj
if(!Func()) return 0;
みたいな書き方を俺はよくしてるけど
"!"よりも"== FALSE"の方が可読性高かったりする?
2016/03/09(水) 15:57:21.69ID:Ezb24swa
俺も!だと一瞬で理解できないな。
!strcmpとか書かれるとそこで1秒固まる。
2016/03/09(水) 16:03:42.30ID:k0YnCSJd
んなことはない
俺は!でも分かるし
オープンソースソフトウェアのソースコードでもよく使われている
2016/03/09(水) 16:08:21.21ID:yq5u8pgy
自分も!派だな
656646
垢版 |
2016/03/09(水) 18:40:53.88ID:Y8IoTovs
あああ ありがとうございました
if文の中の関数が実行されるとは・・・
2016/03/09(水) 18:50:25.07ID:ZhTtK3D6
Cの勉強中?
2016/03/09(水) 19:50:34.93ID:JQPFUPms
!はよく使うけど、if文の中に関数は書かないな。
エラー処理とかしたい時は一旦hogeでも挟む。
strcmpとか条件分岐で使うのが前提みたいな関数は書くけど。

ってか人多いな。
2016/03/09(水) 20:28:24.63ID:KZC9RKwk
>>653
!がわかりにくいのではなくて
strcmpのような真偽値でない値を返す関数に対して!を使ってる
本質的に正しくない書き方だからじゃないか?
2016/03/09(水) 21:34:28.22ID:JVQPGZ6h
!か==FALSEかの可視性に関してはその関数が何を返してくるかによると思うけどね

>>658
自分も一旦変数で受けてから評価するかな
2016/03/09(水) 21:58:58.25ID:RXGdxmu3
半年ぶりの書き込みだって言うのに結構レスついたな
書き込みなかっただけでチェックしてる人はいたのか
2016/03/09(水) 22:07:48.28ID:bvV2Ln2d
!使うときって、正常終了時は0が返ってきて、エラーの時は0以外(エラー番号)、
ってな関数の時に使うこともある

他人に判りやすく書くなら、S_OKとか使った方がいいんだろうけど
2016/03/09(水) 23:47:54.45ID:4T/47goJ
今回の件の反動で>>656が変態Cプログラマーになる確率90%
2016/03/10(木) 02:11:59.94ID:mzm/T4vZ
でも多少の文法の違いはあれど、
C/C++以外でも頻出する用法よね…
2016/03/11(金) 13:06:08.83ID:N544VfcK
確かに戻り値0orNot0とstrcmpは分けるべきだったな、失礼。
お願いだから、0<strcmp(a,b)って
書き方だけは止めてくれーーー!!(心の叫び)
2016/03/11(金) 20:50:27.91ID:0nAdN0wU
左辺に定数来る書き方が?
2016/03/11(金) 22:16:16.31ID:N544VfcK
strcmp(a,b)<0は、a<bって脳内変換できるけど、
0<strcmp(a,b)はa>bになって、不等号が逆になっちゃうんだよね

if (a==1) を if(a=1)としてもエラーにならないから
if(1==a)って書きましょうっていう
コーディング規約の影響なんだけと
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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