LoginSignup
2
1

More than 3 years have passed since last update.

ガチャのデータ設計-基本的構造1-

Last updated at Posted at 2020-05-12

内容

ガチャの基本的なデータ構造を考えてみます。

ガチャのデータ構造については、こちらも参照ください

Pythonで書くガチャ-データ設計-

必要なデータの種類

ゲームにおけるガチャの位置づけは、アイテムを入手する手段になります。
よって、基本構成としてガチャに必要なデータの種類は、ガチャ情報アイテム情報になります。

ガチャを行う際の最終的なデータ構造は、こちらのようになりますが、アイテムはガチャからは独立したゲームデータとして扱いたいので情報の管理は別々にして、ガチャ情報にアイテム情報の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では、これを拡張した形を解説します

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1