18. Copyright Drecom Co., Ltd. All Rights Reserved.
詳しいこと
● フライングゲットガチャ セミナー資料
○ http://www.slideshare.net/drecom/drecom-20140225-
seminar-31882381
● 【ドリコムセミナーレポート】『フライングゲットガチャ』はなぜ成
功したのか? マーケティング担当者がその秘訣を語る。 |
Social Game Info
○ http://gamebiz.jp/?p=127470
19. Copyright Drecom Co., Ltd. All Rights Reserved.
メンバー
● 開発 x 1
○ sue445(サーバ周り全部)
○ ガチャ演出周りで助っ人(2週間くらい)
● デザイン x 1
○ 絵とコーディング回り
● 企画 x 1
● 開発計1ヶ月弱くらい
○ 途中で仕様変更が何回もあったので実開発は2週間くら
い
21. Copyright Drecom Co., Ltd. All Rights Reserved.
本番環境の構成
● web x 2
○ redisあいのり(redis 2.6.16)
○ それぞれにredis入れてVIPでアクセス(後述)
● db x 2 (fioではなく普通のHDD)
○ MySQL Percona server
● cache x 2
○ 最初はwebにmemcache同居だったけどメモリ的に厳し
かったので途中で追加してもらった
● いずれもCentOS 6
● 負荷が読めないのでとりあえずミニマムスタートしてみたが
割となんとかなった
22. Copyright Drecom Co., Ltd. All Rights Reserved.
よくあるKVS構成
web-xx web-xx job-xx job-xx
redis-01
(Master)
redis-02
(Slave)
VIP
23. Copyright Drecom Co., Ltd. All Rights Reserved.
フラゲガチャのKVS構成(サーバ節約)
web-02
VIP
web-01
redis(M) redis(S)
自分自身にVIPをつけるこ
とで最低限の台数でHA構
成を構築
38. Copyright Drecom Co., Ltd. All Rights Reserved.
画面表示でSELECTすらしてないwww
redis counter
redis counter
redis counter
redis counter
(with expire)
39. Copyright Drecom Co., Ltd. All Rights Reserved.
ガチャ回す時は3種類のカウンタを同時に増やす
全員の総回
転数++
自分の回転数++
1ターム内のガチャ回数++
40. Copyright Drecom Co., Ltd. All Rights Reserved.
MySQL使ってるのはたったこれだけ
● ユーザ認証
○ 認証後にtwitterのaccess tokenをユーザマスタに入れる
● POSTする時にcurrent userでロック(SELECT ~ FOR
UPDATE)
○ パワーアタック系のチート対策
○ 1ユーザで複数同時に処理を走らせない
● ユニット確定時に報酬レコードをINSERTする
41. Copyright Drecom Co., Ltd. All Rights Reserved.
よくあるガチャのテーブル構成(適当)
users
user_car
ds
gacha_car
ds
1 n
n 1
cards
gachas
gacha_his
tories
1 n
n
1
n 1
1
n
n 1
42. Copyright Drecom Co., Ltd. All Rights Reserved.
リセマラガチャのテーブル構成
users
user_rewa
rds
rewards
1 n n 1
● rewards = cards + gachas
○ 今回はガチャ1つしかやらないので分ける必要もなかった
○ rewardsをガチャの度に全件取得するコストが心配だった
が、ガチャで使う最低限のカラムしかないため余裕だった
● ガチャ履歴もログに出してfluentdで送るようにしたのでガ
チャのhistoryテーブルも不要