質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
RPG

RPG (Report Program Generator)とは、IBMの System i(AS/400)サーバ向けのプログラミング言語です。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

Q&A

解決済

3回答

16873閲覧

ゲームで利用するデータの構造について

退会済みユーザー

退会済みユーザー

総合スコア0

RPG

RPG (Report Program Generator)とは、IBMの System i(AS/400)サーバ向けのプログラミング言語です。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

0グッド

0クリップ

投稿2018/03/05 01:25

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つのデータベースに追加していくのが普通なのでしょうか?
サンプル等ありましたら教えて下さい。よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

極端な話、データベースは「何でもいい」です。
以下、雑多な所感です。


オンラインの場合はMySQL等のサーバーサイドのデータベースシステムを使うと思うので、そちらの学習をしてください。
(小規模であれば1台のデータベースに各種テーブルを持つ形でいいと思います)


オフラインの場合は、

  • サンプルのような形(ファイル形式はお好みで)
  • CSVにひたすら羅列
  • スクリプトから初期値として全部記入する
  • クラス作ってList作ってインスペクタで設定
  • ScriptableObjectを使用

などなど、お好きな方法でどうぞ。
↓ScriptableObjectやExcelを使う例
【Unity】ScriptableObjectを使用した、コンポーネント・シーン間でのデータ共有について - テラシュールブログ
【Unity】Excel Importer Maker、xlsxに対応 - テラシュールブログ


どちらの場合も暗号化・チート防止策は併せて考慮しておくといいと思います。

ゲーム内容によっては、ソシャゲのように「ソフトの更新はしないままイベントを増やしたい(変更したい)」ようなケースも考えられます。
その場合、データベース(にあたるシステム)をAssetBundleでどう管理するか?も考えておくとよいと思います。

また、ユーザー毎のデータはセーブシステムと関連する為、セーブの方法をどうするか検討した上で作ると後の手戻りが無くなります。

投稿2018/03/05 05:55

sakura_hana

総合スコア11427

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/03/08 02:37

回答ありがとうございます! オフラインとして考えていますが、最終的にはオンラインで 最新シナリオをロードして…等も考えております。 あぁ、いろんなテーブル(表)が集まって1つのデータベースになるんですね! そこからよく分かってませんでした。そうですね! >暗号化・チート防止策 そうですね!調べるしか方法は分からないですが 何か対応取らないと良くないですものね。 >・ソフトの更新はしないままイベントを増やしたい >データベース(にあたるシステム)をAssetBundleでどう管理するか?も考えておくとよいと思います。 AssetBundle聞いたことあります!聞いたことがあるってだけのレベルで申し訳ないです… ちゃんと調べて勉強します! >ユーザー毎のデータはセーブシステムと関連する為、 >セーブの方法をどうするか検討した上で作ると後の手戻りが無くなります データベースを利用する場合 ユーザー用のテーブルを作り、保存するっていうのはあまり良くないのでしょうか? やはり利便性というか、そういう話…ですかね 色々調べることができましたので、もう少し調べてみます! ありがとうございました!
sakura_hana

2018/03/08 04:16

> セーブシステム データベース(テーブル)使用でも問題無いと思いますが、利便性とチート対策と関連します。 例えば「コンフィグ(音量とか、変更されても問題無いもの)」だったらデータベース等ではなくPlayerPrefsを使っても特に問題は無いでしょうし、ハイスコアなど「ランキングとして共有する」ことが前提ならサーバーサイドに処理を任せてしまうという手もあります(それはそれでログイン情報をどう保存・維持するか検討が必要ですが)。 今回の件に限らず、Unityは1つの「やりたいこと」に対し実装方法が複数あるケースが多いので 常に「他のやり方はあるかな?」と気にするようにすると良いかもしれません。
guest

0

最初は簡単なアクションゲーム等作るのが良いのだとは思いますが

いきなりデータベースからではなく簡単なものを作って「作る」という感覚が身に付いてからの方が良いです。

データベースを利用する際もいきなり大きなものからではなく、
例えば単純にアイテムを管理するだけのもの、とかユーザーを管理するだけのもの、とか用途を限定して作るところから入った方が良いです。

いずれも、最初から大きなものに取り組むと、自身のスキルとのギャップが大きすぎて確実に・しかも早い段階でショートします。

投稿2018/03/05 02:34

m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/03/05 04:09

ありがとうございます! >最初から大きなものに取り組むと、自身のスキルとのギャップが大きすぎて確実に・しかも早い段階でショートします。 確かに。思い当たる節がありすぎて頭が痛いです。 段階を踏んで、1個ずつ作るべきってことですね!確かにそうです。 1段階ずつどのように組んでいくか考えて見ます^^
guest

0

直接の回答ではありませんが、失敗に学ぶこともスキルアップへの王道のひとつ。
ゲーム開発に着手する前に読んでおきたい資料集 開発者必読!ソーシャルゲーム開発の参考になるスライド10選

ちなみに、ここのサイトはさくら求人が多いです。

投稿2018/03/05 01:40

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/03/05 04:06

ありがとうございます! 似たようなスライドベースのものを見ていましたが もっと色々見ておいたほうが良さそうですね。見てみます! さくら求人とな…?
Orlofsky

2018/03/05 04:36

存在しない求人です。試しに1ヶ月間ずっと表示されてる求人に応募したら、その求人はサイトから削除され、応募確認のメールさえありません。数週間後まったく同じ求人が載ります。(笑)
退会済みユーザー

退会済みユーザー

2018/03/05 05:10

うわぁ……最悪ですね… なんのために載せてるんでしょうね?
Orlofsky

2018/03/05 06:30

使えそうな人材を登録させて、さくらではない案件が入ったら紹介するためでしょう。 効率はかなり悪そうですが。
sazi

2018/03/06 00:29

そのサイトは、このteratailと関連した企業ですね。
Orlofsky

2018/03/06 00:33

関連企業とは知りませんでした。少しはさくらが減ると良いですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問