私は現在、かなり大きく、UI が重い Flash ゲームに取り組んでいます。私たちのチームは、これに約 9 か月間取り組んできました。私たちの誰も Flash の経験がなかったので、この間にワークフローを継続的に改善してきました。しかし、特にコーダーとアーティストの間のインターフェースに関しては、私たちが現在行っていることはまだ最適ではないと感じているため、他のチームがどのように機能しているのか気になります。
理想的なワークフローは、次の要件を満たす必要があります。
1. 再利用される UI 要素は 1 回だけ定義される
つまり、フォントやボタンのスタイルを変更したい場合、すべてのメニューを調べて手動で変更したくないということです。それらを 1 つの中心的な場所で定義し、そこからのみ参照できるようにしたいと考えています。アセットが編集時だけでなく実行時にも共有される場合、つまり一度だけダウンロードされる場合のボーナス ポイント。
2.すべてオンデマンドでロード
現在、2 つの異なる読み込み手順があります。まず、メニュー ライブラリを読み込みます。これが完了すると、プレーヤーはすでにすべてのメニューを操作できます。次に、実際のゲームプレイ データの読み込みを開始します。ただし、最初のロード時間は依然として長すぎて、多くの潜在的なプレーヤーを失う原因となっています. 私たちが実際にやりたいことは、メイン メニューに必要な最小限のものだけをロードし、プレイヤーが実際にそれぞれのメニューを開こうとしたときにのみ他のすべてをロードすることです。Zuma Blitzはこれを非常にうまく行っています。
3. アーティストは、コーダーの助けなしに小さな変更を行うことができます
実際の機能を変更せずにメニューを再設計する必要がある場合、アーティストは Flash CS6 で独自にそれを行うことができるはずです。これには、アートとコードの間の明確なインターフェースが必要であり、アーティストが変更をコーダーに送信する前にテストおよびデバッグできる必要があります。
-
現在のワークフローは次のようになります。アーティストは Flash CS6 でムービークリップとして画面を作成し、SWF としてエクスポートします。コード側では、スクリーン SWF から MovieClip をロードし、PureMVC ベースのシステムで View クラスとして使用します。メディエーターは、ビュー内のテキスト フィールドなどの要素にインスタンス名でアクセスします。
これは、インターフェース (つまりインスタンス名) を定義する中心的な場所がないため、エラーが発生しやすくなります。コーダーとアーティストの間で多くの通信オーバーヘッドが必要です。また、コードとムービークリップの内部構造の間に依存関係が作成されます。アーティストは、エフェクトを適用したいときに、テキスト フィールドを別のサブムービークリップに添付することはできません。
アーティストがムービークリップに数行のコードを追加する必要があるイベントベースのインターフェイスを実験しています。これにより、エラーが発生しにくくなり、以前よりも相互依存性が低くなりますが、テストとデバッグ用の追加ツールを作成しない限り、(3) を完全に満たすことはできません。これはよくある問題で、これ以上簡単な方法はないと思います。
(2) については、自家製のソリューションの構築も開始しましたが、これも非常に一般的なタスクであり、使用できるものが既に存在する必要があります。
では、経験豊富な Flash 開発者は、このような大規模なプロジェクトをどのように管理しているのでしょうか?