質問するログイン新規登録

回答編集履歴

1

リソースとヒープの話を一緒にしてしまってたので訂正

2016/12/24 05:43

投稿

退会済みユーザー
answer CHANGED
@@ -2,11 +2,13 @@
2
2
  何でもかんでもスマートポインタにしとこう、というのはちょっとマズイかもしれません。
3
3
 
4
4
  MMORPGやオープンワールドゲームのように、必要になるリソースをしぼれない
5
- (ワールドマップで遊んでいる最中にVRAMにロードしてないテクスチャが必要になるなど)場合は仕方ないですが、
5
+ (ワールドマップで遊んでいる最中にVRAMにロードしてないテクスチャが必要になる、新しいキャラクタが現れるなど)場合は仕方ないですが、
6
6
  基本的にゲームはプレイ中に画面がガクつかない方がいいですよね。
7
+ なので基本的にプレイ中のヒープ確保は厳禁です。キャラクタクラス等はロード終了前に全て確保されているべきです。
8
+
7
- なので、リソース所有権を曖昧にせず、リソースを管理するクラスに一元管理させて
9
+ 同時にテクスチャ等のGPUリソース所有権を曖昧にせず、リソースを管理するクラスに一元管理させて
8
10
  ロード画面のときに必要なものを全て読み、VRAMの空きに応じて不要なものを破棄すべきです。
9
- これはもちろんリソース限定の話ですが、リソースとゲーム内の概念のクラス(キャラクタ等)は分離してますでしょうか?
11
+ あとリソースとゲーム内の概念のクラス(キャラクタ等)は分離してますでしょうか?
10
12
  一般的には、リソースとキャラクタ等は癒着させない方がいいです。
11
13
 
12
14
  決してスマートポインタを使うなという話ではないのですが、その辺の事情を加えれば、ご自身の開発に適したスマートポインタの種類、あるいは管理方法が浮かんでくるのではないでしょうか。