トップページgamedev
1001コメント321KB

C/C++ゲーム製作総合スレッド Part6

レス数が1000を超えています。これ以上書き込みはできません。
0001名前は開発中のものです。2014/07/08(火) 19:30:19.51ID:J+zVqUil
ゲーム製作におけるC/C++全般に関するスレです。

元スレ
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/
0951名前は開発中のものです。2014/12/29(月) 01:44:11.15ID:32D0f9iV
memoryとの違いがわからん
0952名前は開発中のものです。2014/12/29(月) 07:13:22.67ID:aw7mXH6p
今最新のVSに入ってるC++も当然11だよな?スマポ余裕で使えるじゃん boost不要
0953名前は開発中のものです。2014/12/29(月) 11:06:00.25ID:UPrXKgd4
リークするのはてめえの脳みそだけにしておけ
0954名前は開発中のものです。2014/12/29(月) 18:43:53.95ID:aw7mXH6p
うん?現行最新のVSなら3種類の型が使えるだろ?実質2種類だけど
VS以外を使っていたりとかVS標準スマポの仕組みや性能が気に入らないってのは知らない

っつーかな、書き落としはリークじゃなくね
0955名前は開発中のものです。2014/12/30(火) 03:36:36.79ID:vvze8R+p
データの圧縮や解凍ってどうやってる?
簡単な圧縮かけた方がファイルからデータに展開するのも早いし、
(ファイルの読み書きの速度と展開速度を天秤にかけた)
解析する人にとっても多少は面倒になるかな?と思って
GPLとかに感染しないのがあると良いな

やっぱ、自力でやるしか無い?
0956名前は開発中のものです。2014/12/30(火) 03:46:28.22ID:W5CPlMBg
>>955
zlib
0957名前は開発中のものです。2014/12/30(火) 04:01:26.42ID:bdHUCtIv
バイナリ全部繋げてcueファイルにインデックスいれときゃいんじゃね
0958名前は開発中のものです。2014/12/30(火) 08:13:45.13ID:swhFWkgZ
今使うならLZ4かな
0959名前は開発中のものです。2014/12/30(火) 09:05:37.93ID:6MynlDel
色々な言語のライブラリあるしBSDだし良さそうやね
圧縮率あって高速ってのは魅力的だわ
0960名前は開発中のものです。2014/12/30(火) 09:25:49.71ID:HpQ+h6E5
圧縮済みの画像や音声なら無圧縮形式のほうが良いかもね。
mmapして切り出せばメモリ確保も要らない。
0961名前は開発中のものです。2014/12/30(火) 18:48:29.71ID:UWJ4OXBN
mmapのほうがreadより速いという迷信について - kazuhoのメモ置き場
http://d.hatena.ne.jp/kazuhooku/touch/20131010/1381403041
0962名前は開発中のものです。2014/12/30(火) 23:03:50.59ID:HpQ+h6E5
誰もCPUキャッシュやディスク先読みのレベルでのmmapの速度の話なんかしてねーよ
0963名前は開発中のものです。2014/12/31(水) 10:36:13.73ID:rJyBxJIf
メモリ節約って何だよ
ファイルの内容なんてデコードしたらすぐ捨てるだろ

そんな回りくどいことしないで普通に読み込めばいい

サーバーにおいて複数のプロセスから同じファイルの内容を読み込む時なんかは
読み込み用のバッファが要らなくなるからメモリ節約に繋がるらしいが
殆どのケースで速度が遅くなるだけだから使う理由が無い
0964名前は開発中のものです。2015/01/01(木) 16:48:21.14ID:jkRIISMU
class TestClass {
private:
// 型 m_funcArray;
void FuncA();
void FuncB();
void FuncC();
public:
void CreateFuncArray() {
m_funcArray[0] = &FuncA;
m_funcArray[1] = &FuncB;
m_funcArray[2] = &FuncC;
}
void ExecuteFuncArray() {
for (int i = 0; i < m_funcArray.Length; i++) {
m_funcArray[i]();
}
}
}

こんな感じでクラスにメンバ関数ポインタの配列を作って実行したいのですが
メンバ関数ポインタの配列の型をどう宣言すれば良いでしょうか
0965名前は開発中のものです。2015/01/01(木) 18:08:05.65ID:cWuPuXeC
言語仕様的にどこまで正しいかわからんけど

class CTestClass {
private:
void (CTestClass::*m_pFunc[3]) ();

void FuncA();
void FuncB();
void FuncC();

void SetTable() {
m_pFunc[0] = &CTestClass::FuncA;
m_pFunc[1] = &CTestClass::FuncB;
m_pFunc[2] = &CTestClass::FuncC;
};

};
0966名前は開発中のものです。2015/01/01(木) 18:10:47.53ID:cWuPuXeC
呼び出しはこうな
void Exec( int i ) {
(this->*(m_pFunc[i])) ();
}
0967名前は開発中のものです。2015/01/01(木) 18:29:15.58ID:jkRIISMU
>>965-966
ありがとうございます
なるほど*はその位置につけるんですか
0968名前は開発中のものです。2015/01/02(金) 17:10:32.59ID:dGIIjPDH
enum class Signals {
RED,
GREEN,
BLUE
}

void func(Signals signal) {
if (signal == Signals::RED) {
// 処理
}
}

enum classを使って引数を識別したかったのですが次のようなエラーが出ました
error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
どうすればいいのでしょうか
0969名前は開発中のものです。2015/01/02(金) 17:16:07.35ID:nBM88kHl
void main を int main に変更
0970名前は開発中のものです。2015/01/02(金) 17:47:26.94ID:dGIIjPDH
関係ない所のエラーでしたすみません
0971名前は開発中のものです。2015/01/04(日) 15:42:29.73ID:8cIsCjgM
ifstream::read(buff,filesize)で読み込んだ文字列を表示すると
末尾にEOFらしき文字化けした文字があってXML等のパースに失敗するんですが
filesizeを-1してreadしたり、読み込んだchar*の末尾のEOFと思われる要素に\0をいれて回避しているんですが
根本的な解決方法がわかりません

どうしたらいいですか
0972名前は開発中のものです。2015/01/04(日) 16:06:48.29ID:Ep14vw0N
>>971
filesize 数ぶんの文字が無かったんだろう。
入力バッファ末尾の未初期化の領域が見えているだけ。
改行コードの変換 \r\n --> \n とかでちょうど1文字減ってるんじゃないの?

バイナリモードで読めば、たぶんファイルサイズと文字数が一致するはず。
その後の処理が \r\n に対応してないといけないけど。
テキストモードで読みたいなら、istream_iterator を使うのが定番かな。
0973名前は開発中のものです。2015/01/05(月) 13:29:36.70ID:61MXvLfY
終端文字の文字数って2文字じゃなかったっけ?
0974名前は開発中のものです。2015/01/05(月) 13:52:13.89ID:+omNtWXl
buff全体を0クリアしてreadすればいいだけ
他の方法はgetで一文字づつ読みつつeofチェック
ファイルが全てメモリに置いても問題ないサイズならstd::stringとoperator>>で全部一度に取得
好きなの選べ
0975名前は開発中のものです。2015/01/06(火) 11:25:41.33ID:BevxLkoj
http://murakan.cocolog-nifty.com/blog/2009/12/cstreameof-7401.html
なんかeofまで読み込むのはifstreamの仕様らしいですね
0976名前は開発中のものです。2015/01/06(火) 18:08:33.09ID:+D28bBOU
そりゃeofまで読まないとどこが終端なのか分からないし…
0977名前は開発中のものです。2015/01/07(水) 13:02:30.14ID:NiXFoaGk
横からすいません、質問です。
http://www1.axfc.net/u/3387806
ソフトウェア3DCGライブラリを作っているのですが、
80万ポリゴン/秒(C2D E8400 OC 3.6GHz上&フラットシェーディング&テクスチャマッピングなし)
しか出ません。ソフトウェアレンダリングってこんなものなんですか?
0978名前は開発中のものです。2015/01/07(水) 18:26:06.67ID:PQ5kLSMd
何で今時ソフトウェアレンダラー
0979名前は開発中のものです。2015/01/07(水) 18:57:47.13ID:vA0pKoe4
>>977
DirectXのリファレンスドライバでメッシュを表示する適当なもの作ってそれと比較してみたら?
0980名前は開発中のものです。2015/01/07(水) 20:29:35.89ID:PQ5kLSMd
ソフトウェアレンダラーにしたってMesaとかIrrlichtのソフトウェアレンダラーとかが既にあるのに
車輪の再開発じゃない?

http://en.wikipedia.org/wiki/Mesa_(computer_graphics)#Software_renderer
http://irrlicht.sourceforge.net/features/
0981名前は開発中のものです。2015/01/07(水) 22:42:06.11ID:Wqt7oMn8
GT3D_drawpoly_fill_sub()を流し読みしたけど、多角形描画は普通っぽかったし
このプログラム自体は特に速度をどうこうしているものではないようですね。
ちょっと見ただけだけどソースは一部ですよね
SSEとかも使ってないし、マルチスレッドでもないですよね
描画対象はメモリ? に一旦描画している感じなのかな
描画範囲を分割してマルチスレッドにしてはどうですか?
0982名前は開発中のものです。2015/01/08(木) 20:42:14.85ID:Mw182kRW
メモリ速いやつに差し替えようぜ
0983名前は開発中のものです。2015/01/08(木) 22:06:01.19ID:7iBzssXL
MSの最新技術の粋を集めたWARPに敵うはずがない
0984名前は開発中のものです。2015/01/08(木) 22:18:13.29ID:5+CLNQq0
WARPはSIMDも使ってるはずだよね。
0985名前は開発中のものです。2015/01/09(金) 13:53:51.10ID:VWlQDlh6
SSE2必須で使える場合SSE4.1まで使ってるとかなんとか
0986名前は開発中のものです。2015/01/09(金) 17:34:34.87ID:Iw10L3cl
>>977 です。
ちょっとSSE勉強してみます。
今更ソフトウェアレンダラなのは
自分で作れば最小限の機能になって使いやすいと思ったからです。
自作OSへの転用も簡単ですし。
SSE版は別プロジェクトでやってみます。
0987名前は開発中のものです。2015/01/09(金) 17:49:58.46ID:6dSDlYuJ
SSEより完成目指せ。
効率よく使ったとして数%の成績アップだ。体感では違いがないとかなりうる。
0988名前は開発中のものです。2015/01/09(金) 18:21:14.91ID:YwByCpOo
>>986
何その理由
普通にOpenGLかDirect3Dで良いじゃん
自作OSってふざけてんの?
0989名前は開発中のものです。2015/01/10(土) 06:38:12.95ID:FMkme2Bg
>>986
面白い物好きが来たな
OS作るのがメインでゲーム作りがサブなのか
目指すは究極のマルチプラットフォーム?
あるいは新しい3D環境でも作り出したいのかな?
レイトレーシングという概念を勉強すると、また新しい世界が見えるかも?
0990名前は開発中のものです。2015/01/10(土) 10:07:13.00ID:JC3btUBL
自前でできるといいと思うよ。
その後、FPGAに実装したらさらに楽しいと思う。
0991名前は開発中のものです。2015/01/10(土) 10:28:58.93ID:XEF52+tX
中身自作するにしてもAPIはOpenGLにあわせたものも作った方が良いと思うけどね。
自作物のパフォーマンスがどれだけ酷いか解るし。

まぁ趣味なんだろうから好きにしたら良いと思うけど。
0992名前は開発中のものです。2015/01/11(日) 00:41:53.86ID:EFs4nj8K
き、きっと将来のビル・ゲイツを目指しているんだよ!

オペレーション・システムそのものの開発ときたか
夢がデカすぎて全体像が見えない
0993名前は開発中のものです。2015/01/11(日) 00:44:24.46ID:IZj/cFBq
実用性はさておき、自分で一通り作れたら最高に感動できるだろうな。
がんばってくれ。
0994名前は開発中のものです。2015/01/11(日) 00:50:41.76ID:2AMxCLe9
お前ら東大の名物科目CPU実験くらいは知っといたほうがいいぞ
986がそうとは思わないがな
0995名前は開発中のものです。2015/01/11(日) 06:09:25.57ID:vPB1OoJW
WARPって必要な部分だけソフトウェアで補うとかじゃなくって
全部ソフトウェアになるのか
0996名前は開発中のものです。2015/01/11(日) 09:26:23.44ID:DORzARTJ
>>992-993
実はOSの方は既にある程度出来てまして・・・w
「三十日でできる!OS自作入門」のはりぼてOSをもとに作ってます。
ちなみにソフトウェアレンダラに至った経緯は

OS作った

それでゲーム作りたい

でも3dCG使えない

じゃあレンダラ作ろう

ある程度出来た←いまここ

自作OSの方はSSE未対応なのでlinux/OSX/Windows版のみの特権になるっぽいですね
今日中には移植しようと思ってます!
0997名前は開発中のものです。2015/01/11(日) 10:21:27.64ID:RDQlUyF+
次スレ立てたよ

C/C++ゲーム製作総合スレッド Part7 [転載禁止]2ch.net
http://peace.2ch.net/test/read.cgi/gamedev/1420939171/
0998名前は開発中のものです。2015/01/11(日) 10:39:34.22ID:IZj/cFBq
>>997
乙〜!

やっぱゲームプログラミングは一番楽しいぜ。
0999名前は開発中のものです。2015/01/11(日) 18:55:24.63ID:9XLW+JE+
自作OSとか本人は楽しいんだろうけど
1000名前は開発中のものです。2015/01/11(日) 19:08:48.17ID:+gxvr94o
本人が楽しいなら十分だろ
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。