COSMIC VOYAGE は Unity / C# を用いて開発した
2Dスペースシューティングゲームです。
プレイヤーが宇宙船を操作し、敵編隊や障害物を突破しながら
ステージを進んでいくゲームになっています。
本プロジェクトは、ゲーム制作だけでなく
- ゲームシステム設計
- 拡張可能なアーキテクチャ
- プロジェクト構造の整理
なども意識して開発を行いました。
本作は、個人クリエイティブプロジェクト
HARMONIZED FORGE の作品の一つです。
UnityRoomでプレイできます
https://unityroom.com/games/cosmicvoyage_harmonizedforge
YouTube
https://youtu.be/uRgWhEebByI?si=45ndyQiB_sxB02NY
ゲーム設計資料(Vivivit)
https://www.vivivit.com/works/1030228
資料では以下の内容をまとめています。
- ゲーム概要
- ゲーム構造
- システム概要
- 開発背景
- 感想など
COSMIC VOYAGE は
宇宙空間を舞台にした 2Dスペースシューティングゲームです。
プレイヤーは宇宙船を操作し、
- 敵の編隊
- 隕石フィールド
- 宇宙デブリ
- 中ボス戦
などを突破しながらステージを進んでいきます。
また、難易度によってゲームの挙動が変化する設計になっています。
- 2Dスペースシューティングゲーム
- 3段階の難易度
- NAVIGATOR
- CREW
- ACE
- 敵編隊システム
- 中ボス戦
- 難易度ごとに異なるリスタートシステム
- unityroomランキング機能
- モバイル操作に対応した仮想ジョイスティック
開発途中で、今後のステージ拡張を想定し
ゲーム内部の構造を整理しました。
ゲーム全体を管理する GameManager と
各ステージの処理を管理する StageManager を分離しています。
GameManager
├ ゲーム全体状態
├ スコア管理
└ StageRuntimeインターフェース
StageManager(例:Stage1Manager)
├ ステージ進行
├ 敵フェーズ制御
├ リスタート処理
└ クリア処理
各ステージは以下のインターフェースを実装します。
IStageRuntime
この構造により
Stage1Manager : IStageRuntime
Stage2Manager : IStageRuntime
Stage3Manager : IStageRuntime
のように、新しいステージを追加しても
ゲーム全体のコードを変更せずに拡張できる設計になっています。
スクリプト構造(簡略)
Assets/Scripts
Core
├ GameManager
├ SoundManager
└ GameSettingsManager
Player
├ PlayerController
├ PlayerBullet
├ ShieldController
└ SubUnitController
Enemy
└ 敵システム
Stages
└ Stage1
├ Stage1Manager
├ EnemySpawner
├ AsteroidSystem
└ MidBossSystem
SceneFlow
├ Title
├ Loading
├ Tutorial
├ Clear
└ GameOver
UI
├ PauseMenu
├ PowerUpUI
└ ScreenshotManager
- Unity
- C#
- TextMeshPro
- Unity Video Player
- unityroomランキングAPI
このプロジェクトでは以下を重視しました。
- プレイヤー操作の快適さ
- ゲーム進行の分かりやすさ
- ステージ拡張を想定した設計
- スクリプト構造の整理
- 保守性の高いコード構造
- 新ステージの追加
- 新敵キャラクター
- ボス戦の強化
- ステージデータの外部定義
- 敵AIの拡張
- VFX演出の強化
大久保 拓太 (Takuto Okubo)
東京電機大学大学院
Creative Project
HARMONIZED FORGE
Unityroom
https://unityroom.com/games/cosmicvoyage_harmonizedforge
