[過去ログ]
ゲームプログラミング相談室 (986レス)
ゲームプログラミング相談室 http://game.5ch.net/test/read.cgi/gamedev/1005040025/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
837: 名前は開発中のものです。 [sage] 02/10/29 01:19 ID:??? >>828 一番いいのは、袋小路にならないマップを作ることですが。 そうもいかない、というなのなら、下の図みたいにマップを 大きなブロック(エリア)に分けてやるとか。 (いつかこの板で公開された進路探索方法) A1 A2 A3 ___ ____ / \ ■ |B2 |○ B1 \_/ B3 C1 C2 C3 B1 → C1 → C2 → C3 → B3 http://game.5ch.net/test/read.cgi/gamedev/1005040025/837
838: 837 [sage] 02/10/29 01:21 ID:??? うわー、直したはずが大きくずれた。 すまん。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/838
839: 名前は開発中のものです。 [sage] 02/10/29 02:19 ID:??? >>821 1:現在位置から目的地までの直線を引く 2:その直線が障害物と交差していたら交差した点から 移動できる方向へ直線を引いてみる(左右どちらにも行けるならどちらも) 3:枝分かれした線分はできるかぎり目的地へ向かうように折り曲げていく 4:現在の走査位置と目的地とを結ぶ直線が 走査線の角度と同じになったら1へ戻る N:先に目的地にたどり着いた方が正解ルート 折れ曲がった位置と角度を配列に保存しておけば それをトレースするだけ 計算中も枝分かれする直前までの移動をしていけば 迷路にでも迷い込まない限りそれほど時間はかからない http://game.5ch.net/test/read.cgi/gamedev/1005040025/839
840: 名前は開発中のものです。 [sage] 02/10/29 02:20 ID:??? 図解するとこう ____________ /_,,. \-─●目的地 ☆-─''''''''│~ │ ↑\__/ 交差点 ____________ /_,,. \-─●目的地 ☆-─'''''''|.│~ │ iヽ\__/ : \ できるだけ目的地の方向へ : \→ ____________ /_,,. \-─●目的地 ☆-─'''''''|.│~ │ / iヽ\__/ / : \__/ http://game.5ch.net/test/read.cgi/gamedev/1005040025/840
841: 名前は開発中のものです。 [sage] 02/10/29 06:41 ID:??? >820 解放したポインタにNULL代入するのは作法でしょう。 どうしてもめんどうなら、ちょっと気持ち悪いけど free_something (void **p) { free(*p); *p=NULL; } func() { free_something(&p); //p=NULL } でいいのでは。 というか、そういうところで面倒くさがる人はC++を使うべきでは。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/841
842: 名前は開発中のものです。 [sage] 02/10/29 07:51 ID:??? なんでややこしい方へ向かうかなぁ… _______■=キャラ ○=クリックした場所 / \ ■| |○ \_/ A ひっかかりそうなところにはポインタを作っておく。 ■から○へ行く時、間にポインタがあれば まずそこへ向かうようにする。 ■ | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| | A | | | |________| ○ ポインタの捜索範囲はキャラ→クリック間の長方形。 以上! http://game.5ch.net/test/read.cgi/gamedev/1005040025/842
843: 821 [sage] 02/10/29 07:52 ID:??? ttp://isweb43.infoseek.co.jp/art/yn515/game2.gif 例えば、こういう場面でカーソルのあるところをクリックすると 池の周りを遠回りして歩いていきます。 ですが、このゲームのすごいところはカクカクした動きじゃなくて ちゃんと池の形にぴったり沿って歩いていくということです。 もしよろしければ、実際にやってみていただけませんでしょうか? 見たほうが早いと思いますので… isweb43.infoseek.co.jp/art/yn515/kyran.zip pc9801です。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/843
844: 名前は開発中のものです。 [sage] 02/10/29 09:31 ID:??? 障害物のまわりにガイドラインのような情報をもたせて、 それに沿って移動するようにすれば? http://game.5ch.net/test/read.cgi/gamedev/1005040025/844
845: 名前は開発中のものです。 [sage] 02/10/29 11:30 ID:??? 今まで考えもしなかった方法がいろいろ出てくるんでおもろい。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/845
846: 名前は開発中のものです。 [sage] 02/10/29 12:45 ID:??? ________ |\_______\ | │ ___________ | | │|タマちゃん失踪?|│ | │| ,,,,,,,, ,,,,,,,,,、 |│ | │l (゚∀゚) ,jj゚ー゚jjj |│ | │|l´ lyl`l l´ : `i |│ | │` ̄ ̄ ̄ ̄ ̄ ̄ | │ | l ̄ ̄ ̄:l: ̄ ̄ ̄l | \| l___:l:___l |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ __________ ||\ \ ||\\ まずかったかな・・・ || \\ ────y──── \\ ____ ∧ ∧∧__\ ゚ 。 .゚ チャプ \||______ (゚ ≡;゚Д)_____|| ,. -‐/⌒ヽ ─- 、 チャプ || | ヽ. || (〜ミ(ω・` \〜 ,) || ヽ___) || | ` ー‐-ミU -─‐'´ | \ ヽ、..,,_ _,,.ノ  ̄ ̄ http://game.5ch.net/test/read.cgi/gamedev/1005040025/846
847: [sage] 02/10/29 13:09 ID:??? >>821 ttp://www.campus.ne.jp/~ishigami/CREATION/MAKING/index.html を読むと多少はイメージできるかも。 2次元配列でマップを管理しているのなら,再帰関数っていうのを使って 考えていくんだけど(うまく言ったときのうれしさといったら・・・), 他の方法で管理しているとなると,上で書いているような方法しかないかな。 2次元配列を用意して,障害物のある座標に1とか入れて,再帰関数を使えばいいとは思うけど。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/847
848: [sage] 02/10/29 13:10 ID:??? >>846 まずいと思う。 こっそりかえしてきな。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/848
849: 755 [sage] 02/10/29 13:58 ID:??? >>771 759さん、ありがd。 これをヒントにがんばってみます。 >>791 ターゲット&要件によっては両立できない場合もあるんでつよ。(つД`) http://game.5ch.net/test/read.cgi/gamedev/1005040025/849
850: 名前は開発中のものです。 [sage] 02/10/29 20:23 ID:??? >>823 "A star algorithm" で再検索。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/850
851: 名前は開発中のものです。 [sage] 02/10/29 20:32 ID:??? ttp://www.geocities.com/jheyesjones/astar.html http://game.5ch.net/test/read.cgi/gamedev/1005040025/851
852: 名前は開発中のものです。 [sage] 02/10/29 20:44 ID:??? >>841 > 解放したポインタにNULL代入するのは作法でしょう。 気休めに過ぎない作法なんか、やめとけよ……。 だいたい複数のポインタが同一の領域を指している環境では、そんな手は 使えないし。 > どうしてもめんどうなら その程度の「手間」で済むのは free_something() なんてオモチャみたいな コードだから。現実に面倒なデータ構造を操作するコードだと、そんな単純 にはいかんよ。 特にデータ構造が複雑な場合には、そのデータを辿るのがクリティカルパス になるケースが多い(逆にクリティカルじゃなければ、そんな頑張って面倒 なデータ構造をメンテナンスなんかしないで、単純配列を全部検索、とかで 済ませられる)。 そこで「すべての要素に pointer の pointer を持たせて、二回 dereference しましょう」ってのはかなり厳しいよ。 > というか、そういうところで面倒くさがる人はC++を使うべきでは。 全部 boost::shared_ptr にするとか? それは性能上の問題に加えて、解放の タイミングを計るのが難しくなる(解放したつもりが、余計なところで shared_ptr が一つ生きてた、とか)という問題がある。 もちろん「ここで最後の筈」ってことで assert() 入れてチェックすることはでき るんだが、assert() に引っかかったときに じゃあ、いったいどこで参照が残ってるんだ? っつーのは、やっぱり探すのが大変だよ。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/852
853: 名前は開発中のものです。 [sage] 02/10/30 00:06 ID:??? >>852 >そこで「すべての要素に pointer の pointer を持たせて、二回 dereference >しましょう」ってのはかなり厳しいよ。 PalmOSの開発環境では、ヒープメモリを確保するときにポインタのポインタしかくれない (OS側でガベコレするため)のだけど、それでもなんとかなっているのは興味深い。 ポインタのポインタで生きていくための知恵が、Palm界では蓄積されてるのかもね。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/853
854: 名前は開発中のものです。 [sage] 02/10/30 00:13 ID:??? >>853 それはコンパクションしたいからだろう。Win16 のグローバルヒープとか、昔の MacOS とかもお仲間。 まっとーな MMU が使えない環境でもメモリの断片化が防げる代わりに、デ バッグと処理速度に悪影響が出る。智恵というか、血と汗が蓄積されてると 思われ。 (俺も Win16 時代には泣いた覚えが) http://game.5ch.net/test/read.cgi/gamedev/1005040025/854
855: 名前は開発中のものです。 [sage] 02/10/30 00:33 ID:??? >852 俺の場合、free後NULL代入してないだけで怒られたもんだが……。 二重ポインタっても、C言語に参照がないから代用してるだけだ。 参照で実装してもいいかもね。値渡しでfreeする関数に渡した つもりのfree後のポインタが実は参照渡しで暗黙でNULLに 書き換わっていたとして、なんら問題あるまい? むしろ、解放後のポインタにアクセスするという潜在的バグをつぶせる。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/855
856: 名前は開発中のものです。 [sage] 02/10/30 00:49 ID:??? >>855 > 参照で実装してもいいかもね C++ の参照のことを言ってるなら、初期化のタイミングの制約がキツいから、 完全にポインタの代用にはならんよ。 ポインタの実体を一つにして、常にポインタのポインタを使え主義が破綻す るのは、「そのポインタの実体を解放してしまったら、やっぱり不正なメモリ アクセスが検出できない」っつートコロなんだよな。そのための細工を積み 重ねると、結局 GC 実装した方が確実って話になる。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/856
857: 名前は開発中のものです。 [sage] 02/10/30 01:01 ID:??? >856 いや、freeに一個ラッパーを掛けて、そこへ渡すポインタを 参照渡しにして関数内でNULLを代入しようってだけのことね。 実際はメモリをマネジメントするクラスなり関数郡なり作って GCをそこで実装したほうがいい、っていうのにはもちろん同意。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/857
858: 名前は開発中のものです。 [sage] 02/10/30 01:49 ID:??? >>857 > いや、freeに一個ラッパーを掛けて、そこへ渡すポインタを > 参照渡しにして関数内でNULLを代入しようってだけのことね。 それでは不正なメモリアクセスの問題は解決しないんだけど。実例が 想像つかない? http://game.5ch.net/test/read.cgi/gamedev/1005040025/858
859: 名前は開発中のものです。 [sage] 02/10/30 02:18 ID:??? >858 もともと不正なメモリアクセスは別問題。それは単にバグ。 >818を読む限り、単に解放済みポインタとそうでないポインタで 条件分けしたくないだけなら、NULLを代入すればいい。 NULLは解放済みを示すマークで、free(NULL)が素通りという 仕様はそのためにある。 ループのある枝分かれリストみたいのを解放するケースを 考えてるんだろうけど、そこまで来ると各ノードを直接freeで 解放しにいくのは無理でしょう。削除マーク付けといて、 後でGCで一括解放するしかない。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/859
860: 名前は開発中のものです。 [sage] 02/10/30 07:39 ID:??? 正直、メモリ管理は人間がやるべき仕事ではないような気がしますた。 生産性低くなる原因の一端。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/860
861: 名前は開発中のものです。 [sage] 02/10/30 08:46 ID:??? しかし明示的に開放する機能が無いとメモリが無駄になり、下手すると 足りなくなる罠。メモリ確保の機能がある限り人間が管理するしかない。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/861
862: 名前は開発中のものです。 [sage] 02/10/30 09:22 ID:??? 2重開放はエラー出たりしてすぐ発見できるからあまり問題にならない ような気がする。メモリリークは表面化しにくいから厄介なバグになるが。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/862
863: 846 [sage] 02/10/30 12:54 ID:??? 素通り・・・ http://game.5ch.net/test/read.cgi/gamedev/1005040025/863
864: 名前は開発中のものです。 [sage] 02/10/30 20:43 ID:??? >>862 > 2重開放はエラー出たりしてすぐ発見できるからあまり問題にならない そうでもない。 メモリ関係の問題はどれもそうなんだが、問題が出たときと原因が遙か彼方に 隔たってることが多い (二重 free なら一回目の free はどこで行ったんだ?) から、原因を突き止めるのは大変だよ。特に微妙な条件でのみ発生するとか、 マルチスレッドや DMA が絡むと死ねる。 >>859 818 はそもそも「free() しなくても良いやん」つー例のような気がする。その メモリ領域をプロセス内で再利用するなら free すべきだけど、コンパイラ の型システムの情報なんかは、 コンパイルが終わった時点でプロセス終了させるから、ちまちま free せずに 投げ捨てろ っつー情報だよな。 そこで労力をかけて free() したところで、 1. コンパイラのプロセスが終了するのを遅らせる 2. キャッシュを汚す 3. あまつさえ二重 free() なんてバグを埋め込んで SIGSEGV を食らった日には、 ただのバカ だろう。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/864
865: 名前は開発中のものです。 [sage] 02/10/31 00:04 ID:??? >864 一回目のfreeは、無効なデータを解放するつもりでやってるんだろ? それを問題が起こらないようにとただ消してしまうのは、 無効なデータへの不正なアクセスを隠してしまうだけだと思うが。 NULLポインタで明示的エラーを出させたほうが、安全。 落ちないバグの原因探すほうがよっぽどやっかいだろう。 こまめな解放はいらないとしても、一応プロセスの最後には明示的に 解放してやるべきだと思うが。 VC++だと、メモリリークが大量に警告されてうっとおしくない? http://game.5ch.net/test/read.cgi/gamedev/1005040025/865
866: 名前は開発中のものです。 [sage] 02/10/31 00:17 ID:??? boost::shared_ptrとSTLのコンテナを使えばいいのに... http://game.5ch.net/test/read.cgi/gamedev/1005040025/866
867: 名前は開発中のものです。 [sage] 02/10/31 09:37 ID:??? C#を使え http://game.5ch.net/test/read.cgi/gamedev/1005040025/867
868: 名前は開発中のものです。 [sage] 02/10/31 16:06 ID:??? ません http://game.5ch.net/test/read.cgi/gamedev/1005040025/868
869: 名前は開発中のものです。 [sage] 02/10/31 18:22 ID:??? か? http://game.5ch.net/test/read.cgi/gamedev/1005040025/869
870: 名前は開発中のものです。 [sage] 02/10/31 19:45 ID:??? チョトマテ! ココハ、 ゲームプログラミング相談室 デツヨ! http://game.5ch.net/test/read.cgi/gamedev/1005040025/870
871: 名前は開発中のものです。 [sage] 02/10/31 20:02 ID:??? >>865 状況によるだろう。アセンブラのラベル情報とか 864 が言ってるようなコンパイラ の型情報とかは、free したところで直後にプロセスが終了するのが目に見えてる ので、free せずに終わらせるのもアリだ。 そこで free しても単なる自己満足。ユーザにとっては、むしろ邪魔なだけ。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/871
872: 名前は開発中のものです。 [sage] 02/11/01 00:07 ID:??? >871 ちょいまち、ユーザの「邪魔」って、具体的にはなんのことだ? ユーザには関係ない、というのなら分かるんだが。 あとでメンテナンスする人のこと考えたらメモリリークつぶすくらいは 常識だと思うがな。大量の警告メッセージに埋もれて、つぶすべき メモリリークが見えにくくなる。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/872
873: 名前は開発中のものです。 [sage] 02/11/01 00:32 ID:??? >>872 > ちょいまち、ユーザの「邪魔」って、具体的にはなんのことだ? キャッシュを汚すわ、終了に(本来不要なはずの)余計な時間を食うわ、 開発コストは上がるわ。 > あとでメンテナンスする人のこと考えたらメモリリークつぶすくらいは > 常識だと思うがな。 プロセスの寿命とデータの寿命が一致してる場合にはメモリリークとは言わん だろ。メモリリークというのはその名の通り「漏れ」であって、使えないメモリ領 域が増えることを指すわけで。 > 大量の警告メッセージに埋もれて _CrtSetDbgFlag() なんかが実装してる「終了時に free してないメモリ領域の 一覧を表示する」機能のこと? あれはそれなりに便利だが、万能じゃない。 (っつか BoundsCheker 使え) http://game.5ch.net/test/read.cgi/gamedev/1005040025/873
874: 名前は開発中のものです。 [sage] 02/11/01 00:44 ID:??? >873 OSに暗黙的に解放してもらったって時間は掛かるだろ。 開発コストったって、ただメモリ確保に一枚ラッパーかませて 最悪の場合でも終了処理で明示的に解放されるように作るだけだろ。 その「万能じゃない」機能をさらに使いにくくしてどうするのだ。 俺は引き継いだソースがメモリリーク放置していたら、 ちょっとウンザリするがな。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/874
875: 名前は開発中のものです。 [] 02/11/01 00:54 ID:26Va0gRH この流れに便乗して質問させてください。 VC++でシューティングゲームを作っているのですが、敵や弾をたくさん表示させては 消すために、メモリをnew、deleteしまくっているのです。 ところが、実行しているとすぐに重くなってしまいます。 メモリリークに関しては、デバッグモードで _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF) を呼び出して確認したのですが、一つもありませんでした。 これって、ちゃんと解放していても、メモリの確保が原因で重くなることってあるのですか? ちなみに、表示させたオブジェクト(newしたインスタンス)の数に比例して 重くなっていくことは確認しました。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/875
876: 名前は開発中のものです。 [sage] 02/11/01 01:02 ID:??? >>875 > 表示させたオブジェクト(newしたインスタンス)の数に比例して それって、ふつうに処理量が増えてるんじゃないの? http://game.5ch.net/test/read.cgi/gamedev/1005040025/876
877: 名前は開発中のものです。 [sage] 02/11/01 01:23 ID:??? >>875 敵や弾の画面表示だけしない場合も重くなるか? http://game.5ch.net/test/read.cgi/gamedev/1005040025/877
878: 名前は開発中のものです。 [sage] 02/11/01 01:24 ID:??? > OSに暗黙的に解放してもらったって時間は掛かるだろ。 いわゆるunixあるいはwin32ならばかかりまへん http://game.5ch.net/test/read.cgi/gamedev/1005040025/878
879: 名前は開発中のものです。 [sage] 02/11/01 01:28 ID:??? >>876 いえ、そういうのではありません。 キューに、敵だの弾だの詰め込んで、敵をやっつけ(deleteし)ます。 その後しばらく敵を出さなければ、キューがちゃんと空になっていることも 確認しました。 そして、その後また同じように敵を出して…と繰り返すと、だんだん重くなっていくのです。 プログラムを終了したときなんか、数秒フリーズしたように止まります。 >>877 画面表示をしないでやってみましたが、変わりませんでした。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/879
880: 名前は開発中のものです。 [sage] 02/11/01 01:34 ID:??? >>875 たぶんソース見ないと原因は分からない。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/880
881: 名前は開発中のものです。 [sage] 02/11/01 01:39 ID:??? >873はVBかJavaでもやってろってこった(藁 http://game.5ch.net/test/read.cgi/gamedev/1005040025/881
882: 名前は開発中のものです。 [sage] 02/11/01 01:39 ID:??? >>879 HDDにスワップしているから遅くなっているとかそういうのは? http://game.5ch.net/test/read.cgi/gamedev/1005040025/882
883: 名前は開発中のものです。 [sage] 02/11/01 01:44 ID:??? メモリを解放しているから、メモリが足りなくなることはない →スワップはしない。 って考えるのは間違ってますか? スワップしてる気配はないのですが… http://game.5ch.net/test/read.cgi/gamedev/1005040025/883
884: 名前は開発中のものです。 [sage] 02/11/01 01:47 ID:??? >>879 1個1個new/deleteせずに、最初に一定数一括確保して使い回すように してみて、軽くなるようならnew/deleteで重くなっていると見る。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/884
885: 名前は開発中のものです。 [sage] 02/11/01 01:53 ID:??? >>875 profilingしてみりゃいいだけじゃん? http://game.5ch.net/test/read.cgi/gamedev/1005040025/885
886: 名前は開発中のものです。 [sage] 02/11/01 01:53 ID:??? ありがとうございました。わかりました、やってみます。 ところで、new/deleteで重くなるとしたら、どうしてなんでしょう。 deleteする瞬間に重くなるなら分かるけど、後々にも響くってのは 理解できませんよね。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/886
887: 名前は開発中のものです。 [sage] 02/11/01 02:02 ID:??? あまりにも頻繁に確保・開放を繰り返すと、それを管理する ほうも大変なんじゃないの。確保・開放を繰り返すと割り当てた メモリが断片化するよね。そんな状態で効率よく領域を割り当てる ようにするにはどうすればいいんだろうね。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/887
888: 名前は開発中のものです。 [sage] 02/11/01 02:03 ID:??? >>874 > OSに暗黙的に解放してもらったって時間は掛かるだろ。 free() のソースを読んで、どういう処理をしているのか調べてみ。OS の 方の処理とはまた別に、いろいろやってるから。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/888
889: 名前は開発中のものです。 [sage] 02/11/01 02:07 ID:??? >>887 仮想記憶を採用している環境なら、気にしないのが正解だと思う。スワップは 喰うかもしれんが、実メモリの断片化はページングにお任せってことで。 仮想記憶がない環境だと、最初にメモリのレイアウトを決めてしまって、固定 長のメモリブロックを割りあてるのが常套手段。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/889
890: 名前は開発中のものです。 [sage] 02/11/01 02:17 ID:??? >888 それが問題になるほど大きな処理なのか? もしそうなのだとしたら、最初にどんとメモリ取って、 それを小分けにして使って、最後にどんと解放したら いいじゃないか。だったら一回で済む。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/890
891: 名前は開発中のものです。 [sage] 02/11/01 02:34 ID:??? >>890 そこまでして、わざわざヒープの解放に拘る意味があるのか? だいたい使ったメモリ全部解放しろっつーなら、スタックやテキスト はどうするんだか。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/891
892: 名前は開発中のものです。 [sage] 02/11/01 02:38 ID:??? そこまでって言うほどの手間じゃねえだろ、と言っている。 最後にしか解放しないと割り切れば、簡単に実装できるだろ。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/892
893: 名前は開発中のものです。 [sage] 02/11/01 02:42 ID:??? >>892 そんな丼勘定な実装に何の意味があるんだ? だいたい最初からサイズが 見積れるなら static でとれば良いだけだし。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/893
894: 名前は開発中のものです。 [sage] 02/11/01 03:20 ID:??? メモリリークをつぶせるという意味がある。警告メッセージ潰し。 サイズ見積もれなんていってないじゃないか。 allocに一枚ラッパーかぶせて、ポインタを全部記録しておいて、 終了時に順にfreeするだけ。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/894
895: 名前は開発中のものです。 [sage] 02/11/01 03:35 ID:??? ダイナミックに確保するならちゃんと開放しないとダメだよ。 メモリを再確保するたびに使用メモリ量が積もっていく。 ゲームの場合はメインの処理がループなので、たいしたことないと思っていても、 処理によっては1秒60回でメモリリークされたりしてちょっとまずいことになる。 開放しないメモリを確保するくらいなら初めからスタティックに確保した方がいい。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/895
896: 名前は開発中のものです。 [sage] 02/11/01 05:41 ID:??? >894はループの中で確保するのを前提にした話ではないよ。 どうしても解放するのが面倒くさい場合の最後の手段で言ってるだけ。 シューティングゲームのバッファなんかはstaticでいい気が。 数の上限は知れてるし、容量もたいしたことないでしょう。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/896
897: 名前は開発中のものです。 [sage] 02/11/01 09:10 ID:??? .NETのガベージコレクタを使え http://game.5ch.net/test/read.cgi/gamedev/1005040025/897
898: 名前は開発中のものです。 [sage] 02/11/01 09:22 ID:??? boost::pool ダ! (ウソ http://game.5ch.net/test/read.cgi/gamedev/1005040025/898
899: 名前は開発中のものです。 [sage] 02/11/01 09:55 ID:??? メモリ開放しないプログラムはそのまま再利用できないからクソ。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/899
900: 名前は開発中のものです。 [sage] 02/11/01 14:36 ID:??? >>899 スレの内容を全く読んでいない馬鹿発見! http://game.5ch.net/test/read.cgi/gamedev/1005040025/900
901: 名前は開発中のものです。 [sage] 02/11/01 16:44 ID:??? メモリ開放しないやつは開発者の姿勢としてクソ。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/901
902: 名前は開発中のものです。 [sage] 02/11/01 19:58 ID:??? boost::poolって早いの? http://game.5ch.net/test/read.cgi/gamedev/1005040025/902
903: 名前は開発中のものです。 [sage] 02/11/01 20:41 ID:??? >>902 そんな抽象的すぎる質問にどうやって答えろと(藁 http://game.5ch.net/test/read.cgi/gamedev/1005040025/903
904: 名前は開発中のものです。 [sage] 02/11/01 21:08 ID:??? 突然ですみませんが当たり判定のアルゴリズムでOBBについて解説してある日本のサイトなどはないでしょうか? http://game.5ch.net/test/read.cgi/gamedev/1005040025/904
905: 名前は開発中のものです。 [sage] 02/11/01 21:49 ID:??? メモリ開発しないやつは解放者の姿勢としてクソ。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/905
906: 名前は開発中のものです。 [sage] 02/11/01 23:22 ID:??? >>904 日本のサイトは知らん。 海外ならいっぱいあるけど。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/906
907: 名前は開発中のものです。 [sage] 02/11/01 23:58 ID:??? >>900 まんざらそうでもない。 javacなんかがそれで一時期ハマってたらしい。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/907
908: 名前は開発中のものです。 [sage] 02/11/02 00:24 ID:??? >906 すみませんが、できたらそのサイトをおしえていただけないでしょうか?申し訳ないです。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/908
909: 名前は開発中のものです。 [sage] 02/11/02 00:29 ID:??? >>908 最近の厨房様は検索と言う言葉をご存知ないらしい。 http://www.google.com/search?num=50&q=OBB+collision http://game.5ch.net/test/read.cgi/gamedev/1005040025/909
910: 名前は開発中のものです。 [sage] 02/11/02 00:46 ID:??? 日本語のサイトは皆無だよな・・・ http://game.5ch.net/test/read.cgi/gamedev/1005040025/910
911: 名前は開発中のものです。 [sage] 02/11/02 01:01 ID:??? >909 すみません、すみません。(´Д`;) http://game.5ch.net/test/read.cgi/gamedev/1005040025/911
912: 名前は開発中のものです。 [sage] 02/11/02 02:32 ID:??? >>902 開発は、早くなり増田。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/912
913: 名前は開発中のものです。 [sage] 02/11/02 15:33 ID:??? >>899 本当に、そのプログラムは再利用されるのか? 汎用性は諸刃の剣だぞ。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/913
914: 名前は開発中のものです。 [sage] 02/11/02 16:06 ID:??? >>913 まあ、C/C++に限って言えば再利用なんて、ほとんど幻想に過ぎないんだが、 ここは希望的観測の意味も込めて、「安易な手法での再利用は諸刃の刃だぞ」にしとこうや。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/914
915: 名前は開発中のものです。 [sage] 02/11/02 16:19 ID:??? んでも、普段からメモリを解放するクセをつけておかないと思わぬところで…ってこともあるかもね。 GCがサポートされてる言語なら別として。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/915
916: 名前は開発中のものです。 [sage] 02/11/02 16:23 ID:??? ・処理速度至上主義 ・プログラムコードは基本的に使い捨て ・激しく機種依存するプログラムばかり組む ゲームプログラマは特に価値観が偏っているから常識は通用しないよ。 偏りすぎていて他のジャンルでは通用しない気もするけど。 http://game.5ch.net/test/read.cgi/gamedev/1005040025/916
917: ゲーム業界の真相 [sage] 02/11/02 16:45 ID:??? 再利用ができない ↓ 生産性が上がらない ↓ 労働者が沢山必要 ↓ 1人あたりの賃金が安くなる ↓ 貧乏 http://game.5ch.net/test/read.cgi/gamedev/1005040025/917
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 69 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.016s