内容
ガチャの基本的なデータ構造を考えてみます。
ガチャのデータ構造については、こちらも参照ください
必要なデータの種類
ゲームにおけるガチャの位置づけは、アイテムを入手する手段になります。
よって、基本構成としてガチャに必要なデータの種類は、ガチャ情報とアイテム情報になります。
ガチャを行う際の最終的なデータ構造は、*こちら*のようになりますが、アイテムはガチャからは独立したゲームデータとして扱いたいので情報の管理は別々にして、ガチャ情報にアイテム情報のIDを持たせる形で、データの関係性を設定することにします
アイテム情報
ガチャ情報が参照するアイテムを管理します。
名前はもちろんですが、レアリティはアイテムに設定されている項目になります。
ゲームらしく、属性(item_type)とHPも付け加えてみました。
items
| id | rarity | item_name | item_type | HP |
|---|---|---|---|---|
| 5101 | 5 | UR_勇者 | 1 | 1200 |
| 4201 | 4 | SSR_戦士 | 2 | 1000 |
| 4301 | 4 | SSR_魔法使い | 3 | 800 |
| 4401 | 4 | SSR_神官 | 4 | 800 |
| 3201 | 3 | SR_戦士 | 2 | 600 |
| 3301 | 3 | SR_魔法使い | 3 | 500 |
| 3401 | 3 | SR_神官 | 4 | 500 |
| 2201 | 2 | R_戦士 | 2 | 400 |
| 2301 | 2 | R_魔法使い | 3 | 300 |
| 2401 | 2 | R_神官 | 4 | 300 |
| 3199 | 3 | SR_勇者 | 1 | 600 |
レアリティ設定
レアリティIDに対応した名称を管理します。
rarity
| id | rarity_name |
|---|---|
| 5 | UR |
| 4 | SSR |
| 3 | SR |
| 2 | R |
| 1 | N |
アイテム属性設定
アイテム属性IDに対応した名称とスキルを管理します。
item_type
| id | name | skill |
|---|---|---|
| 1 | Brave | Bless |
| 2 | Fighter | Attack |
| 3 | Wizard | Sorcery |
| 4 | Priest | Heal |
ガチャ情報
ガチャアイテム確率情報
アイテム毎の確率を設定するためにガチャアイテム確率情報が必要になります。
item_idという項目によって、アイテム情報のidと紐付けされています。
gacha_items
| id | weight | item_id |
|---|---|---|
| 1 | 1 | 5101 |
| 2 | 9 | 4201 |
| 3 | 9 | 4301 |
| 4 | 9 | 4401 |
| 5 | 20 | 3201 |
| 6 | 20 | 3301 |
| 7 | 20 | 3401 |
| 8 | 40 | 2201 |
| 9 | 40 | 2301 |
| 10 | 40 | 2401 |
補足
レアリティを指定したガチャを行いたい場合は、ガチャアイテム確率情報のitem_idからアイテム情報を参照し、そのレアリティを用いて抽選対象に含めるかの判定を行います
ガチャ抽選情報
1回(単数)ガチャと11連ガチャ(10回+おまけ1回)の抽選の設定を管理します。
ガチャを実行する際には、このidを指定することにより引き方を区別します。
- times:抽選回数
- omake_rarity:おまけのレアリティ確定以上(0の場合は、おまけなし)
- cost:ガチャを行う際に必要なゲーム通貨消費量
gacha_lottery
| id | times | omake_rarity | cost |
|---|---|---|---|
| 1 | 1 | 0 | 10 |
| 2 | 10 | 3 | 100 |
まとめ(基本的構造1)
ガチャ情報とアイテム情報によってガチャを行うための必要な情報は揃いました。
基本的構造2では、これを拡張した形を解説します