概要
- 今すべてを理解することはできないもの。
- 開発をしたことがないと設計は、理解できない。
(不確定要素が多すぎる) - とにかく理解するためには、コードを書き開発をしていくことが大事。
- 開発をしながら設計をしていくという感覚を持っておく。
- メモ書きでもいいので残しておくと、そのプラグインがなんであったかが見返しやすくなる。
例えば
要件定義
◯ 機能要件(その機能がないと駄目よというもの)
(どんな機能を使うのかなども定義する必要がある)
敵を倒すと点数が入ること
時間制限を設定できること
時間制限が来たら合計点数が表示されること
◯ 非機能要件(必須ではないものだが、あれば嬉しいもの)
(これを定義できることによって顧客満足度を高めることができるようになる)
(これを後で定義してしまうようにすると、そのときになって、そのことができない仕様になってしまう。)
コマンドでゲームを開始できる
コマンドのオプションで敵の強さ、プレイヤーの強さ、敵の種類を設定できる。
プラグインをどのサーバーでも動かせること。
◯ 機能設計(どうやったらできるか)
(文言は、全体として統一させないと認識違いが生まれて違うものができてしまうことがあるので、
絶対統一する)
敵を倒すと点数が入ること
EnthityのSpawnの仕組みを使って敵を出現させる。
Entityが倒れたときのイベントを使って、点数を設定する。
課題
◯ 機能要件
剣の種類を一つ増やす。
剣を振るとできることが増える。
剣の材料によって発生要件が変わる。
剣が直接当たらなくても敵にダメージを与えられる。
◯ 非機能要件
種類を増やした剣を振ったときに火の玉が飛んでいく。
敵に火の玉が当たると敵がダメージを受ける。
剣で直接切ったときよりも効果は薄い
剣の材料によって火の玉の色が変わる。
剣の材料の違いで火の玉のダメージ度がかわる。
敵でなくても動物もたおせる。
こんなことを考えてみましたがどうでしょうか??
コメント