現在、私は趣味でRPGを作成中ですが、音楽、画像、テキストデータなどを一度全てメモリに読み込むのは結構な容量になるので読み込んだり破棄したりを繰り返しております。
特に音楽ファイル(WAVE、MP3)などは容量が大きいです。
そのため、読み込みと破棄を繰り返すと間のロード時間が気になります。
しかし、どの程度をメモリに確保していて良いのかわかりません。
現在の一般的な環境から「これくらいのメモリ量ならば確保しても大丈夫だよ」というのは無いでしょうか?
完成したらネットで配布などを考えているので、このバランスを知りたいです。
ちなみに、現在はマップ切り替え毎に動的メモリ廃棄→次のマップの音楽、画像、村人の動きなどのための動的メモリ確保とファイルからの値の読み込みを行っております(^^;
メモリの可能使用量次第で数マップ分のメモリと値の保持をしようかと考えております。
ゲーム作成におけるメモリの使用量
Re:ゲーム作成におけるメモリの使用量
>>やっくんさん
[color=gray>> しかし、どの程度をメモリに確保していて良いのかわかりません。[/color]
メモリを取るか、ロード時間を取るか…だと私は考えております。
ですので、一概にこれくらいというのは言えないと思います。
移動の度に確保・破棄を行って、大した時間ではないのならそのままでもいいと思いますが、
メモリリークを起こさない用に注意が必要だと思います。
ただ、PCのスペックで遅い・早いが出るのは仕方がないと思うので
その辺りは低スペックなPCで動作させてみるなどして調整してみるのもいいかもしれません。
[color=gray>> そのため、読み込みと破棄を繰り返すと間のロード時間が気になります。 [/color]
使わないデータも読み込んでしまうのでメモリは使用してしまいますが、
プレイ中にロードするのであれば最初に一回ロードしておいた方が
プログラム的にも解りやすいと思いますし、メモリリークの心配も少しは無くなり、
長い時間プレイする方がいればよりスムーズにプレイできるのではないでしょうか。
個人的には最初に全て読み込むか、ロードに時間が掛かるものを最初に読み込んでおく方法が好きです。
開発中に、これはどうにかしないと駄目だと感じた時は分割して読み込む方法を取ってます。
[color=gray>> しかし、どの程度をメモリに確保していて良いのかわかりません。[/color]
メモリを取るか、ロード時間を取るか…だと私は考えております。
ですので、一概にこれくらいというのは言えないと思います。
移動の度に確保・破棄を行って、大した時間ではないのならそのままでもいいと思いますが、
メモリリークを起こさない用に注意が必要だと思います。
ただ、PCのスペックで遅い・早いが出るのは仕方がないと思うので
その辺りは低スペックなPCで動作させてみるなどして調整してみるのもいいかもしれません。
[color=gray>> そのため、読み込みと破棄を繰り返すと間のロード時間が気になります。 [/color]
使わないデータも読み込んでしまうのでメモリは使用してしまいますが、
プレイ中にロードするのであれば最初に一回ロードしておいた方が
プログラム的にも解りやすいと思いますし、メモリリークの心配も少しは無くなり、
長い時間プレイする方がいればよりスムーズにプレイできるのではないでしょうか。
個人的には最初に全て読み込むか、ロードに時間が掛かるものを最初に読み込んでおく方法が好きです。
開発中に、これはどうにかしないと駄目だと感じた時は分割して読み込む方法を取ってます。
Re:ゲーム作成におけるメモリの使用量
一度に全部読み込むとどれぐらい消費するのですか?
またロード時間はどれぐらい掛かってしまうのですか?
私はメモリは100MBぐらい、ロード時間は5秒ぐらいまでなら許せます。
またロード時間はどれぐらい掛かってしまうのですか?
私はメモリは100MBぐらい、ロード時間は5秒ぐらいまでなら許せます。
Re:ゲーム作成におけるメモリの使用量
DVDMさん、助言ありがとうございます。
>メモリリークを起こさない用に注意が必要だと思います。
これが確かに一番怖いですね。
C++を用いているので、デストラクタで一応全て開放するようには心掛けてはいますが・・・。
>ただ、PCのスペックで遅い・早いが出るのは仕方がないと思うので
>その辺りは低スペックなPCで動作させてみるなどして調整してみるのもいいかもしれません。
低スペックPCも持ち合わせているので、現在の手法を試したところロード時間に気になりませんでした。
今の所、BGM(MP3)のロード時間に若干時間が掛かっていたので、マップの切り替え後も同じBGM使う場合はBGMを続けて使うというようにしたら間のロード時間もほぼわからなくなりました。
シエルさん、返信ありがとうございます。
>一度に全部読み込むとどれぐらい消費するのですか?
まだ、現在BGM、画像などが基盤を作るためくらいの量しか使ってないので、どれくらい使うか完全に見積もれて無いですが、100MBは超えるかと思います。(現在50MB超えている)
>またロード時間はどれぐらい掛かってしまうのですか?
現在の市販のゲームほどロード時間は無いのですが、一旦マップ切り替えで1~2秒程?止まっていたので気になっていたところです。上に記したように「マップ切り替え時にその先が同じBGMならば読み替えない」と変えただけで処理時間が変わったので気にならなくはなりました。
>私はメモリは100MBぐらい、ロード時間は5秒ぐらいまでなら許せます。
参考になりますm(__)m
マップは今の手法を用いて戦闘に使用するデータ(BGM,敵データ,エフェクト画像,エフェクトデータ)だけを先に全読み込みさせようかと検討中です。
>メモリリークを起こさない用に注意が必要だと思います。
これが確かに一番怖いですね。
C++を用いているので、デストラクタで一応全て開放するようには心掛けてはいますが・・・。
>ただ、PCのスペックで遅い・早いが出るのは仕方がないと思うので
>その辺りは低スペックなPCで動作させてみるなどして調整してみるのもいいかもしれません。
低スペックPCも持ち合わせているので、現在の手法を試したところロード時間に気になりませんでした。
今の所、BGM(MP3)のロード時間に若干時間が掛かっていたので、マップの切り替え後も同じBGM使う場合はBGMを続けて使うというようにしたら間のロード時間もほぼわからなくなりました。
シエルさん、返信ありがとうございます。
>一度に全部読み込むとどれぐらい消費するのですか?
まだ、現在BGM、画像などが基盤を作るためくらいの量しか使ってないので、どれくらい使うか完全に見積もれて無いですが、100MBは超えるかと思います。(現在50MB超えている)
>またロード時間はどれぐらい掛かってしまうのですか?
現在の市販のゲームほどロード時間は無いのですが、一旦マップ切り替えで1~2秒程?止まっていたので気になっていたところです。上に記したように「マップ切り替え時にその先が同じBGMならば読み替えない」と変えただけで処理時間が変わったので気にならなくはなりました。
>私はメモリは100MBぐらい、ロード時間は5秒ぐらいまでなら許せます。
参考になりますm(__)m
マップは今の手法を用いて戦闘に使用するデータ(BGM,敵データ,エフェクト画像,エフェクトデータ)だけを先に全読み込みさせようかと検討中です。
Re:ゲーム作成におけるメモリの使用量
一応、今の所は解決したので、データを追加して行った際に不具合が出てきたまた助言を頂けないでしょうか?
DVDMさん、シエルさん、ありがとうございました。
DVDMさん、シエルさん、ありがとうございました。
Re:ゲーム作成におけるメモリの使用量
私は重くても80MBを超えないというところを目安にしています(Aerobeatは最高120位食いますが・・)
大した根拠はありませんが、メモリがかなりたくさん使える今日はそこまで神経質に考えなくても良いかもしれませんね。
どうしても動画や音楽、エフェクト画像を沢山使いだすとメモリ使ってしまいますよね。
大した根拠はありませんが、メモリがかなりたくさん使える今日はそこまで神経質に考えなくても良いかもしれませんね。
どうしても動画や音楽、エフェクト画像を沢山使いだすとメモリ使ってしまいますよね。