【Defold】プログラムの方針について考えてみる
Defold はビルド時間も早くイテレーションがとても楽。だけどどんな設計でコードを組めば良いのかが資料として少ない気がしますので僕なりにまとめてみます。
目次
方針
- 素直な Defold を維持する
- オブジェクト・コンポーネント間のやりとりは全て msg.post を使用
ざっくりとはこの2点を守って考えてみます。
疎結合を保つ
複数のオブジェクトの参照を持つ様な管理オブジェクトは作らない。やりとりを行うときは、参照を持つのではなくmsg.post によるメッセージの受け渡しで完結させる。外からは go の インスタンスを持たず id のみを持つことを許可する。
細かな単位で関数化する
例えば、SetParam とあればパラメータをセットするだけに留める。 Setup 処理は含めない。
on_message に直接の処理を書かない
メッセージを受け取る on_message には関数呼び出しのみを記述する。
自身のインスタンスが持つコンポーネントへの msg.post も一度は script を経由させる。
自身のインスタンスが持つコンポーネント。例えばsprite へのmsg.post であっても一度 script のmsg.post を潜らせることで処理順を把握しやすくする。
これは少し速度面でどうなのか未検証。重くなったら少し考える。