2. TOKYO JOHO UNIVERSITYTOKYO UNIVERSITY OF INFORMATION SCIENCES
課題:RPGキャラクター
職業毎レベルアップシミュレーション
目的
RPG開発の準備を整えるためのプログラムを作ること
要件
対話型でレベルアップ時のステータスを確認できる
ゲームデータのセーブ&ロードができること
前提知識
必須:クラス・継承・ファイル入出力
任意:スレッド・コレクション・GUI
2
3. TOKYO JOHO UNIVERSITYTOKYO UNIVERSITY OF INFORMATION SCIENCES
長期課題(2)の進め方
進め方
第10回(11/28)~第15回(1/16)までの継続的な課題
毎回の演習時に20~30分程度のグループワークを実施
グループワーク:3~4人組で設計作業&状況確認
各チェックポイント
第12回(12/12):レベルアップシミュレーション
第14回(01/09):データのセーブ&ロード機能
第15回(01/16):最終チェック ※オプション機能含む
※チェックポイントの到達度に応じて、評価を行う方式
3
4. TOKYO JOHO UNIVERSITYTOKYO UNIVERSITY OF INFORMATION SCIENCES
課題:RPGキャラクター
職業毎レベルアップシミュレーション
必須機能
ステータスのパラメータが異なる3種以上の「職業」
入力情報:名前, 職業, 設定レベル
ステータス:HP, MP, 力, 素早さ、身の守りなど ※任意で追加可
職業毎にステータス成長度の違いを実現する
レベルアップによるパラメータ上昇値のシミュレーション
キャラクターのゲームデータのセーブ&ロード機能
オプション機能
キャラクターのパーティーと敵との戦闘
HashMap, Listなどを用いたデータ管理の改良
DXライブラリによるキャラクターや敵の表示
4
5. TOKYO JOHO UNIVERSITYTOKYO UNIVERSITY OF INFORMATION SCIENCES
実行画面:キャラクター登録
処理の流れ
必要事項「名前、性別、職業」の入力
職業の特性に合わせた初期ステータスが表示される
5
6. TOKYO JOHO UNIVERSITYTOKYO UNIVERSITY OF INFORMATION SCIENCES
実行画面:成長シミュレーション
処理の流れ
設定するレベルを指定する
職業毎の特性に合わせたレベルアップのシミュレーション
6
7. TOKYO JOHO UNIVERSITYTOKYO UNIVERSITY OF INFORMATION SCIENCES
課題のヒント
課題の内容を理解する
職業毎のクラスをどのように表現できるか
レベルアップ時のパラメータ変化を職業毎に変えるには
実装方法を考える
キャラクターをクラスとして定義するとどうなるか
どのような変数やメソッドがあるだろうか
クラスメソッドとインスタンスメソッドを使い分ける
職業毎に上昇値のパラメータを設定する
職業毎の特性が出るように調整する
パラメータ上昇は固定値でもよいが、ランダム要素があってもよい
線形ではなく、キャラクター特有の成長曲線(晩成型 or 早熟型) 7
8. TOKYO JOHO UNIVERSITYTOKYO UNIVERSITY OF INFORMATION SCIENCES
開発スケジュール(1)
第10回(11/28):課題の提示、準備作業
RPGキャラクターの抽象クラスの提示
提示した抽象クラスを継承して使う ※必要に応じて修正可
JSONファイルの読み込み処理説明
外部ライブラリのインポートが必要
第11回(12/05):レベルアップシミュレーション
職業毎のパラメータを調整する
任意のレベルまでのシミュレーションを行う
8
9. TOKYO JOHO UNIVERSITYTOKYO UNIVERSITY OF INFORMATION SCIENCES
開発スケジュール(2)
第12回(12/12):ロード機能
キャラクターデータのロード
JSON形式のファイルをロードし、オブジェクト生成
デフォルトのファイルフォーマットを指定 ※項目の追加は任意
キャラクター人数分のステータス表示
キャラクターを配列で保存しパーティー全員のステータスを
表示するメソッドを作成
第13回(12/19):セーブ機能
キャラクターデータ(JSON形式)のセーブ
保存したファイルをロードできるかも確認する
9
10. TOKYO JOHO UNIVERSITYTOKYO UNIVERSITY OF INFORMATION SCIENCES
開発スケジュール(3)
第14回(01/09):オプション機能
戦闘:ボス敵を用意し、パーティー全員での戦闘シーン
GUIの実装
データ構造の改善
のいずれかに取り組む
第15回(01/16):実行確認
チェックシートに従い、各自のプログラム&動作確認
10
11. TOKYO JOHO UNIVERSITYTOKYO UNIVERSITY OF INFORMATION SCIENCES
各回の進め方(第10回:11/28)
スケジュール:30分
長期課題の説明:10分
グループ分け:5分
グループワーク:15分
学生がやること
グループ内で話し合い、課題内容について理解を深める
グループ内でクラス設計について話し合う
クラスのフィールドを洗い出し、ワークシートに記入する
サンプルプログラムと外部ライブラリの確認
11
12. TOKYO JOHO UNIVERSITYTOKYO UNIVERSITY OF INFORMATION SCIENCES
サンプルプログラムの説明(1)
ファイル構成
character:キャラクター関係のパッケージ
GameCharacter.java:キャラクター全般の抽象クラス
Job.java:職業毎の列挙型
Sex.java:性別毎の列挙型
gameplay:ゲーム実行のメインクラスのあるパッケージ
CharacterSimulator.java:JSON形式のファイル読み込みクラス
user.json:JSON形式のデータ ※キャラクター用に修正する
進め方
各自プロジェクトを作成し、上記を参照して開発する
適宜、変更やクラスの追加などを行う
12
13. TOKYO JOHO UNIVERSITYTOKYO UNIVERSITY OF INFORMATION SCIENCES
サンプルプログラムの説明(2)
JSON形式のファイル読み込みに必要なライブラリ
jackson-core, jackson-annotations, jackson-databind
参考URL:https://www.sejuku.net/blog/39599
実行画面
13
14. TOKYO JOHO UNIVERSITYTOKYO UNIVERSITY OF INFORMATION SCIENCES
各回の進め方(第11回:12/05)
スケジュール:20分
グループでの到達度確認:5分
グループワーク内で開発について相談:15分
学生がやること
グループ内でワークシートの内容を確認する
グループ内で各自の進捗状況を確認する
レベルアップシミュレーションについて情報共有する
14
15. TOKYO JOHO UNIVERSITYTOKYO UNIVERSITY OF INFORMATION SCIENCES
各回の進め方(第12回:12/12)
スケジュール:20分
グループでの到達度確認:5分
グループワーク内で開発について相談:15分
学生がやること
グループ内でワークシートの内容を確認する
グループ内で各自の進捗状況を確認する
第1チェックポイントに到達したか確認する
ゲームデータの読み込み形式について相談する
15
16. TOKYO JOHO UNIVERSITYTOKYO UNIVERSITY OF INFORMATION SCIENCES
各回の進め方(第13回:12/19)
スケジュール:20分
グループでの到達度確認:5分
グループワーク内で開発について相談:15分
学生がやること
グループ内でワークシートの内容を確認する
グループ内で各自の進捗状況を確認する
ゲームデータの保存方法について相談する
16
17. TOKYO JOHO UNIVERSITYTOKYO UNIVERSITY OF INFORMATION SCIENCES
各回の進め方(第14回:01/09)
スケジュール:20分
グループでの到達度確認:5分
グループワーク内で開発について相談:15分
学生がやること
グループ内でワークシートの内容を確認する
グループ内で各自の進捗状況を確認する
第2チェックポイントに到達したか確認する
オプション機能について相談する
残りの作業や課題について確認する
17
18. TOKYO JOHO UNIVERSITYTOKYO UNIVERSITY OF INFORMATION SCIENCES
各回の進め方(第15回:01/16)
スケジュール:60分
最終確認:60分
学生がやること
最終チェックポイントの到達確認
システムの開発状況を教員・TAに確認してもらう
必要に応じて、実行画面やソースコードを確認してもらう
18