2019年8月24日 | ブログ記事

Caelyta譜面エディタと分担とMV*

Mocho

Caelytaとは

明日のブログリレー筆者(のはず)の金具くんが開発した音ゲーです。こちらから遊べます(Google Chromeで開いてください)。完全無料!

Caelyta譜面エディタとは

Caelytaは音ゲーなので当然譜面データがあるのですが、今まではこれをエディタにテキストデータ(実際には.jsだけど譜面を作る人から見ると実質.txt)として打ち込むしかありませんでした。ところがこの方式は制作効率が悪いことや譜面コンテスト実施を控えていることから、もっと譜面を作りやすい専用エディタがほしいなあということで譜面エディタが開発されることになりました。グラフィカルなUIがあなたの譜面制作を強力にサポートします。現在、金具くんと共同開発中です。

エディタの動作

Caelytaの譜面エディタはだいたい次のように動作しています(開発中のため仕様は変わることがあります。金具くんに許可された範囲で載せています)。
IMG_6226
このように描画と譜面データ関係をなるべく分けて処理しています。単にこうすれば動くからというだけでなく意図があってこういう構造になっているのですが、それについてはもう少し後で説明します。

MV*

実は、この「描画と内部処理を分ける」という考え方は金具くんや僕が初めて作り出したものではありません(それはそう)。内部処理を"Model"、描画処理を"View"と呼ぶ、"Model View *"というデザインパターンがあるのです。*に入る内容はModelとViewをどう繋ぐかでいくつかのバリエーションがあります。例えば、コントローラと呼ばれる部分で繋ぐ場合は、"Model View Controller"、略してMVCとなります。MVCのC、Controllerは主にModelを制御する司令塔的な役割を果たします。どうやら僕らが開発しているエディタの設計は、このMVCに近いもののようです(僕自身この辺については勉強中のため断定する自信は無いですが…)。MV*の類には、MVCのほかに、MVVMなどもあるようです(僕はまだMVVMがよくわかってないので気になる人は自分でぐぐってみましょう。)

なぜ分けるのか

MV*に限らず、適切に分割した設計にすることのメリットです。

というわけで、僕は適切に分割して開発することを強くお勧めします。この「適切な分割」がなかなか難しいですが、1つの方法としてMV*という方法があることを覚えておくとどこかで使えるかもしれませんよ。

明日は金具くんの記事です。お楽しみに!

この記事を書いた人
Mocho

サウンド班に入ったはずなのにプログラミングとお絵かきしかしてない人。

この記事をシェア

このエントリーをはてなブックマークに追加

活動の紹介

カテゴリ

タグ