DXライブラリを使って2Dゲームを作っていますが
徐々にexe実行後にタイトルが出るまでの読み込み、
ゲーム中scene変更時の読み込み、などが
たかが「数秒」の話ですが、長くなっている感じがあります。
もちろん、releaseしたものでプレイするとかなり改善されますが
それでもやはり制作中、その内容が増えることに比例し
ゲーム中の読み込みも長くなっている気がします。
処理が増えれば、その分
読み込みに時間もかかるのはわかりますが
それ自体はものすごいスピードのはずですし、
たかが2Dでファミコンみたいなゲームの処理ですから
関数の量が作用してるとは思えません。
いったいなにが一番読み込みに時間を食うのか、
わかりません。
わかれば、対処のしようもあると思うので
読み込みなどを早くするために気を付けることを教えてください。
優先順位?みたいな感じでもいいです。
(つまり、なにをするのが一番よくないのか、を知りたいです)
結局はどれも気を付けることなのはわかってます。
重くなる要因のすべてに気をつければいいのもわかりますが
自分はまだすべてに目を向けられるlevelではありませんので
まずは、これが一番作用してるから気をつけなさい、
みたいなアドバイスがほしいです。
●ソース以外の文字数の影響
実は、実行されるソース以外の文字も影響を与えていて
コメントアウトのソースや補足文とか、無駄なものは消した方が早くなる?
無駄なコメントを沢山書いてたりもするんで。
●画像やサウンドの一括読み込みによる影響
自分はゲーム中で使う画像やサウンドのすべてを
ゲームを実行した最初に読み込ませています。
これを、毎度タイトル画面、stage1、stage2など各sceneに移る瞬間に
そのsceneで使っている画像やサウンドだけを読み込ませた方がいいですかね?
そんなに変わりますか?
●ファイルの中に使っていない画像やサウンドファイルを入れていることの影響
画像やサウンドを入れているフォルダには、未使用のものもあったりします。
読み込んではいないんですが、読み込みなどにも作用しますか?
●変数の数
静的変数の数って結構重要ですか?
ゲーム作ってるとフラグを多用するんでよくクラスで作っとくんですが
動的に出来るものはすべて動的にした方がいいの??
更新関数内が変数宣言もぐれになりそうなんですが、、、。
自分が気になるのは上記のものですが
そのほかになにかありますか?
読み込みに時間を食う一番の要因?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: 読み込みに時間を食う一番の要因?
●ソース以外の文字数の影響
C/C++では命令が機械語に変わるのでコメントは残りません。
変数名の長さも関係ありません。
●画像やサウンドの一括読み込みによる影響
読み込み方が悪い場合や無駄に読み込んでいる可能性はあります。
一般論としてはなんとも言えません。
●ファイルの中に使っていない画像やサウンドファイルを入れていることの影響
少なくともファイルオープンの速度は低下します。
●変数の数
ローカル変数を多用したほうが無駄なメモリは減りますが、早くなるかはケースバイケースです。
静的変数はバグのもとです。
【補足】
HDDからの読み込みは遅いです。ファイルオープンは更に遅いです。
なので、ファイルが細かく多ければ多いほど遅くなります。なので出来るだけまとめます。
対応として、非同期読み込みで画面を動かしてのごまかしや都合に応じて随時読む、同じデータは読まないようキャッシュするなどの工夫をします。
C/C++では命令が機械語に変わるのでコメントは残りません。
変数名の長さも関係ありません。
●画像やサウンドの一括読み込みによる影響
読み込み方が悪い場合や無駄に読み込んでいる可能性はあります。
一般論としてはなんとも言えません。
●ファイルの中に使っていない画像やサウンドファイルを入れていることの影響
少なくともファイルオープンの速度は低下します。
●変数の数
ローカル変数を多用したほうが無駄なメモリは減りますが、早くなるかはケースバイケースです。
静的変数はバグのもとです。
【補足】
HDDからの読み込みは遅いです。ファイルオープンは更に遅いです。
なので、ファイルが細かく多ければ多いほど遅くなります。なので出来るだけまとめます。
対応として、非同期読み込みで画面を動かしてのごまかしや都合に応じて随時読む、同じデータは読まないようキャッシュするなどの工夫をします。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 読み込みに時間を食う一番の要因?
んー。
これまた質問への的を射た回答ではありませんね
特に、ここですが
ちゃんと読んで返答していらっしゃるんでしょうか?
●画像やサウンドの一括読み込みによる影響
自分はゲーム中で使う画像やサウンドのすべてを
ゲームを実行した最初に読み込ませています。
これを、毎度タイトル画面、stage1、stage2など各sceneに移る瞬間に
そのsceneで使っている画像やサウンドだけを読み込ませた方がいいですかね?
そんなに変わりますか?
と僕は、
速度向上の上で分けるか一括かでどちらが合理的かを聞いているのに、
「読み込み方が悪いかも、無駄に読み込んでいる可能性があるかも」では
、、、ん?って感じなんですが。違いますか?
この画像やサウンドの話ですが
結局、ハンドルにぶち込む処理は、ゲームを立ち上げた最初に一括とかじゃなく、
各ファイル使う場面の寸前で小分けにしたほうがいいのですか?
これまた質問への的を射た回答ではありませんね
特に、ここですが
明らかに、質問内容と回答とで論点がずれていますよね?softya(ソフト屋) さんが書きました: ●画像やサウンドの一括読み込みによる影響
読み込み方が悪い場合や無駄に読み込んでいる可能性はあります。
一般論としてはなんとも言えません。
ちゃんと読んで返答していらっしゃるんでしょうか?
●画像やサウンドの一括読み込みによる影響
自分はゲーム中で使う画像やサウンドのすべてを
ゲームを実行した最初に読み込ませています。
これを、毎度タイトル画面、stage1、stage2など各sceneに移る瞬間に
そのsceneで使っている画像やサウンドだけを読み込ませた方がいいですかね?
そんなに変わりますか?
と僕は、
速度向上の上で分けるか一括かでどちらが合理的かを聞いているのに、
「読み込み方が悪いかも、無駄に読み込んでいる可能性があるかも」では
、、、ん?って感じなんですが。違いますか?
この画像やサウンドの話ですが
結局、ハンドルにぶち込む処理は、ゲームを立ち上げた最初に一括とかじゃなく、
各ファイル使う場面の寸前で小分けにしたほうがいいのですか?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: 読み込みに時間を食う一番の要因?
申し訳ありませんが、私は新宿の翼さんが言われていることが分かりません。
なので、返答は差し控えます。
なので、返答は差し控えます。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。