作業の手順
このプロジェクトでは以下のように作業を進めていきます。
1.ジャンルを決める
どんな感じのゲームにするかベースを挙げて、それをどんな風に変えるか決めます。
(例)「シンプルなRPGで、戦闘はリアルタイムのコマンドバトルにしちゃう」
2.大まかなゲームの流れと画面構成を決める
大まかなゲームの流れを考えます。
例えばシンプルなRPGの場合、ゲームの流れは以下のようになります。
- プレイヤーを登録する。
- ログインする。
- 移動画面でマップ上を移動し、普段はランダムエンカウントで1対1の戦闘が始まる。
- 戦闘画面ではリアルタイム制のコマンドバトルにより勝負を決める。
- シナリオ的にはシンボルエンカウントの結果によりフラグが立ち、フラグの組み合わせでイベントが変化していく。
ゲームの流れを元に、どんな画面が必要なのかを考えます。
上記の場合、以下の画面が必要になります。
- プレイヤー登録画面
- ログイン画面
- 移動画面
- 戦闘画面
ただ、画面が別れても頻繁に切り替わる内容であれば、同一ページ上(同一ウィンドウ上)で表示することになります。
3.細かいゲームの流れと各画面のパネル構成を決める
細かいゲームの流れを考えます。
例えばRPGのベタな戦闘の場合、ゲームの流れは以下のようになります。
- 一定時間内に、コマンド選択により行動を選択する。
- 一定時間経過後、1ターン分の戦闘結果が文章で表示され、その文章にあった敵の画像やステータスの結果が表示される。
- 上記1〜2を繰り返し、最終的に体力が無くなったり、自分か相手が逃げ出した段階で戦闘が終了する。
- 体力が無くなるか逃げた場合は負けとなり、勝った側にポイントを奪われる。
ゲームの流れを元に、どんなパネル(領域)が必要なのかを考えます。
上記の場合、以下のパネルが必要になります。
パネル | 表示内容 | 表示方式 |
---|---|---|
ステータス表示 | 自分の体力や状態のみ表示する | 体力のみ目盛り表示 他は数値や文字表示 |
敵イメージ表示 | 敵の画像を表示する | セルフビューのラスタ画像 |
行動選択 | 選択可能な行動のみ表示し、選択させる | 等幅選択肢の羅列 |
状況テキスト表示 | 戦闘の状況を文章で表示する | 前回分を繰り上げ 1文字ずつ6行表示 |
4.各パネルの内部的な仕様を決める
各パネルの入出力、描画の更新頻度やタイミングを決めます。
例えば以下のようになります。
パネル | 役割 | 描画更新タイミング |
---|---|---|
ステータス表示 | 受信表示 | インターバルA(10秒おき) |
敵イメージ表示 | 受信表示 | インターバルAと同時 |
行動選択 | 受信表示/送信 | 行動選択時 |
状況テキスト表示 | 受信表示 | インターバルAと同時 |
一見、行動選択の役割は送信だけでも良さそうな感じですが、道具を使ったりして選択内容も変化するのであれば、受信表示も必要になります。
5.プラットフォームを決める
ここまでの工程により、どんな仕組みが必要か見えてくるので動作環境を決めます。
テキスト表示やラスタ画像の表示だけで済むならブラウザのみで動作するオンラインゲームでいけますが、やたらとアニメーションが必要ならクライアントはWindowsアプリケーションとして用意する必要があります。
また、ゴルフゲームやすごろくゲームにある「タイミングよく押す」という要素を含んだゲームの場合、このシンプルな仕組みはJavaScriptで済みそうに見えますが、JavaScriptではマズいです。
JavaScriptだとソースがバレてしまうためイカサマされる可能性があり、イカサマ防止のためにもFlashやJavaなどにする必要があります。
6.雰囲気を決める
世界観やタイトルなどを決めます。
(例)「現代日本でサラリーマンがモンゴル相撲で勝負するような雰囲気にしよう」
7.各画面の画面レイアウトを決める
各画面のどの位置にどのパネルを置くか決めます。
仕様や世界観に合わせて実際に画面を作ります。
8.ゲームの内容別の作業
ここから先はゲームの内容によります。
例えばジャンルによって以下のような作業が必要になります。
ジャンル | 作業の種類 |
---|---|
シンプルなロールプレイング 戦略シミュレーション | システムルールの作成 移動時の背景画像の作成 移動時のキャラ画像の作成 移動時の地域データの作成 ステータスデータの作成 イベントの条件データの作成 イベントの台本データの作成 戦闘時の条件データの作成 戦闘時の台本データの作成 戦闘時の敵画像の作成 敵データの作成 プログラムの作成 |
アドベンチャー 育成シミュレーション 恋愛シミュレーション | システムルールの作成 背景画像の作成 キャラ画像の作成 地域データの作成 ステータスデータの作成 イベントの条件データの作成 イベントの台本データの作成 プログラムの作成 |
以上でおそらく完成です。