デブサミ2019 2日目(02/15)メモ 10:00〜 ドラゴンクエストXを支える失敗事例
- 個人スポンサー席満席?
- 立ち見あり
開始前にコンドーさん(翔泳社)の挨拶
- 2日続けて参加してる人がそこそこ多い
スクエニ青山さん
オンラインサービスはリリース後が本番
- 運用、運営
良い設計
- 要件を満たしているのが前提
- 経験からくる
DQ10は6年半やってる
- 痛い目見ないとわからない部分もある
組織によって解は違う
-
- MOとの対比→MOはホスト(ロビー?)あり
詳細は本見てね
運営、運用が重要
- 運営→攻め→イベントとか→柔軟性
- 運用→守り→不具合対応とか→継続性
失敗事例
その1 スキル(?)を使った時の効果音が鳴り続けたり、ノイズがある「場合がある」。
redmineを使っている
その2 パーティーのオートマッチングが行われない「場合がある」
- 邪神の迷宮(?) 8人パーティーで進めるダンジョン
- エリアが複数あり、エリアによってマッチングに参加できる条件が異なる。
- 条件は月2回(?)自動で更新(変更)される
- プログラマ、デザイナー、プランナーがいて、条件はプランナーが決めている。(って言ってたと思う。うろ覚え)
- 条件判定はクライアントで一次チェックが行われてからサーバーで最終チェックしている
- 一次チェックがOKで最終チェックがNGだった
- サーバー側にハードコードされた条件判定処理があった
- 以前のアップデートで条件のデータフォーマット変更があった
- リリースタイミングが微妙だったので、一旦暫定対処としてハードコードした。
- 該当ダンジョンのデータが新フォーマットで、システムがまだ旧フォーマット対応だった?
- リリースタイミングが微妙だったので、一旦暫定対処としてハードコードした。
- 以前のアップデートで条件のデータフォーマット変更があった
- 教訓
- 暫定対応は本対応するまでチケットを残そう
その3 釣りで釣った魚(魚じゃないのもある)のサイズ誤判定
- 釣れるものは123種類
- 釣りの処理はC++とLuaで実装されている
- 1023mm以上だとビッグサイズ、1022mm以下だとノーマルサイズ。
- Lua部分で1000で割ってmをmmにする処理の誤差で1023mmのものが1022mmと誤判定されてた
- 割る前に補正処理が入っていたけど割るところでNG
- ぱっと見であってそうだったからスルーしてしまった
- 急に起きた
- データ作るところで1023mmになるはずのものが1022mmになってしまった
- ダブルマスタ(再計算を避ける為にマスタデータを複数持っていた)のズレ
- 別の不具合も影響して起きた
- データ作るところで1023mmになるはずのものが1022mmになってしまった
- Lua部分で1000で割ってmをmmにする処理の誤差で1023mmのものが1022mmと誤判定されてた
- 魚(?)を交換してしまった人をログ等から探して個別に対応した(スクリプトでデータ修正)
- 教訓
- 表面化していないバグがあるものと思え
考察
- 影響範囲を明確に
- ちゃんとチケットを登録してクローズまで持っていく
- どうやったら防げたか?
- チケットを登録していないものが大部分
- 影響ないだろうと軽視しがち
- チケットを登録していないものが大部分
- チケット200000ぐらい(不具合以外のタスクも含めて)
QA
- 開発体制はどれくらいの人数でやっている?
- 具体的な数字の公表はNG
- 人事から止められている(コスト等がバレてしまう?)
- スタッフロールには数百名の名前が
- 具体的な数字の公表はNG
- 影響範囲を特定する方法は?
- 個別に見る
- 個々の経験値に依存(あまり良くない)
- チケットに登録されない理由は?
- (担当者が)登録するまでもないと思ってしまう
- 勘違い
- 大部分はできているがたまーに漏れてしまう感じ
- タスクが多い中、モチベはどう保つ?
- 飽きて辞める人もいる
- チーム内の異動はある
- 開発体制はどれくらいの人数でやっている?
雑感
- ゲーム固有の話は少なめで一般的な話が主だったかなぁという印象