[過去ログ] ゲームプログラミング相談室 (986レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
875(4): 02/11/01 00:54 ID:26Va0gRH(1) AAS
この流れに便乗して質問させてください。
VC++でシューティングゲームを作っているのですが、敵や弾をたくさん表示させては
消すために、メモリをnew、deleteしまくっているのです。
ところが、実行しているとすぐに重くなってしまいます。
メモリリークに関しては、デバッグモードで
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF)
を呼び出して確認したのですが、一つもありませんでした。
省3
876(1): 02/11/01 01:02 ID:??? AAS
>>875
> 表示させたオブジェクト(newしたインスタンス)の数に比例して
それって、ふつうに処理量が増えてるんじゃないの?
877(1): 02/11/01 01:23 ID:??? AAS
>>875
敵や弾の画面表示だけしない場合も重くなるか?
878: 02/11/01 01:24 ID:??? AAS
> OSに暗黙的に解放してもらったって時間は掛かるだろ。
いわゆるunixあるいはwin32ならばかかりまへん
879(2): 02/11/01 01:28 ID:??? AAS
>>876
いえ、そういうのではありません。
キューに、敵だの弾だの詰め込んで、敵をやっつけ(deleteし)ます。
その後しばらく敵を出さなければ、キューがちゃんと空になっていることも
確認しました。
そして、その後また同じように敵を出して…と繰り返すと、だんだん重くなっていくのです。
プログラムを終了したときなんか、数秒フリーズしたように止まります。
省2
880: 02/11/01 01:34 ID:??? AAS
>>875
たぶんソース見ないと原因は分からない。
881: 02/11/01 01:39 ID:??? AAS
>873はVBかJavaでもやってろってこった(藁
882: 02/11/01 01:39 ID:??? AAS
>>879
HDDにスワップしているから遅くなっているとかそういうのは?
883: 02/11/01 01:44 ID:??? AAS
メモリを解放しているから、メモリが足りなくなることはない
→スワップはしない。
って考えるのは間違ってますか?
スワップしてる気配はないのですが…
884: 02/11/01 01:47 ID:??? AAS
>>879
1個1個new/deleteせずに、最初に一定数一括確保して使い回すように
してみて、軽くなるようならnew/deleteで重くなっていると見る。
885: 02/11/01 01:53 ID:??? AAS
>>875
profilingしてみりゃいいだけじゃん?
886: 02/11/01 01:53 ID:??? AAS
ありがとうございました。わかりました、やってみます。
ところで、new/deleteで重くなるとしたら、どうしてなんでしょう。
deleteする瞬間に重くなるなら分かるけど、後々にも響くってのは
理解できませんよね。
887(1): 02/11/01 02:02 ID:??? AAS
あまりにも頻繁に確保・開放を繰り返すと、それを管理する
ほうも大変なんじゃないの。確保・開放を繰り返すと割り当てた
メモリが断片化するよね。そんな状態で効率よく領域を割り当てる
ようにするにはどうすればいいんだろうね。
888(1): 02/11/01 02:03 ID:??? AAS
>>874
> OSに暗黙的に解放してもらったって時間は掛かるだろ。
free() のソースを読んで、どういう処理をしているのか調べてみ。OS の
方の処理とはまた別に、いろいろやってるから。
889: 02/11/01 02:07 ID:??? AAS
>>887
仮想記憶を採用している環境なら、気にしないのが正解だと思う。スワップは
喰うかもしれんが、実メモリの断片化はページングにお任せってことで。
仮想記憶がない環境だと、最初にメモリのレイアウトを決めてしまって、固定
長のメモリブロックを割りあてるのが常套手段。
890(1): 02/11/01 02:17 ID:??? AAS
>888
それが問題になるほど大きな処理なのか?
もしそうなのだとしたら、最初にどんとメモリ取って、
それを小分けにして使って、最後にどんと解放したら
いいじゃないか。だったら一回で済む。
891: 02/11/01 02:34 ID:??? AAS
>>890
そこまでして、わざわざヒープの解放に拘る意味があるのか?
だいたい使ったメモリ全部解放しろっつーなら、スタックやテキスト
はどうするんだか。
892(1): 02/11/01 02:38 ID:??? AAS
そこまでって言うほどの手間じゃねえだろ、と言っている。
最後にしか解放しないと割り切れば、簡単に実装できるだろ。
893: 02/11/01 02:42 ID:??? AAS
>>892
そんな丼勘定な実装に何の意味があるんだ? だいたい最初からサイズが
見積れるなら static でとれば良いだけだし。
894(1): 02/11/01 03:20 ID:??? AAS
メモリリークをつぶせるという意味がある。警告メッセージ潰し。
サイズ見積もれなんていってないじゃないか。
allocに一枚ラッパーかぶせて、ポインタを全部記録しておいて、
終了時に順にfreeするだけ。
895: 02/11/01 03:35 ID:??? AAS
ダイナミックに確保するならちゃんと開放しないとダメだよ。
メモリを再確保するたびに使用メモリ量が積もっていく。
ゲームの場合はメインの処理がループなので、たいしたことないと思っていても、
処理によっては1秒60回でメモリリークされたりしてちょっとまずいことになる。
開放しないメモリを確保するくらいなら初めからスタティックに確保した方がいい。
896: 02/11/01 05:41 ID:??? AAS
>894はループの中で確保するのを前提にした話ではないよ。
どうしても解放するのが面倒くさい場合の最後の手段で言ってるだけ。
シューティングゲームのバッファなんかはstaticでいい気が。
数の上限は知れてるし、容量もたいしたことないでしょう。
897: 02/11/01 09:10 ID:??? AAS
.NETのガベージコレクタを使え
898: 02/11/01 09:22 ID:??? AAS
boost::pool ダ! (ウソ
899(2): 02/11/01 09:55 ID:??? AAS
メモリ開放しないプログラムはそのまま再利用できないからクソ。
900(1): 02/11/01 14:36 ID:??? AAS
>>899
スレの内容を全く読んでいない馬鹿発見!
901: 02/11/01 16:44 ID:??? AAS
メモリ開放しないやつは開発者の姿勢としてクソ。
902(2): 02/11/01 19:58 ID:??? AAS
boost::poolって早いの?
903: 02/11/01 20:41 ID:??? AAS
>>902
そんな抽象的すぎる質問にどうやって答えろと(藁
904(1): 02/11/01 21:08 ID:??? AAS
突然ですみませんが当たり判定のアルゴリズムでOBBについて解説してある日本のサイトなどはないでしょうか?
905: 02/11/01 21:49 ID:??? AAS
メモリ開発しないやつは解放者の姿勢としてクソ。
906: 02/11/01 23:22 ID:??? AAS
>>904
日本のサイトは知らん。
海外ならいっぱいあるけど。
907: 02/11/01 23:58 ID:??? AAS
>>900
まんざらそうでもない。
javacなんかがそれで一時期ハマってたらしい。
908(1): 02/11/02 00:24 ID:??? AAS
>906
すみませんが、できたらそのサイトをおしえていただけないでしょうか?申し訳ないです。
909(1): 02/11/02 00:29 ID:??? AAS
>>908
最近の厨房様は検索と言う言葉をご存知ないらしい。
外部リンク:www.google.com
910: 02/11/02 00:46 ID:??? AAS
日本語のサイトは皆無だよな・・・
911: 02/11/02 01:01 ID:??? AAS
>909
すみません、すみません。(´Д`;)
912: 02/11/02 02:32 ID:??? AAS
>>902
開発は、早くなり増田。
913(1): 02/11/02 15:33 ID:??? AAS
>>899
本当に、そのプログラムは再利用されるのか? 汎用性は諸刃の剣だぞ。
914: 02/11/02 16:06 ID:??? AAS
>>913
まあ、C/C++に限って言えば再利用なんて、ほとんど幻想に過ぎないんだが、
ここは希望的観測の意味も込めて、「安易な手法での再利用は諸刃の刃だぞ」にしとこうや。
915: 02/11/02 16:19 ID:??? AAS
んでも、普段からメモリを解放するクセをつけておかないと思わぬところで…ってこともあるかもね。
GCがサポートされてる言語なら別として。
916(1): 02/11/02 16:23 ID:??? AAS
・処理速度至上主義
・プログラムコードは基本的に使い捨て
・激しく機種依存するプログラムばかり組む
ゲームプログラマは特に価値観が偏っているから常識は通用しないよ。
偏りすぎていて他のジャンルでは通用しない気もするけど。
917(1): ゲーム業界の真相 02/11/02 16:45 ID:??? AAS
再利用ができない
↓
生産性が上がらない
↓
労働者が沢山必要
↓
1人あたりの賃金が安くなる
省2
918: 02/11/02 18:52 ID:??? AAS
>>917
再利用を念頭においた結果、過度に複雑なクラスライブラリができて、結局
使われずに封印ということもある。バランス感覚重要。
っつか、ゲーム業界に限っていえばプログラマの数はむしろ少ないと思うが。
919: 02/11/02 20:59 ID:??? AAS
ゲームばっか作ってると、変な癖がついてしまう面はあるんじゃないの。
パフォーマンスを追及するあまり、超複雑・可読性ゼロ・再利用性ゼロみたいな。
まあ、ゲームに限って言えばそれでいいのかもしれないけど。
資産が継承できないとしたら賽の河原状態かな。
920: 02/11/02 21:41 ID:??? AAS
> ゲームばっか作ってると、変な癖がついてしまう面はあるんじゃないの。
気のせい。ファミコン時代ならいざ知らず、今時はそんなコードでは通用しない
程度には開発の規模が大きくなってる。
プログラマ一人で三ヵ月の仕事と、プログラマ三人で十八ヵ月の仕事だと、最適
な仕事の進め方は変わってくるわな。(さらに SI みたくプログラマ何百人みた
いな体制だと、また違ってくる)
921: 02/11/02 22:36 ID:??? AAS
今だと、プログラマ2〜3人ぐらいのプロジェクトが多いのかな。
平均的な話。
922(1): 02/11/02 23:03 ID:rSTkonKP(1) AAS
>>916
> ・処理速度至上主義
ここはその通りだとおもうけど、下の2点は同意できないなぁ
特に機種依存コードを多用したりすると恐ろしく読みにくいコードになって、
デバッグ困難になったりするよね
もし担当が交通事故で急死したとしても、他のメンバーが問題無く引き継げるように
読みやすさ優先でコード書けって先輩にたたきこまれたクチなんだけど…
923: 02/11/02 23:10 ID:??? AAS
>>922 自己レス
916 は、ゲームプログラマはそういうのが多いって言ってるだけだね
勘違いしてた、もうしわけねぇ
924(2): 02/11/02 23:18 ID:??? AAS
多いって一般のプログラマとどうやって比較したのか出所提出を小一時間求めたい
ありもしない妄想を根拠として抽象的な論理を展開するのが流行りか?
925: 02/11/02 23:31 ID:??? AAS
そこまであちこち顔を出してる人ってそんなにいるとも思えんのう
926(1): 02/11/02 23:32 ID:??? AAS
>>924
いちいち根拠になるデータを提示しないと話が進まないような話題とは
思えませんが?そういう不毛な煽りも流行なのですか?
まず、あなたのその「一般のプログラマ」の定義からお聞かせ願えませんか?
927(2): 02/11/02 23:50 ID:??? AAS
「〜という傾向がある」に対し「そうでもないんじゃない?」
という発言がきたら、論拠なり証拠なりを出さないと話が進みませんよ。
928: 927 02/11/02 23:51 ID:??? AAS
あ、煽り屋か・・・スマソ
929: 02/11/03 00:33 ID:??? AAS
>>927
それはそうなんですが、あまり度が過ぎるとどうかな?と
端的な例ですが、
「最近の若い者は礼儀が悪すぎる」
「そんな事はないでしょう。論拠を示してください」
という会話を見てどう感じますか?
感想レベルの話題に対しては無意味でしょ?
930: 02/11/03 00:50 ID:??? AAS
920が示しているように、規模やコード資産の量などの違いでもって
やりかたは変わってくるし、それが元で傾向に違いがでてきてもおかしくないと
思うのよ。
それを「ゲームプログラマだから」とかいう括りでやっちゃうのが間違いだろ?
という話にもってくなら分るけど、>>924,926にあるようなつまんない指摘は
煽り屋と思われても仕方ないよ。
931(1): 02/11/03 01:28 ID:??? AAS
完成するころには次のハード
932(1): 02/11/03 09:43 ID:??? AAS
>>931
携帯電話プログラマも大変だねえ
933: 02/11/03 10:28 ID:??? AAS
>>932
そうやって無理やり変な解釈するのもどうかと思うよ。煽り?
実際、でかいプロジェクトだと、そんな感じになるっしょ
934(1): 02/11/03 10:39 ID:??? AAS
933は一行目と二行目を書く間にトイレにでも行ったんだろうかね?
935(1): 02/11/03 10:54 ID:??? AAS
多重人格者でちょうど入れ替わったタイミングと見た
936: 02/11/03 11:46 ID:??? AAS
>>934-935
そうか?
俺は特に違和感なかったが。
937: 02/11/03 11:52 ID:??? AAS
933 の2行目は、931 の事を言ってるのでは?
話の流れから言ってそうとらえたほうが自然かと
938(2): 02/11/03 12:22 ID:??? AAS
ゲームプログラムというのは基本となる技術が浅いのでは。
それで、高度な部分は激しく機種依存で数年おきにリセットされる。
熟年のベテランより体力のある若者のほうが有利な業界。
939: 02/11/03 12:52 ID:??? AAS
ラッパーライブラリで全部吸収…しきれないんだよねぇこれが
940: 02/11/03 12:54 ID:??? AAS
> 933 :名前は開発中のものです。 :02/11/03 10:28 ID:???
> 933は一行目と二行目を書く間にトイレにでも行ったんだろうかね?
> 935 :名前は開発中のものです。 :02/11/03 10:54 ID:???
> 多重人格者でちょうど入れ替わったタイミングと見た
面白い。俺は違和感なかったが、そういう発想もあるのかと。
941: 02/11/03 14:02 ID:??? AAS
> ゲームプログラムというのは基本となる技術が浅いのでは。
SI と携帯電話業界には言われたくない…。
942: 02/11/03 14:36 ID:??? AAS
931-935の解説キボン
943(1): 02/11/03 15:01 ID:??? AAS
>>938
> ゲームプログラムというのは基本となる技術が浅いのでは。
その「基本となる技術」とは具体的にどういうものを指しますか?
> それで、高度な部分は激しく機種依存で数年おきにリセットされる。
ゲームコンソールに関して言えば、メーカ提供のライブラリが
ある程度吸収してくれていると思いますが
> 熟年のベテランより体力のある若者のほうが有利な業界。
省4
944: 02/11/03 15:28 ID:??? AAS
この手の話題は抽象的でいい加減な話ばかりで何の意味の無い
知ったかの横行で痛いだけ
語る前にデータを出せ、出せなきゃ語るな
だろうだろうでまともな話になるわけ無いだろう
945: 02/11/03 16:13 ID:??? AAS
>>943
> ゲームコンソールに関して言えば、メーカ提供のライブラリが
> ある程度吸収してくれていると思いますが
世の中そういう方向に進んでるとは思うけど、目下の最大勢力 PlayStation 2
に限って言うと、メーカ提供のライブラリはきわめて低レベル(ハード寄り)
で「メーカ提供のライブラリがある程度吸収」してくれません。
特に PlayStation 2 のアーキテクチャは特異で、VPU 用のアセンブラと DMA
省8
946(1): 02/11/03 17:34 ID:??? AAS
なんというか、特定ハード、特定環境でしかツカエネー奴って
本当に存在するのか謎だよ。
ここ数年でもめぐるましく環境変わってるよね。
947: 02/11/03 18:42 ID:??? AAS
>>946
ある程度のライブラリが整備されている PlayStation から参入したメーカー
が、PlayStation 2 時代になって
ライブラリはねーわ
開発コスト(特にグラフィック関係)はかさむわ
で撤退に追い込まれたという話は、何度か聞いた。せいぜい、その程度だろう。
948: 02/11/03 18:51 ID:??? AAS
瞬間最大風速だけのハードで付加機能が全然なく
出来たものはジャギーだらけのブツブツゲーム
どのハードとは言わないけれど
949(2): 02/11/03 19:16 ID:??? AAS
ゲームの価値基準って「面白いかどうか」だから、技術力が高い
だけでは評価されるとは限らない。しかも売れるものと売れない
ものの格差が激しい。技術者としては遠慮したい業種。
950: 02/11/03 19:23 ID:??? AAS
>>949
そういうモチベの低い人は業界的にも願い下げです
せいぜいご自身の業界でがんばっていて下さい
951: 02/11/03 19:48 ID:??? AAS
>>949
そりゃゲーム業界に限らん。携帯電話業界だって FOMA は普及していないでしょ?
ただし、技術力があれば表現の幅や可能性が広がる。
952: 02/11/03 22:52 ID:??? AAS
FOMA が普及しないのは、技術力があるかどうか以前の問題だと思うが……
953(1): 02/11/04 00:04 ID:??? AAS
FOMAが売れないのは宇多田ヒカルが結婚したせい
954: 02/11/04 05:19 ID:??? AAS
>>953
そうに決まってる。
トオモワナ ヤッテケナヒ...
955: 02/11/04 08:08 ID:??? AAS
FOMAがヒットしなかったのは名前が悪い。
MONAにしろ。
上下前次1-新書関写板覧索設栞歴
あと 31 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.024s