赤宿 = Red Inn

素人の試行錯誤と2Dゲームプログラミング

note of topics

解決済みのトピック(良い方法かは自信が無い)

Engine and UI

 Engine = Model, UI = View

Engineの時間をリアルタイムから分離する

 UIがEngineの時間を進めるという図式( Engne::Core.tick() )。

Actionの観察

 継承で実装させたかった。
 Processer(Engine::Core)に View::ActionA as Engine::ActionA を渡す方式にした。

シーケンシャルな挙動の実現

 Sequenceと名付けられたQueueに、Viewの振る舞いを載せていく。
 Engine側の時間とViewの時間と同期させる。(カーソル上のマスの情報表示など、ViewからEngineの今の状態を参照したいから)。時間が飛ぶときは次のルーチンをラムダ式でラップして、Engineが途中から再開できるようにする。

Controlling

Control

 ControlのツリーでGameModeを暗黙的に構成する。
 "制御が働く"ニュアンス。

未解決のトピック

Flexibility

Entity非依存

 EngineがSomeFramework.Entityに依存しないようにするには。traitが無いと無理か?

データ駆動なpreference

 各モジュールはデータ駆動の部分を外から与えられるようにして、ファクトリがpreferenceオブジェクトに依存する?

データ駆動とPDS

 art/appearanceをデータ駆動にした場合、M/Vの分離があやふやにならないか?

Engine/Modelの境界

 全ローグライクで共通のシステムをEngine、ゲーム固有のシステムをModelとするつもりだったが…
 どうもうまくいかない。

HUD

Log

 ログを表示する瞬間(UI)とログを書き込む(Engine)を同期するには。

etc.

Serializing

Archiving

Updating Online