質問: Unityでゲームを作ろうと思っています。 最初は簡単なアクションゲーム等作るのが良いのだとは思いますが 最終的にデータベースを利用するくらいのものを作ろうと思っているため データベースから作ろうと思っています。 Unityが全然関係ないのかもしれませんが、 このデータをどのように作成するのが良いのか分かりません。 RPGを作成する場合だと、データベースを使うことが多いように思いますが よく分からないのです。 1.システムデータベース (変動しない、決まったもの) 2.可変データベース (ステータスやレベル、その他イベントでの会話文など) 3.ユーザーデータベース (ユーザーごとのデータ) もしかしたら、可変データベースとユーザーデータベースは同じものかもしれません。 このデータベースをそれぞれ作り、参照して完成するのだと思いますが 作ろうと思うと大量のデータベース(?)が必要になるために サンプルが無いか探していました。 以下が出てきたので、参考にします。 キャラ場所表 | イベント | キャラ | 場所 | 状況 | 台詞 | 好感度 | | --- | --- | --- | --- | --- | --- | | 1 | キャラA | 公園 | デート | 「やっと来たんだ~」 | 10% | | 2 | キャラB | 公園 | 偶然 | 「お、増田くんじゃん♪」 | 50% | | 3 | キャラC | 遊園地 | デート | 「おっそーい!」 | 5% | アイテム表(好感度100%とかの記載は、数式等を入れる予定です) | ID | アイテム | 場所 | 状況 | 効果 | プラス | マイナス | | --- | --- | --- | --- | --- | --- | --- | | 1 | ほれ薬 | 自宅 | 特になし | 好感度100% | 選択キャラの好感度100% | 他キャラの好感度0% | | 2 | 正露丸 | 自宅 | 腹痛 | 下痢がおさまる | トイレの待機時間が5分減る | 食欲5ダウン | データベースは上記のような作り方で良いのでしょうか? それとも、1つのデータベースに追加していくのが普通なのでしょうか? サンプル等ありましたら教えて下さい。よろしくお願いいたします。
回答: 極端な話、データベースは「何でもいい」です。 以下、雑多な所感です。 オンラインの場合はMySQL等のサーバーサイドのデータベースシステムを使うと思うので、そちらの学習をしてください。 (小規模であれば1台のデータベースに各種テーブルを持つ形でいいと思います) オフラインの場合は、 * サンプルのような形(ファイル形式はお好みで) * CSVにひたすら羅列 * スクリプトから初期値として全部記入する * クラス作ってList作ってインスペクタで設定 * ScriptableObjectを使用 などなど、お好きな方法でどうぞ。 ↓ScriptableObjectやExcelを使う例 【Unity】ScriptableObjectを使用した、コンポーネント・シーン間でのデータ共有について - テラシュールブログ 【Unity】Excel Importer Maker、xlsxに対応 - テラシュールブログ どちらの場合も暗号化・チート防止策は併せて考慮しておくといいと思います。 ゲーム内容によっては、ソシャゲのように「ソフトの更新はしないままイベントを増やしたい(変更したい)」ようなケースも考えられます。 その場合、データベース(にあたるシステム)をAssetBundleでどう管理するか?も考えておくとよいと思います。 また、ユーザー毎のデータはセーブシステムと関連する為、セーブの方法をどうするか検討した上で作ると後の手戻りが無くなります。