[過去ログ] ゲームプログラミング相談室【Part5】 (970レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
415
(22): 03/11/15 16:51 ID:JXJsuPxy(1/5) AAS
議論白熱中のところお邪魔します

この度アクション系ゲームを作ろうと思い立ちました
これまではボード系ゲームのリアルタイム性の少ないプログラムしかしたことのないため
複数のキャラが同時に動いて判定をする、そんな仕組みの作り方に戸惑いを覚えています

そこで質問なのですが、開発環境の関係からこのプログラムにC言語を使っています
メモリ管理が不十分な動作環境なのでに動的なメモリの確保、開放を行うと
意図しない領域へのメモリアクセスが起こりハングする可能性を考えて
省5
418
(1): 03/11/15 18:51 ID:ptxA9sKP(1/4) AAS
>>415
ぜひJavaで
>意図しない領域へのメモリアクセスが起こりハングする
プログラムを書いてみてください。
提出期限はおとといということでお願いします。
419
(1): 415 03/11/15 19:30 ID:JXJsuPxy(2/5) AAS
>416
説明が不十分でしたね
動的なメモリの確保を行うと使用しているメモリ総量、位置が確実に算出できないため
実装していないメモリ領域への確保が起こりハングアップするということです

>417
たとえC++であってもNew演算子等動的なメモリ確保命令を使用しないのであれば
C言語で十分ではないかとおもいC言語を使用することにしました
省9
421: 415 03/11/15 19:57 ID:JXJsuPxy(3/5) AAS
>420

>メモリ管理が不十分な動作環境なのでに動的なメモリの確保、開放を行うと
これでは説明不足でしたか^^;
424: 415 03/11/15 20:04 ID:JXJsuPxy(4/5) AAS
>>422
質問の回答に必要な情報とは思えなかったので
特に明記しませんでした

OSというものは存在しません
あるらしいのですが使うつもりはありません
ハードウエアはかなり昔に生産中止となったドリームキャストです
426: 415 03/11/15 20:36 ID:JXJsuPxy(5/5) AAS
>425
質問に答えれば回答が得られるのでしょうか?

コンパイラはフリーのgccのSH4クロスコンパイラを使っています
ミドルウエアと呼べるようなものはありません
機器の制御関係はすべて自分で作ることになります
433: 415 03/11/16 02:57 ID:2l7gzWNA(1/12) AAS
>428
>Javaゼンゼン分かってない
>C++もゼンゼン分かってない
プログラムを専門に勉強したことがないため
十分に理解してるとは言えないので何か思い違いをしているのでしょうか?
どの部分がどのような理解不足をしているのか勉強のためにお教えください

>429
省9
434
(2): 415 03/11/16 02:58 ID:2l7gzWNA(2/12) AAS
続き

少し前に同じような質問をプログラム板でもしたのですが
「メモリ管理機構を自前で作れ」という答えで終わってしまいました

数年前流行っていた時期に作ってみたときには用意するオブジェクト数が少なく
完璧とはいえませんが、何とかプログラマ側で管理しきれていました。
しかし、今回の企画にあわせてオブジェクトの数を増やしていくにしたがって
「どの状況下でどの程度の量がどの部分に配置されて使用されるのか」
省9
440
(1): 415 03/11/16 12:57 ID:2l7gzWNA(3/12) AAS
>>435
コンパイラを書き換えるという表現はよくなかったですね^^;
gccをつかっているとオープンソースであることの利点でコンパイラやライブラリ
今回の場合だとLibcあたりを簡単に書き換えれるのでオーバーライドするよりも
直接書き換えるほうが面倒がすく問題点がわかり易いので、そんな風に考えていました

>436
その最適なメモリ管理の方法を教えてもらいたかったのです
省15
441
(1): 415 03/11/16 13:05 ID:2l7gzWNA(4/12) AAS
>435
JAVAもインタプリタ、コンパイラ、JavaVMがそのCPUに対応していないと
動かないと思うのですが、それとも自分の知らない別のJAVA言語があるのでしょうか?

C++とC言語の根本的な違いはクラスオブジェクトを使用するオブジェクト指向型言語に
進化していると言うことだと理解していたのですが?

それとも、オブジェクト指向型言語はオブジェクト自身の完成度が高ければ
用意したオブジェクトを動的に追加,開放することで
省4
442
(1): 03/11/16 14:13 ID:DmkNbY6h(1/8) AAS
>>415
自分で作ったメモリの動的確保なの?違うでしょ?
それなのに、そのメモリの動的確保がおかしいなんて言ってるのが房っぽい。

そもそもドリキャスで使える前提の物なのかな?
PS2だってee-gccって専用のコンパイラがあるのに、まさか普通のgcc使って
ドリキャスで上手く行かないって騒いでるの?

その開発が正規の手続きで不正な方法を使用してないならSEGAに相談すれば良いだろ。
省1
446
(1): 415 03/11/16 15:02 ID:2l7gzWNA(5/12) AAS
>442
使用しているCPUが汎用のSH4ですのでsh4のgccノクロスコンパイラを使用しています
node,メモリ確保の方法malloc等はそのまま使えるもの(言語付属のもの?)を使っています
不正かどうかはまだはっきりしていませんが、正規の手続きでないので
SEGAに相談のはもってのほか、開発環境を明らかにするのもためらいます
もちろん、趣味でやってるだけなので仕事なわけではありません

>443
省15
449: 415 03/11/16 15:27 ID:2l7gzWNA(6/12) AAS
すこし、話題がズレてきてしまっているので
もう一度整理しなおして質問しようと思います

OS等によってメモリ領域が管理されていない
かなり特殊な動作環境でのプログラムをしています

そのためメモリの確保、開放については
プログラム側で常に注意しないといけないと思っています
特にコード的には確保できる領域も実際には
省6
450: 415 03/11/16 15:27 ID:2l7gzWNA(7/12) AAS
現在考えている企画はシューティングゲームのような
同時制御するキャラの多いプログラムです
各キャラを一つのオブジェクトとして構築したため
多種多なオブジェクトを量産する必要がでてしまいました

このときオブジェクトの生成によって確保された動的メモリの
状況把握が十分できない為コンパイル時には問題がなさそうでも
実際動かしてみるとメモリ状況によって動作しない事があります
省6
452
(1): 415 03/11/16 15:29 ID:2l7gzWNA(8/12) AAS
>447
すみません、なぜ重要なのかが判りません
「一度溢れるまで」にはどのような意味が含まれているのでしょうか?
453
(1): 03/11/16 15:56 ID:DmkNbY6h(3/8) AAS
>>415
話を聞いてると、その症状自体が疑わしい。
その動的メモリ確保はシステムコールなのか?
OS無いって言ってが、その状況で

>確保された動的メモリの 状況把握が十分できない

で、どうやって動的メモリ確保してるの?
環境は全部把握出来てるのか?
省1
458
(1): 415 03/11/16 17:05 ID:2l7gzWNA(9/12) AAS
議論が「メモリ確保が失敗するわけがない」というその一点に絞られているようですが
どうやら、OSの無い状況下でのプログラムというのが
理解してもらえないようですね^^;
携帯電話、炊飯器などの組み込み機器などようなイメージで捕らえて貰えると
わかりやすいかと思います

>453
OSが存在しないのでメモリを確保するのにAPI等は使用しません
省19
459: 415 03/11/16 17:15 ID:2l7gzWNA(10/12) AAS
>457
まったくおっしゃる通りでこのまま作成するのは無理のある状況だと思います
しかし、無理を承知でなんとかこじつけながら作成していこうと考えています

プログラム自身が単純でメモリの残量についてあまり考慮しなくていい場合は
難しいメモリアロケートの心配などせずに、まさに適当に勝手に確保することで
それなりのモノが作れました

が、それでは上手くいかない事態に陥ったので、みなさんの知恵をかりにきた次第です
省1
460
(1): 03/11/16 17:16 ID:DmkNbY6h(5/8) AAS
>>415
ああ、君のレベルが理解出来たよ。
システムコールって分る?
>自分で勝手に確保して勝手に開放します
それがバグと言うか、決定的な間違い。

じぁ、メモリが実アドレス以外を確保するのは
”自分のバグじゃん”
省1
464: 415 03/11/16 17:53 ID:2l7gzWNA(11/12) AAS
>460
あまりレベルの高い話でなくてすみません
「システムコール」は
MS-DOSでいうシステムコール
WindowsシリーズでいうWin16、Win32API
もっとローレベルでいうならBIOSコールのことだと推察したのですが?
違っていたのでしょうか?
省14
465
(1): 03/11/16 18:02 ID:DmkNbY6h(7/8) AAS
>>415
OSが無いのにライブラリのmallocを使ってるのがありえない。

>まったく同じ疑問をもっています
>この環境においての動的なメモリ確保については完全に信頼できないと考えています
完全に自分に責任がある部分でこの発言では
君には無理だからプログラムを辞めなよ。趣味だろうがねってしか言えない。
468: 03/11/16 18:15 ID:shoK9bJg(1/3) AAS
>>415
やっと具体的な環境が出てきたね。
↓で聞いたほうが早いかもしれない。最近は止まってるから見てる人がいるのか分からんが。

そして僕はもういちど夢をみる[DCPrograming]
2chスレ:gamedev

newlibのmallocに問題があるって聞いたこと無いけど、本当なの?
469
(1): 415 03/11/16 18:18 ID:2l7gzWNA(12/12) AAS
>465
mallocの実装自身にOSは関係ないと思います
mallocの性能には関係するとおもいますが
一番単純な実装は指定された量確保してポインタをずらすだけですから
大雑把にいって今つかっているmallocのコードはそうなっています

「ありえない、出来ない、出来るようにしろ」の議論ばかりで
「問題を回避するためにどう工夫したらよいのか?」については意見がもらえないようですね
省3
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.030s