私は私たちの周りのすべてが、ダイアグラムを介して何らかの形で表現できると思うのが好きです。たとえそれが、特定のオブジェクトの状態の間の遷移を時系列で表す単なる線形図であったとしても(生物のように、誕生から死まで多くの状態を経て)。図を使用して、実際の実装に関する考えやアイデアをまとめます。私はかなり即興演奏します。
したがって、私の図はほとんどの場合非常に高いレベルであり、マインドマップのように感じます。
いくつか例を挙げると、これは実際にはインタラクティブオブジェクトが基本型であるゲームのクラス継承マップ(カットされたもの)です。
これはスパイクトラップのFSM(有限状態機械)ダイアグラムです(踏み込んでスパイクが地面から現れる素晴らしいトラップ)。
これは私が最近描いたハンドブックダイアグラム(この方法で名前が付けられることが多いため、頻繁にダイアグラムに戻ることを意図しているため)。ゲームのコンポーネントの概要を示し、必要なものとそうでないものをすぐに確認できるため、必要なアセットの収集にも役立ちます。大きなプロジェクトではかなり大きくなるので、小さなプロジェクトではこれらをお勧めします。しかし、それらをさらに広げることができるので、それは物事を修正するかもしれません。
下位レベルに行くとき、それは通常、アーキテクチャの最も複雑な側面を計画する必要があるためであり、通常はそこでUMLを扱います。ただし、完全にクリーンで正しいUMLの出力に集中することはありません。UML規約で最も気に入っているものを採用し、それを素晴らしいマインドマップ風のUMLに変えました。それは単純であり、私のために仕事をしますが、明白な理由のために、実際のUMLが期待される環境ではそれを使いません。
下位レベルに行かなければならない別の状況は、実際のアルゴリズムを説明する必要がある場合です。フローダイアグラムと呼ぶものを使います。これは、ホワイトボックステストで使用される図に触発された形式です。
私が今描いたスパイクトラップのサンプルは次のようになります。
これは通常、ダイアグラムと実際のアルゴリズム実装の間の最終層です。必要に応じて、フロー図をさらに詳細に実行し(追加の実行命令を使用)、複雑さを推定または推定し、正確なテストケースを作成します。また、擬似コードよりもダイアグラムを好みます。
ゲーム開発とは関係ありませんが、マルチスクリーンアプリの画面、ユーザーが各画面でトリガーできる機能、画面間の関係を説明するのに適した形式もあります。私は通常、実際の開発を開始する前にこれらを構築し、開発プロセス全体でマップのように機能します。クライアント向けの場合、画面図はさらに便利です!これは、プロジェクトの最初から最初までのすべてを検討し、必要なすべての機能を考慮するのに役立ちます。したがって、正確なコストと時間の見積もりを提供することは非常に貴重です。
ええ、私は間違いなくすべてのものを図式化します。アイデアがあれば、そのための図を描くことができます。少なくとも非常に広い図をバックアップせずにプロジェクトを何らかの形で開始すると、足が不自由になります。