エンジニアをしておりますドリコムの西村です。
この度「CEDEC2017」にて
「スマホ版『ダビスタ』の操作テンポと開発スピードを上げたUIフレームワークの作り方」
というタイトルで登壇いたしました。
その際に使用した資料はCEDiLに上がっていますので、まずはこちらをご覧下さい。
※ご覧頂くにあたり、アカウント作成が必要になります。
ここでは、一部質疑応答に挙がった内容について記述と補足をしていこうと思います。
この設計に至った経緯は?
ダビマスの制作にあたってはこの思想で作るということを最初から決めて実装していました。
このときにはもう設計が固まっていました。
以前にUnityによる制作で今回の思想の基盤となる実装をしていきましたが、
このときに思っていたことは、
「戻る」ボタンを押したらどのようにして、どのような画面でも前の画面に戻そうか。
汎用ダイアログをあらゆる画面で出すようにしたいが、どのようにしたら共通処理としてダイアログを出すことができるのだろうか。
ソーシャルゲームではよくある機能のうち共通処理にできる部分があるので、
そこでいかにしたら共通処理に落とし込めるかを考えていった結果、この思想に至りました。
循環するUIの場合はどうなるのか?
ダビマスにおいて、2点例を挙げておこうと思います。
・牧場⇄厩舎 への循環遷移について
牧場や厩舎は主要となるレイヤーでありMainUIに配置されるレイヤーになるため、重ねて置かないルールを取っています。
replace()を使って入れ替えるように処理をしております。
・厩舎画面→レース出走登録→厩舎画面への循環遷移について
厩舎レイヤー・馬詳細レイヤー・レース選択レイヤーと重なっていきますが、
出走登録後、厩舎画面へ再度進む場合は馬詳細レイヤー・レース選択レイヤーをまとめて削除しております。
このとき厩舎画面からレース選択画面へ戻ることはできなくなっています。
循環するUIについては対策する点が生まれるのは否めないため、
企画仕様として対応できる部分は相談することも、やり方の一つになります。
まとめ
今回の登壇後、新しい切り口のUI実装になったともお声をいただきましたが、
この内容がこれから新しく生まれるゲームへ何かしら良い影響が与えられると幸いです。