「蚊を殺すゲーム」の技術検証のために始めたプロジェクトで、今はコーディングスタイルを見せるプロジェクトです。 本番プロジェクトである「蚊を殺すゲーム」のプレイ動画はこちらを見てください。
- パフォーマンスを意識して実装し、蚊の数が数千を超えても問題なく起動可能
- 仕様の変更や追加に対応できるコードの実装
- オブジェクト指向を守り、変更や追加、テストなどに容易
- Scriptable Obejct Event アーキテクチャを使い、Dependencyを最小限に
- 概要
- 2Dの平面を立体的に組み合わせることで2.5Dを演出
- 各2D平面はRoomの単位で表れている
- playerと蚊はそのRoomの中を移動したり、他のRoomに移動できる
- PlayerのRoom移動は「RoomChannel」のScriptableObjectでEventListener アーキテクチャで管理される。
- 使用Script 説明
- Room
- 各Roomの大きさと隣接のRoom情報を保管する。
- RoomCameraController
- 各Roomの動きを制御する
- RoomChannel
- PlayerのRoom間の移動をEvent形式で伝える。
- 拡張性と独立性を保つための SO Event Systemを使用
- Room
- 概要
- 蚊が自由にRoomを移動したり、空間に出たりすることを制御する。
- 他の蚊をよける、天井から離れるなど、複数の行動を追加&変更が容易にできるような設計
- 使用 Script 説明
- MosqBrain
- 蚊の移動を制御する
- 蚊が各Roomに移動する時にEventを発動
- MosqMovement
- 蚊の動きをまとめて実行する
- すべてのIMosqDirectionをまとめて実行する
- IMosqDirection
- 細かい蚊の動きを実装するクラスにつける
- IRoomEventListener
- 蚊がRoomに移動するEventの管理
- MosqBrain