[過去ログ]
ゲームプログラミング相談室【Part5】 (970レス)
ゲームプログラミング相談室【Part5】 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
433: 415 [sage] 03/11/16 02:57 ID:2l7gzWNA >428 >Javaゼンゼン分かってない >C++もゼンゼン分かってない プログラムを専門に勉強したことがないため 十分に理解してるとは言えないので何か思い違いをしているのでしょうか? どの部分がどのような理解不足をしているのか勉強のためにお教えください >429 >432 new、mallocをオーバーライドするって考えは思いつきませんでした 確保したメモリアドレスを随時監視して未実装メモリの場合 エラーとして返すようにすればいいのですね ちょっと考えてみます >430 簡単にいえばそうなのですが いつもはOSやコンパイラのメモリ管理に頼り切ってるので オブジェクトに必要なメモリ量、その配置が実際どうなってるのか知らないのです http://echo.5ch.net/test/read.cgi/gamedev/1036410116/433
434: 415 [sage] 03/11/16 02:58 ID:2l7gzWNA 続き 少し前に同じような質問をプログラム板でもしたのですが 「メモリ管理機構を自前で作れ」という答えで終わってしまいました 数年前流行っていた時期に作ってみたときには用意するオブジェクト数が少なく 完璧とはいえませんが、何とかプログラマ側で管理しきれていました。 しかし、今回の企画にあわせてオブジェクトの数を増やしていくにしたがって 「どの状況下でどの程度の量がどの部分に配置されて使用されるのか」 が、把握できなくなってしまいました そこで、ゲーム系プログラムならこのような多数のオブジェクトを使用する例が多いため 自分の知らない「ちょっとしたテクニック」であえて動的にオブジェクトを量産しなくても 静的、もしくは準静的な確保によって乗り越えることができるのでは? はたまたオブジェクトを量産することなく動作させる方法があるのでは? と思い質問してみた次第です やはり根本的にコンパイラ自身を書き換えて問題のないメモリ確保の方法を確立する といった考え方のほうがスマートだという意見ばかりですので こちらの方向で考えてみようと思います http://echo.5ch.net/test/read.cgi/gamedev/1036410116/434
435: 名前は開発中のものです。 [sage] 03/11/16 03:35 ID:4zFB3hit > どの部分がどのような理解不足をしているのか勉強のためにお教えください とりあえず、Javaの動作原理、CとC++の思想的な違い、あとは自分で調べろよ。 > やはり根本的にコンパイラ自身を書き換えて問題のないメモリ確保の方法を確立する > といった考え方のほうがスマートだという意見ばかりですので だれもコンパイラを書き換えるなんていってないだろ。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/435
436: 名前は開発中のものです。 [sage] 03/11/16 09:49 ID:sJV9ESEo >>434 >自分の知らない「ちょっとしたテクニック」であえて動的にオブジェクトを量産しなくても >静的、もしくは準静的な確保によって乗り越えることができるのでは? >はたまたオブジェクトを量産することなく動作させる方法があるのでは? >と思い質問してみた次第です そんなものは無い(きっぱり)。 普通のプログラミングでも行うように、そのソフトに最適なメモリ管理を行うだけ。 んで、「最適なメモリ管理」はどういうソフトなのかに強く依存するので一概には言えない。 以上。終わり。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/436
437: 名前は開発中のものです。 [sage] 03/11/16 09:59 ID:X2F6x4IR >>434 あんまり時代とズレてて浦島太郎と話してるみたいな気にさせるね。 結論から言うとそんな部分に力を入れる意味はまったくないね。 くだらないこと考えるのやめてさっさと組めよ。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/437
438: 名前は開発中のものです。 [sage] 03/11/16 10:24 ID:HDZlRlF4 >>414 遅レスすみません。 >・ボタン押下イベント発生したら一定時間待って >・その間に発生したイベントがあるかチェックして、あるなら読み出して >・最終的に押されたボタンの組み合わせのアプリを起動する どこを安定とするのかが微妙なんです。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/438
439: 名前は開発中のものです。 [sage] 03/11/16 10:36 ID:sJV9ESEo 安定とは? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/439
440: 415 [sage] 03/11/16 12:57 ID:2l7gzWNA >>435 コンパイラを書き換えるという表現はよくなかったですね^^; gccをつかっているとオープンソースであることの利点でコンパイラやライブラリ 今回の場合だとLibcあたりを簡単に書き換えれるのでオーバーライドするよりも 直接書き換えるほうが面倒がすく問題点がわかり易いので、そんな風に考えていました >436 その最適なメモリ管理の方法を教えてもらいたかったのです どういうソフトか?はオブジェクトをメモリ一杯まで量産するようなタイプって事なのですが >437 たしかに今のOSとCPUとコンパイラに守られてかつメモリが豊富にある 現在の開発環境の状況からみれば、動的なメモリ管理自身をを疑って あえて静的な方法を取ろうとする事は、時代に逆行しているような意見かもしれません しかし、必要なオブジェクトを作成しようとして正常に動作せず その原因がメモリが足りず実装外のアドレスに確保している などということがあるため この部分が解決されないとメモリ不足で動かないのか それともバグで動かないのか把握できません すくなくとも最低限の規則を作らないとダメなのではないでしょうか? もっと簡単に質問するならば みなさんは動的なメモリ確保で問題がでたとき たとえばNew演算子を使った場合にエラーがでたとき どのように対処しているのでしょうか? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/440
441: 415 [sage] 03/11/16 13:05 ID:2l7gzWNA >435 JAVAもインタプリタ、コンパイラ、JavaVMがそのCPUに対応していないと 動かないと思うのですが、それとも自分の知らない別のJAVA言語があるのでしょうか? C++とC言語の根本的な違いはクラスオブジェクトを使用するオブジェクト指向型言語に 進化していると言うことだと理解していたのですが? それとも、オブジェクト指向型言語はオブジェクト自身の完成度が高ければ 用意したオブジェクトを動的に追加,開放することで コードの簡易化、開発効率の向上が見込めるが 生成されるオブジェクトにとって十分なメモリ領域が必要である といった認識がまちがっているのでしょうか? こちらはスレ違いなので・・・スルーしてもらってもよいです http://echo.5ch.net/test/read.cgi/gamedev/1036410116/441
442: 名前は開発中のものです。 [sage] 03/11/16 14:13 ID:DmkNbY6h >>415 自分で作ったメモリの動的確保なの?違うでしょ? それなのに、そのメモリの動的確保がおかしいなんて言ってるのが房っぽい。 そもそもドリキャスで使える前提の物なのかな? PS2だってee-gccって専用のコンパイラがあるのに、まさか普通のgcc使って ドリキャスで上手く行かないって騒いでるの? その開発が正規の手続きで不正な方法を使用してないならSEGAに相談すれば良いだろ。 仕事なら当然だろ。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/442
443: 437 [sage] 03/11/16 14:28 ID:X2F6x4IR >>440 >しかし、必要なオブジェクトを作成しようとして正常に動作せず >その原因がメモリが足りず実装外のアドレスに確保している >などということがあるため >この部分が解決されないとメモリ不足で動かないのか >それともバグで動かないのか把握できません なにこれ?どうして全然関係ない問題を絡めて考えてるの? この状態でどうしてメモリ管理なんて自分でやろうというきになるのか全く理解できない。 冷静に考えてみて、こんなことがごちゃまぜになってること自体が問題でしょ。 だいたい一度溢れるまでロードしないとオブジェクトが正しくロードできてるか どうかもわからないプログラムってどうよ? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/443
444: 名前は開発中のものです。 [sage] 03/11/16 14:39 ID:DmkNbY6h >この度アクション系ゲームを作ろうと思い立ちました >これまではボード系ゲームのリアルタイム性の少ないプログラムしかしたことのないため >複数のキャラが同時に動いて判定をする、そんな仕組みの作り方に戸惑いを覚えています この時点で、その辺のゲー専の生徒レベル。 環境の所為にしてるが 大方、自分の頭の中で壮大な考え違いや 全然間違ってる可能性が高いと考えるのが普通。 いるだろ?コンパイラのバグだ、標準関数のバグだってスグ騒ぐ奴がさ… http://echo.5ch.net/test/read.cgi/gamedev/1036410116/444
445: 名前は開発中のものです。 [sage] 03/11/16 14:40 ID:h1Fvxjvv >>441 お前は >可能ならJavaでの開発をしたいのですが >使用したいCPU用のクロスコンパイラが手に入らないのと と言ってる。必要なのはクロスコンパイラじゃなく、その環境用のJavaVMだ。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/445
446: 415 [sage] 03/11/16 15:02 ID:2l7gzWNA >442 使用しているCPUが汎用のSH4ですのでsh4のgccノクロスコンパイラを使用しています node,メモリ確保の方法malloc等はそのまま使えるもの(言語付属のもの?)を使っています 不正かどうかはまだはっきりしていませんが、正規の手続きでないので SEGAに相談のはもってのほか、開発環境を明らかにするのもためらいます もちろん、趣味でやってるだけなので仕事なわけではありません >443 全然関係ない問題といわれる意味がわかりません みなさんのメモリ管理の意識はどうなっているのでしょう? OSによってメモリ領域が保護されている場合ならともかく >ロードしないとオブジェクトが正しくロードできてるか どうかもわからない は普通に起こりえる事態だと思うのですが、なにが間違ってるのでしょうか? >444 べつに環境のせいやコンパイラのバグで騒いでいるわけではありません 問題がでるので別の回避方法を模索しているだけです 問題なく動くのであれば理論が判らなくて言語がなんでも気にしません >445 専門に勉強していないので表現が正しくなく混乱を招くのは申し訳ないです クロスコンパイラが必要というはその動作環境で動くように動作設定することと 大雑把に括って表現しました JavaでいうのであればもちろんそのCPU用のJavaVMが必要なので ということです http://echo.5ch.net/test/read.cgi/gamedev/1036410116/446
447: 名前は開発中のものです。 [] 03/11/16 15:15 ID:X2F6x4IR >>446 変な部分だけピックアップするね。 >ロードしないとオブジェクトが正しくロードできてるかどうかもわからない じゃなくて、 俺は >>一度溢れるまでロードしないとオブジェクトが正しくロードできてるか >>どうかもわからないプログラムってどうよ? って言ったんだけどどうよ? はじめの部分重要だよ。変な風に曲げないでよ。 全然意味が違っちゃってて笑っちゃったよ。 ヘルプ正しく読めてるかどうかも不安になるでしょ。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/447
448: 名前は開発中のものです。 [sage] 03/11/16 15:22 ID:25ri5rSm まったくスレの流れを見ずに言ってみるけど メモリの状態なんてコアダンプを吐いて読めばいいだけじゃないの? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/448
449: 415 [sage] 03/11/16 15:27 ID:2l7gzWNA すこし、話題がズレてきてしまっているので もう一度整理しなおして質問しようと思います OS等によってメモリ領域が管理されていない かなり特殊な動作環境でのプログラムをしています そのためメモリの確保、開放については プログラム側で常に注意しないといけないと思っています 特にコード的には確保できる領域も実際には 実装されていない事も考慮にいれないといけません 静的なメモリ確保方法ではコンパイル時に確保位置が把握できるため 問題をみつけることが簡単です しかし、動的なメモリ確保では変動するメモリ状況にあわせて 確保位置,量が変化するためプログラム側で逐次チェックするのが難しいです つづく http://echo.5ch.net/test/read.cgi/gamedev/1036410116/449
450: 415 [sage] 03/11/16 15:27 ID:2l7gzWNA 現在考えている企画はシューティングゲームのような 同時制御するキャラの多いプログラムです 各キャラを一つのオブジェクトとして構築したため 多種多なオブジェクトを量産する必要がでてしまいました このときオブジェクトの生成によって確保された動的メモリの 状況把握が十分できない為コンパイル時には問題がなさそうでも 実際動かしてみるとメモリ状況によって動作しない事があります このような場合、問題なく動かすためには どのような仕組みを最低限用意しないといけないのでしょう? 現状では動的メモリの確保時に成功、失敗にかかわらずエラーは起きませんが エラーであることを示すように改良することが可能かもしれません が、できればその仕組みを作らなくても良い方法を教えていただきたいです 使用してるコンパイラはgccのSH4用クロスコンパイラです http://echo.5ch.net/test/read.cgi/gamedev/1036410116/450
451: 名前は開発中のものです。 [sage] 03/11/16 15:28 ID:M0Hd8bDl Q. 動的に確保したいメモリの量が不確定なので有限なメモリ上では 足りない場合があります。どうすればいいでしょうか? A. 確保したい量を確定しなさい こういう話じゃねーの? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/451
452: 415 [sage] 03/11/16 15:29 ID:2l7gzWNA >447 すみません、なぜ重要なのかが判りません 「一度溢れるまで」にはどのような意味が含まれているのでしょうか? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/452
453: 名前は開発中のものです。 [sage] 03/11/16 15:56 ID:DmkNbY6h >>415 話を聞いてると、その症状自体が疑わしい。 その動的メモリ確保はシステムコールなのか? OS無いって言ってが、その状況で >確保された動的メモリの 状況把握が十分できない で、どうやって動的メモリ確保してるの? 環境は全部把握出来てるのか? 自分のバグで動かないのを、メモリの所為にしてるとしか感じられん。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/453
454: 447 [] 03/11/16 15:58 ID:X2F6x4IR >>452 じゃあ、逆に聞くけど >しかし、必要なオブジェクトを作成しようとして正常に動作せず >その原因がメモリが足りず実装外のアドレスに確保している >などということがあるため >この部分が解決されないとメモリ不足で動かないのか >それともバグで動かないのか把握できません どうして ・メモリが足りない問題 と ・オブジェクトが正常に動作しない問題 がわからなくなるのかわからない。 メモリに余裕がある状態で単一のオブジェクトの動作をチェックできる環境はないの? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/454
455: 名前は開発中のものです。 [sage] 03/11/16 16:00 ID:czdrL/Nj その前にオブジェクト指向言語と動的メモリの確保に、何の関係があるのか説明が欲しい。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/455
456: 名前は開発中のものです。 [sage] 03/11/16 16:04 ID:X2F6x4IR >>455 その辺突っ込んだら傷つくだろ・・・。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/456
457: 名前は開発中のものです。 [sage] 03/11/16 16:11 ID:DmkNbY6h 言ってる事がめちゃくちゃで頓珍漢なんだよな。 ”OSなしで既存の動的確保がバグる”ってしか取れないんだけど。 では、その動的確保はその状況下で使用する前提の物なのか? そもそも、OSないならヒープもスタックも自分で管理、構築する以外に無いと思うんだけど。 人が用意してないら。 メモリマップとハードのメモリ使用の仕様は知ってるのか? 根本的にOS無いのに作る事自体が間違ってるレベルだと思う。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/457
458: 415 [sage] 03/11/16 17:05 ID:2l7gzWNA 議論が「メモリ確保が失敗するわけがない」というその一点に絞られているようですが どうやら、OSの無い状況下でのプログラムというのが 理解してもらえないようですね^^; 携帯電話、炊飯器などの組み込み機器などようなイメージで捕らえて貰えると わかりやすいかと思います >453 OSが存在しないのでメモリを確保するのにAPI等は使用しません 自由にメモリを使える反面、エラーが起きているのかも判断できません 自分で勝手に確保して勝手に開放します 正確にはmallocを定義しているLibcのコードにしたがって確保開放を行います >454 オブジェクトはコードとデータの集合体という理解は間違ってないですよね? 「オブジェクトを量産する」という表現に誤解があるようですね これは同じインスタンスのコピーを作るということです 一つ目のオブジェクトは仮にロードすることが出来たとしましょう 一つだけなら問題なく動作することが確認できます 次に、このオブジェクトを量産することにします このオブジェクトに含まれるコード部分は共有できますが 含まれるデータについてはその独立性を保たないといけないので共有できません そこでオブジェクトを量産するためには、追加されたオブジェクト用に 逐次動的にメモリを確保していくことになると思います しかし今回の環境のような場合動的なメモリを確保できなかった場合に 成功したのか失敗したのかがわかりません とりあえず確保成功したことにして動作を開始しますが 実は不確定なエリアのメモリを確保していたりすると正常に動作しません 専門用語についての知識が薄く表現が曖昧で申し訳ありません http://echo.5ch.net/test/read.cgi/gamedev/1036410116/458
459: 415 [sage] 03/11/16 17:15 ID:2l7gzWNA >457 まったくおっしゃる通りでこのまま作成するのは無理のある状況だと思います しかし、無理を承知でなんとかこじつけながら作成していこうと考えています プログラム自身が単純でメモリの残量についてあまり考慮しなくていい場合は 難しいメモリアロケートの心配などせずに、まさに適当に勝手に確保することで それなりのモノが作れました が、それでは上手くいかない事態に陥ったので、みなさんの知恵をかりにきた次第です メモリとハードの仕様は不完全ながらも、使える程度には理解しているつもりです http://echo.5ch.net/test/read.cgi/gamedev/1036410116/459
460: 名前は開発中のものです。 [sage] 03/11/16 17:16 ID:DmkNbY6h >>415 ああ、君のレベルが理解出来たよ。 システムコールって分る? >自分で勝手に確保して勝手に開放します それがバグと言うか、決定的な間違い。 じぁ、メモリが実アドレス以外を確保するのは ”自分のバグじゃん” そのバグ直せよ。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/460
461: 名前は開発中のものです。 [sage] 03/11/16 17:31 ID:UylUiHD8 一般的なプラットフォームの場合、mallocだって最終的には、メモリ確保のAPIなりシステムコールなりを呼び出すと思うんだが、ということは、そのAPIやらシステムコールが無効なアドレスを返してくるってこと? それとも、mallocがAPIもシステムコールも使ってないのなら、どういう基準で確保可能領域を割り当てるんだろうか? メモリ確保可能な領域を知っているコードはどこかに在るの? もし、存在しなくて、手元にメモリマップの資料も無いならどうしようもないと思うんだけど。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/461
462: 名前は開発中のものです。 [] 03/11/16 17:37 ID:sJV9ESEo みんな良くこんな電波君に長々付き合ってるな… 暇なのか? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/462
463: 名前は開発中のものです。 [sage] 03/11/16 17:52 ID:DmkNbY6h 今まで自分がどんなに頓珍漢な事言ってたか、 バカな実装してたか、アホな考えだったか、 を画面に向かって恥じてれば、まだ遅くはないレベルかと… http://echo.5ch.net/test/read.cgi/gamedev/1036410116/463
464: 415 [sage] 03/11/16 17:53 ID:2l7gzWNA >460 あまりレベルの高い話でなくてすみません 「システムコール」は MS-DOSでいうシステムコール WindowsシリーズでいうWin16、Win32API もっとローレベルでいうならBIOSコールのことだと推察したのですが? 違っていたのでしょうか? OSが存在せずメモリ確保のためにシステム側から用意された関数が無い場合 自分でメモリを確保しないといけないと思います そのメモリ確保方式に問題があり、異常の原因となることは理解しているのですが そのための良い解決方法が見つからないので相談にきました >461 メモリ確保の方法についてはgccのmallocをそのまま使用しているので gccのNewlib内のlibcのなかにmallocのコードがあるのでソレを参考にしてください メモリマップ自身は不完全ながら資料としてあるので 「ほんとに使えない領域なのか」は判りませんが「問題なく使える領域」は判ります 「どういう基準で確保可能領域を割り当てるんだろうか?」 まったく同じ疑問をもっています この環境においての動的なメモリ確保については完全に信頼できないと考えています そこで動的なメモリ確保をすることなく、オブジェクトを量産したいのです 一番初めの投稿の形にもどってしまいましが^^; http://echo.5ch.net/test/read.cgi/gamedev/1036410116/464
465: 名前は開発中のものです。 [sage] 03/11/16 18:02 ID:DmkNbY6h >>415 OSが無いのにライブラリのmallocを使ってるのがありえない。 >まったく同じ疑問をもっています >この環境においての動的なメモリ確保については完全に信頼できないと考えています 完全に自分に責任がある部分でこの発言では 君には無理だからプログラムを辞めなよ。趣味だろうがねってしか言えない。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/465
466: 名前は開発中のものです。 [sage] 03/11/16 18:05 ID:9dhGVUv0 ていうか、組み込み系の得意な人に聞いた方がいいんじゃねぇか? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/466
467: 名前は開発中のものです。 [sage] 03/11/16 18:11 ID:czdrL/Nj >>458 >そこでオブジェクトを量産するためには、追加されたオブジェクト用に >逐次動的にメモリを確保していくことになると思います C++なら必要とされる最大量を静的に確保すればいいだけの話。 クラスだろうが構造体だろうが、データの置き方に変わりはない。 オブジェクト指向とは何の関係もない。 それでオブジェクト指向言語と動的メモリの確保に、何の関係があるのか説明はまだなの? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/467
468: 名前は開発中のものです。 [sage] 03/11/16 18:15 ID:shoK9bJg >>415 やっと具体的な環境が出てきたね。 ↓で聞いたほうが早いかもしれない。最近は止まってるから見てる人がいるのか分からんが。 そして僕はもういちど夢をみる[DCPrograming] http://pc2.2ch.net/test/read.cgi/gamedev/1014389313/ newlibのmallocに問題があるって聞いたこと無いけど、本当なの? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/468
469: 415 [sage] 03/11/16 18:18 ID:2l7gzWNA >465 mallocの実装自身にOSは関係ないと思います mallocの性能には関係するとおもいますが 一番単純な実装は指定された量確保してポインタをずらすだけですから 大雑把にいって今つかっているmallocのコードはそうなっています 「ありえない、出来ない、出来るようにしろ」の議論ばかりで 「問題を回避するためにどう工夫したらよいのか?」については意見がもらえないようですね どうも、OSのない環境でのプログラムについての議論はここでは出来ないようなので どこか別のスレッドを探して質問してみることにします お騒がせしました http://echo.5ch.net/test/read.cgi/gamedev/1036410116/469
470: 名前は開発中のものです。 [sage] 03/11/16 18:23 ID:shoK9bJg だいたい、OSは、KOSを使ってるんじゃないの? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/470
471: 名前は開発中のものです。 [sage] 03/11/16 18:25 ID:shoK9bJg >>469 >一番単純な実装は指定された量確保してポインタをずらすだけですから ええと、じゃ、newlib環境では、どうやって「確保」してるの? それが分かってれば、確保してはいけないところまで確保してしまうことは避けられるでしょ? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/471
472: 名前は開発中のものです。 [sage] 03/11/16 18:27 ID:DmkNbY6h >mallocの実装自身にOSは関係ないと思います システムコールのbrk()を使ってるだろ。 >「問題を回避するためにどう工夫したらよいのか?」については意見がもらえないようですね だからさ、間違った前提の上の解決を求めるな、根本的な間違いを直せって理解出来ない? …この先、一生出来ないと思うよ。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/472
473: 名前は開発中のものです。 [sage] 03/11/17 00:12 ID:Q76r5V+r なにはともあれ、去ってくれてよかったよかった。 なんで、あんなに偉そうなんだろうねぇ? まぁ、自分の質問が理解できないのはこのスレの奴らがレベル低いからだ、とか思ってるんだろうな… じっさいには、まったくその逆なんだけどね。 もしかして「いや、ですから」とか書きたかったのかな?w http://echo.5ch.net/test/read.cgi/gamedev/1036410116/473
474: 名前は開発中のものです。 [sage] 03/11/17 00:35 ID:d6iGidgw 駄目な奴ほどプライドだけはなぜか高い。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/474
475: 名前は開発中のものです。 [sage] 03/11/17 00:51 ID:YWpMo6q6 プライドチキンってやつだな。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/475
476: 名前は開発中のものです。 [sage] 03/11/17 10:21 ID:afp8msI9 (⌒\ ノノノノ \ヽ( ゚∋゚) (m ⌒\ ノ / / ( ∧ ∧ ミヘ丿 ∩∀`;) (ヽ_ノゝ475ノ http://echo.5ch.net/test/read.cgi/gamedev/1036410116/476
477: 名前は開発中のものです。 [] 03/11/17 10:55 ID:Dih7ip87 まったく、議論になってないな 少なくとも相談に答えてやれよ メモリ環境は対応プラットフォームによって違うんだから そんなこと議論しててもしょうがないだろ? Q,動的メモリ確保をなるべく使用せずにクラスを構築するコツを教えてください A,なら、クラス宣言において使用する変数の量を減らしなさい 大容量のメモリが必要な場合はクラスの外側に変数おいて 自分で管理するようにしなさい Q,インスタンスをコピーしすぎてメモリ不足になったときの対処方法について教えてください A,各インスタンスに優先度をつけてメモリが足りなくなったら優先度のやつから開放できる 仕組みを考えなさい 組み込み機器のプログラムしたことあれば、こんなの即答でおわりじゃねーか http://echo.5ch.net/test/read.cgi/gamedev/1036410116/477
478: 名前は開発中のものです。 [sage] 03/11/17 11:35 ID:MkS3owz3 >>477 エスパー? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/478
479: 名前は開発中のものです。 [sage] 03/11/17 12:32 ID:Q76r5V+r >>477 というか、(同じ答えではないが)そう答えてるだろ? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/479
480: 名前は開発中のものです。 [sage] 03/11/17 13:33 ID:ChG5qnJg 句点がないあたり、本人じゃないかとエスパーしてみる。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/480
481: 名前は開発中のものです。 [んんんんん] 03/11/17 18:51 ID:nHrAdo0+ モンスターの行動ルーチンを作るにはずばりどんな関数を作成すればよいのでしょうか? 【例】FF3 魔王ザンデのケース ターン1 メテオ ターン2 ライブラ ターン3 ほのお ターン4 ライブラ ターン5 地震 ターン6 ライブラ ターン7 メテオ ・・・のループです。 鬼才たる能力を持つこのスレの皆様、どうかお力をお貸しください! http://echo.5ch.net/test/read.cgi/gamedev/1036410116/481
482: 名前は開発中のものです。 [sage] 03/11/17 19:04 ID:Q76r5V+r >>481 モンスターの行動ルーチン以外の部分はどうなってるの? それが分からないと答えようが無いと思うんだが… http://echo.5ch.net/test/read.cgi/gamedev/1036410116/482
483: 名前は開発中のものです。 [sage] 03/11/17 19:19 ID:BhEtARh7 >>481 if(ターン数%7 == 1) メテオ if(ターン数%7 == 2) ライブラ 以下略 ぐらいが簡単でいーんじゃない? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/483
484: 名前は開発中のものです。 [] 03/11/17 19:20 ID:0/Zp/7+M ターン1 メテオ ターン2 ライブラ ターン3 ほのお ターン4 ライブラ ターン5 地震 ターン6 ライブラ ターン7 メテオ ・・・のループです。 それだけなら配列で管理する http://echo.5ch.net/test/read.cgi/gamedev/1036410116/484
485: 名前は開発中のものです。 [] 03/11/17 19:24 ID:VAoWFetB http://jbbs.shitaraba.com/music/6029/yasuko.html http://echo.5ch.net/test/read.cgi/gamedev/1036410116/485
486: 名前は開発中のものです。 [sage] 03/11/17 22:01 ID:YvKYoc+x >>477 あのさ、よく基地外の言ってる事を読みなよ。 >大容量のメモリが必要な場合はクラスの外側に変数おいて >自分で管理するようにしなさい OSがないので自分で管理しなくてはいけないが その管理が全く信用出来ないので、その部分を触らずに違うところで回避したい。 >各インスタンスに優先度をつけてメモリが足りなくなったら優先度のやつから開放できる >仕組みを考えなさい OSないので、自分でgccのライブラリのmallocを仕様してるが それが信用ならないので、その部分以外を直す以外で良い方法を教えて。 こんな感じの内容を言ってるんだよ。 挙句、アンタとほぼ同じ内容のレスもあるのに 全然答えてくれない話に為らないから、もうこねーよって言ってるんだぞ。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/486
487: 名前は開発中のものです。 [sage] 03/11/17 23:10 ID:Q76r5V+r うまく話が読み取れないのはオレだけですか? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/487
488: 名前は開発中のものです。 [sage] 03/11/17 23:12 ID:cjWRDNX6 >OSがないので自分で管理しなくてはいけないが >その管理が全く信用出来ないので、その部分を触らずに違うところで回避したい。 「その」がかかっている部分が「自分で管理」なんだけど、 自分で管理すること自体が信用できなかったらどうにもならないと思うんだが。 >OSないので、自分でgccのライブラリのmallocを仕様してるが だから動的ではなく、静的に空の領域を大きくとって、それを割り当てればいいだけの話。 静的メモリまで信用できなければ、そもそも身動きがとれずプログラムなど組めないことになる。 それと基地外は結局、 >オブジェクト指向言語と動的メモリの確保に、何の関係があるのか説明 をしないで逃げた。 つまりメモリーの扱いについてまったく理解していないまま、 頓珍漢なことをわめき散らしているわけなんだが。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/488
489: 名前は開発中のものです。 [sage] 03/11/17 23:14 ID:lakADyEp 「銀の弾丸」だけを求めたがる奴っているんだよな。 そういう奴と話してもはっきり言って時間の無駄だから、さっさとメタな方向にもってって、 終わらせるのが吉。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/489
490: 名前は開発中のものです。 [sage] 03/11/18 14:56 ID:4PINorV9 //これで正解ですかね? #include <stdio.h> typedef struct {char flg; void (*func)(void);} FUNCAD;//コマンド一覧 typedef struct {int count; int size; int *cm;} CMPG; void func1(void); void func2(void); void func3(void); void func4(void); void zanteAT(FUNCAD*, CMPG*); FUNCAD fncAD[4] = {{'a',func4},{'b',func3},{'c',func2},{'d',func1}}; int cm[4] = {3, 2, 1, 0}; CMPG cmpg = {0, 4, cm};//コマンドプログラム main(){ int i; char c; printf(">コマンド入力(a,b,c,d)\n"); while(1){ c = getchar(); if('a'== c||'b'== c||'c'== c||'d' == c)break; else if(c=='\n'); else printf(">a,b,c,dのどれかでお願い\n"); } printf("\n(自ターン)\n"); for(i=0;i<4;i++)if(fncAD[i].flg == c)fncAD[i].func(); printf("\n>残手の攻撃\n"); printf("\n(1ターン)\n"); zanteAT(fncAD,&cmpg); printf("\n(2ターン)\n"); zanteAT(fncAD,&cmpg); printf("\n(3ターン)\n"); zanteAT(fncAD,&cmpg); printf("\n(4ターン)\n"); zanteAT(fncAD,&cmpg);//次の呼び出しでループする return 0; } void zanteAT(FUNCAD* hoge,CMPG *hogege){ hoge[hogege->cm[hogege->count]].func(); hogege->count++; if(hogege->count>=hogege->size)hogege->count = 0; } void func1(void){printf("メテオ\n");} void func2(void){printf("ポーション\n");} void func3(void){printf("目潰し\n");} void func4(void){printf("逃げる\n");} http://echo.5ch.net/test/read.cgi/gamedev/1036410116/490
491: 名前は開発中のものです。 [あああああああああ] 03/11/18 16:42 ID:NBkLb5fa >>490 大体あってると思ふ しかし何故目潰し? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/491
492: 名前は開発中のものです。 [sage] 03/11/18 17:44 ID:4PINorV9 「クチバシ」にしようかと悩みました http://echo.5ch.net/test/read.cgi/gamedev/1036410116/492
493: 名前は開発中のものです。 [sage] 03/11/18 20:04 ID:/VGdCARJ 死人にクチバシ http://echo.5ch.net/test/read.cgi/gamedev/1036410116/493
494: 名前は開発中のものです。 [sage] 03/11/19 16:21 ID:d58/2cg8 >>493 寒 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/494
495: 名前は開発中のものです。 [sage] 03/11/19 19:56 ID:PlTZ7QM3 まぁまぁ http://echo.5ch.net/test/read.cgi/gamedev/1036410116/495
496: 名前は開発中のものです。 [sage] 03/11/20 00:26 ID:hd1kSRtY 2chで他人が偉そうに見えるのは、自分の心が弱いからさ ムキになるほど自分の弱い心を隠したがってる ただ、強く・・・ http://echo.5ch.net/test/read.cgi/gamedev/1036410116/496
497: 名前は開発中のものです。 [sage] 03/11/20 21:39 ID:d3ck8ymk 最近新しいノートパソコンを買うことになったので 家に余っている【ThinkPad A20m】を3台(一台は汚れていますが・・ MDコンポ1台を無料で譲ります。欲しい方居ましたら貰ってやって下さい Googleから【副収入徹底攻略まにゅある】と検索してサイトまで訪れて下さい。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/497
498: 名前は開発中のものです。 [sage] 03/11/20 22:02 ID:FUhsK+NV あの手この手 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/498
499: 名前は開発中のものです。 [sage] 03/11/20 22:37 ID:Ye+SEMtz 新しいノートを買うのと、MDコンポを譲るのになんの関係があるんだろう。 それから無料で譲るという使い方はおかしい。 無料なら差し上げますとしなければならない。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/499
500: 名前は開発中のものです。 [] 03/11/21 15:24 ID:umwRRSHD 500Get! http://echo.5ch.net/test/read.cgi/gamedev/1036410116/500
501: 名前は開発中のものです。 [] 03/11/21 23:43 ID:pGOQg9QV 厨房の質問ですが、ゲームをJAVAで作るってどうなんですか? 重いですよね。C++のほうが絶対速いですよね。 ユーザーのほとんどはWindowsなわけだし、C++のほうがいいですよね http://echo.5ch.net/test/read.cgi/gamedev/1036410116/501
502: 名前は開発中のものです。 [sage] 03/11/21 23:52 ID:d5YxEAkF VisualC++6.0でDirect3Dを使ったゲームを作ってみたいと思い DirectX9 SDKをダウンロードしてインストールしたのですが VisualC++でDirect3D8のクラスや関数の引数などの入力候補の表示がされず 使いにくく困っています。 何が原因なんでしょうか? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/502
503: 名前は開発中のものです。 [sage] 03/11/22 00:30 ID:ohOBvK1O ヘルプ見りゃいいじゃん。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/503
504: 名前は開発中のものです。 [] 03/11/22 00:53 ID:LbsHJKcQ >>503 駄目だそんな状態じゃプログラム組めない。 >>502 プロジェクトにC:\DXSDK\Includeに入ってるファイル(DirectX8関係だけの方がいいか?)をすべて突っ込んで保存。 そのあとVCを終了する。 拡張子がdswのファイルと同じフォルダにある拡張子がncbのファイルを削除する。 ここでVCを起動する。 ビルドかけたあと、また、C:\DXSDK\Includeのファイルをプロジェクトからはずす。 って手順じゃ駄目かな(未確認)。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/504
505: 名前は開発中のものです。 [sage] 03/11/22 01:02 ID:ohOBvK1O 「組めない」のは重傷だな… http://echo.5ch.net/test/read.cgi/gamedev/1036410116/505
506: 名前は開発中のものです。 [] 03/11/22 11:49 ID:V+srHBX5 IrisFilterの特許とは? http://pc.2ch.net/test/read.cgi/cg/1069315936/ 「申請中」の特許をネタにフリーソフト作者に恫喝メールを送りまくるシェアウェア作者。 公開停止した人まで出たモヨリ。 お前らも暈しいれるときは絡まれないように気をつけろよ。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/506
507: 502 [sage] 03/11/22 18:26 ID:AYzmgC7c >>504 そのやり方で出来ました ありがとうございます。 やっぱりあるのとないのじゃかなり違いますね これからがんばってみます。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/507
508: 名前は開発中のものです。 [あああああああああ] 03/11/22 23:29 ID:6bfsxbS4 次のプログラムはどのように作ればよいのでしょうか? @あるキャラクターを作成する(変数名cha) Aある武器を作成する(変数名wep) Bキャラクターの攻撃力を初期化(初期値は20) C武器の攻撃力を初期化(初期値は12) Dキャラクターが武器を装備したら攻撃力が変化(20+12で32になる) 私はヘタレで作ることができません 頭の良い皆さんどうかお願いいたします あとこのプログラムはCかC++でお願いします http://echo.5ch.net/test/read.cgi/gamedev/1036410116/508
509: 名前は開発中のものです。 [] 03/11/22 23:48 ID:LbsHJKcQ >>508 まずゲーム作ることを一旦やめることをお勧めする。 基礎能力がまるで足りない。 この状態だと、今はおそらくどんなアドバイスをしても駄目だと思う。 C/C++の入門書をたくさん読むことが先だと思う。 (とにかく基本的なプログラムをたくさん写してみることが大事だと思う。) 「できなくてもやらなくちゃいけないんです」とかそういう状況なら もう、間違いなく逃げろ。どうせ何もできない。 人生レベルの長いスパンでみれば戦略的撤退よ。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/509
510: 名前は開発中のものです。 [sage] 03/11/23 00:04 ID:5ilOVNRf >>508 502 に禿同 でも一応。 @あるキャラクターを作成する(変数名cha) clase C_Cha { ...キャラの内容... }; C_Cha *cha; Aある武器を作成する(変数名wep) clase C_Wep { ...武器の内容... }; C_Wep *wap; Bキャラクターの攻撃力を初期化(初期値は20) cha = new C_Chr(20); C武器の攻撃力を初期化(初期値は12) wap = new C_Wap(12); Dキャラクターが武器を装備したら攻撃力が変化(20+12で32になる) int pow = cha->getPow(ken); 一例だが(chr、wepはポインタにしなくてもいいけど) http://echo.5ch.net/test/read.cgi/gamedev/1036410116/510
511: 名前は開発中のものです。 [sage] 03/11/23 00:05 ID:5ilOVNRf みす ×502 ○509 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/511
512: 名前は開発中のものです。 [sage] 03/11/23 00:10 ID:5ilOVNRf みすみす.... クソ ×int pow = cha->getPow(ken); ○int pow = cha->getPow(wap); http://echo.5ch.net/test/read.cgi/gamedev/1036410116/512
513: 名前は開発中のものです。 [sage] 03/11/23 00:21 ID:7lIkxGuJ class CHero{ int cha_id; // キャラのID int strength; // キャラの力 CWeapon* pWeapon; // 装備武器 void setAttack(const CWeapon* p){ pWeapon = p; } // 武器を装備する int getAttack() const{ return strength + pWeapon->attack; } // 攻撃力を返す }; class CWeapon{ int wep_id; // 武器のID int attack; // 武器の攻撃力 }; …いろいろ突っ込みどころ満載だけどこんな感じで。。。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/513
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 457 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.012s