以下RDGC Ver0.2に向けてのメモ書きです

  • GameMasterクラスとDungeonクラスとBoardクラスの関係の整理
    • Boardを実質Dungeonに変更し、ActorやTimerの管理をGameMasterが行う
    • Visibleの情報もGameMasterが持つかは考慮が必要
      • Dungeon(旧Board)が管理した方が楽だけど、意味からするとGameMasterの気も・・・
  • Timerクラスの管理手法変更
    • DungeonクラスでのTimer管理を引き上げてGameMaster
    • GameMasterが全Timerを管理
    • ActorにTimerをincludeするのではなく、TimerからActorをcallbackする関係に
      • 現状、ActorのターンにならないとTimerが発動しない
      • これだと例えば、自分の番が来るまでBuffの効果が切れなかったりする
      • よって、このままだとAGIの値が小さいほどTimerの発動・消滅が遅れることになる
      • Actorと無関係にGameMasterが時間管理すれば、この問題を解決できる
      • なにより、名前と管理するもののイメージが一致する
    • そもそもGameMasterがTimerとActorを一つのリストで管理すればいろいろ解決?
  • GameMasterクラスのプラグイン化
    • 要するに、GameMasterクラスの管理する各要素について、外部クラスに委託するようにする
    • その結果、外部クラスの差し替えだけで動きが変わる
      • Strategyパターン化するということ
      • Ver0.1でもやってはいますが・・・
  • 戦闘ロジックのプラグイン化
    • GameMasterが渡されたロジックにしたがって戦闘結果を管理する
  • メッセージ周りの変更
    • GameMasterが管理?
    • いろいろ検討が必要
  • 「画面が変化するとき」を1フレームの単位に
    • 現状、1フレームで内部1ターン、つまり1キャラ動作する
    • これだと、敵の数が増えるとどんどんプレイヤーの処理が遅れる
    • そこで、画面に描画する情報が変化するまで、どんどんターンを進める仕組みに変える
      • プレイヤーの見ている範囲で敵が動く
      • パラメータに変化がある
      • 不可視エリアで敵が動いてもスルーする
        • そう考えると、不可視エリア情報はGameMasterが保持すべき?
    • ただし、これでも「画面内に敵がたくさん」という状況(例:MH)での処理遅れはどうしようもない
    • ただ、「フロアに敵が多い」よりは「画面に敵が多い」の方がユーザが納得しやすい
  • MAP分割/Room生成ロジックを変更
    • 現状は再帰的に奥まで行って、戻ってきてまた進むのを繰り返している
    • これをQueueみたいな感じに変更する
      • Queueから分割/生成対象を取り出し、処理をして、MAXに達したら終了
    • これでMAPの生成パラメータに対応可能になる・・・はず