SlideShare a Scribd company logo
1 of 27
ソシャゲーのバグ
傾向と対策
会社紹介と自己紹介
   さくらソフト
     技術に強いSAP



   上村国慶(カミムラクニヨシ)
     さくらソフトのエンジニア

     Microsoft
            MVP
     GSGLのメンター
Agenda
   バグの傾向と対策
   実装とテストの心構え
バグの傾向と対策
悪用禁止!
やり込み不足
   クエストで最後まで
   カード合成で最終レベルまで
やり込み不足(対策)
   DBを直接変更
ユーザデータの初期化
   デッキを編成する前にバトルを仕掛けられた
    ら?
     チュートリアル中でカードが1枚もなかったら?
ユーザデータの初期化(対策)
   腕の立つエンジニアによるレビュー
     ソースコード

     実際にプレイ
同時アクセス
   トレードの成立とキャンセル
   レイドボスへの攻撃
同時アクセス(対策)
   適切なDBロック
   プログラム言語でのロック
実行条件のチェック漏れ
   特定のURLにアクセスするとチートできる
   トレードに出したカードを、成立前に売った
    ら?
   ガチャポイント不足でも引ける
実行条件のチェック漏れ(対策)
   実行条件のチェック
     今から成立させるトレードはまだ有効?

     ガチャポイントは足りている?

   条件チェック→メイン処理→条件更新
     倒してないか?→倒したボーナス→倒したフラグ

   チェックロジックは一カ所にまとめる
パラメータ改ざん
   sell.xhtml?cardId=1
     他人のカードを勝手に売る
パラメータ改ざん(対策)
   改ざんされても問題のない実装
     売ろうとしているカードは自分のものか?
ブラウザバック
   ガチャで引いたカードが渡されるはず
     引いたカードを売ってからその画面に戻ってくる

   戻る・進む・再読み込み・ブックマーク
ブラウザバック(対策)
   特定の順序以外で実行される可能性を考慮
   キーに該当するデータが存在しない場合を考
    慮
   データが異なる状態になっている場合を考慮
データ移行
   スキーマ更新せずにプログラムだけ更新した
   チュートリアルの遷移を変更した際、チュー
    トリアル中の既存ユーザを迷子にした
データ移行(対策)
   デプロイ手順の確立
   サンドボックスにデプロイしてテスト
   KPIが急に変化していないか監視
確率での振り分け
   5%でレア度A、10%でB、・・・
     特定のレア度が出ない/出にくい/出過ぎる
確率での振り分け(対策)
   「確率での振り分け」をライブラリ化
   振り分けた結果はログに残す
プラットフォームAPI
   想定外の動作
     アンインストールや退会

     遅いAPIと5秒ルール

     APIサーバの障害

   規約違反
プラットフォームAPI(対策)
   ドキュメントを読む
   場数を踏む
実装とテストの心構え
経済的合理性を追求せよ
   完璧である必要はない
   命取りなバグ
     dupeなどは重点的にテスト

   バグったときの命綱
     アイテム配布やユーザへの告知がしやすい作り

   ユーザ=テスター
     発言内容を監視

     ログ・KPI・DBを監視
Be Creative!
さくらソフトで作りませんか?
   ディレクタ
   企画
   エンジニア
   アートディレクタ
   デザイナ
   その他何でも

More Related Content

Similar to ソシャゲーのバグ

チケット駆動開発をパターン言語で読み解く~「成功するプロジェクトのための開発基盤と手法」
チケット駆動開発をパターン言語で読み解く~「成功するプロジェクトのための開発基盤と手法」チケット駆動開発をパターン言語で読み解く~「成功するプロジェクトのための開発基盤と手法」
チケット駆動開発をパターン言語で読み解く~「成功するプロジェクトのための開発基盤と手法」akipii Oga
 
第4回品川Redmine勉強会資料「チケット駆動開発のフレームワーク~現場の経験知からパターン言語へ(ベータ版)」
第4回品川Redmine勉強会資料「チケット駆動開発のフレームワーク~現場の経験知からパターン言語へ(ベータ版)」第4回品川Redmine勉強会資料「チケット駆動開発のフレームワーク~現場の経験知からパターン言語へ(ベータ版)」
第4回品川Redmine勉強会資料「チケット駆動開発のフレームワーク~現場の経験知からパターン言語へ(ベータ版)」akipii Oga
 
Xp Terakoya No04
Xp Terakoya No04Xp Terakoya No04
Xp Terakoya No04takepu
 
テスト駆動ゲーム開発をJava scriptで実践 in jscafe20
テスト駆動ゲーム開発をJava scriptで実践  in jscafe20テスト駆動ゲーム開発をJava scriptで実践  in jscafe20
テスト駆動ゲーム開発をJava scriptで実践 in jscafe20Yuusuke Takeuchi
 
2D格闘ゲームにおけるユーザビリティとゲームデザインについて
2D格闘ゲームにおけるユーザビリティとゲームデザインについて2D格闘ゲームにおけるユーザビリティとゲームデザインについて
2D格闘ゲームにおけるユーザビリティとゲームデザインについてKoji Morikawa
 
Co-Simulation mechatronics and software
Co-Simulation mechatronics and softwareCo-Simulation mechatronics and software
Co-Simulation mechatronics and softwareKeiju Anada
 
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)Koichiro Matsuoka
 
なぜ自社で脆弱性診断を行うべきなのか
なぜ自社で脆弱性診断を行うべきなのかなぜ自社で脆弱性診断を行うべきなのか
なぜ自社で脆弱性診断を行うべきなのかSen Ueno
 
Redmineのチケット分類例
Redmineのチケット分類例Redmineのチケット分類例
Redmineのチケット分類例namamugi share
 
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)Developers Summit
 

Similar to ソシャゲーのバグ (11)

チケット駆動開発をパターン言語で読み解く~「成功するプロジェクトのための開発基盤と手法」
チケット駆動開発をパターン言語で読み解く~「成功するプロジェクトのための開発基盤と手法」チケット駆動開発をパターン言語で読み解く~「成功するプロジェクトのための開発基盤と手法」
チケット駆動開発をパターン言語で読み解く~「成功するプロジェクトのための開発基盤と手法」
 
第4回品川Redmine勉強会資料「チケット駆動開発のフレームワーク~現場の経験知からパターン言語へ(ベータ版)」
第4回品川Redmine勉強会資料「チケット駆動開発のフレームワーク~現場の経験知からパターン言語へ(ベータ版)」第4回品川Redmine勉強会資料「チケット駆動開発のフレームワーク~現場の経験知からパターン言語へ(ベータ版)」
第4回品川Redmine勉強会資料「チケット駆動開発のフレームワーク~現場の経験知からパターン言語へ(ベータ版)」
 
Xp Terakoya No04
Xp Terakoya No04Xp Terakoya No04
Xp Terakoya No04
 
テスト駆動ゲーム開発をJava scriptで実践 in jscafe20
テスト駆動ゲーム開発をJava scriptで実践  in jscafe20テスト駆動ゲーム開発をJava scriptで実践  in jscafe20
テスト駆動ゲーム開発をJava scriptで実践 in jscafe20
 
2D格闘ゲームにおけるユーザビリティとゲームデザインについて
2D格闘ゲームにおけるユーザビリティとゲームデザインについて2D格闘ゲームにおけるユーザビリティとゲームデザインについて
2D格闘ゲームにおけるユーザビリティとゲームデザインについて
 
Co-Simulation mechatronics and software
Co-Simulation mechatronics and softwareCo-Simulation mechatronics and software
Co-Simulation mechatronics and software
 
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
 
なぜ自社で脆弱性診断を行うべきなのか
なぜ自社で脆弱性診断を行うべきなのかなぜ自社で脆弱性診断を行うべきなのか
なぜ自社で脆弱性診断を行うべきなのか
 
Redmineのチケット分類例
Redmineのチケット分類例Redmineのチケット分類例
Redmineのチケット分類例
 
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
 
QA improvement
QA improvementQA improvement
QA improvement
 

Recently uploaded

【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 

Recently uploaded (14)

【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 

ソシャゲーのバグ