Home
Explore
Submit Search
Upload
Login
Signup
Advertisement
Check these out next
TerraSky Power Night Dreamforce'17 Feedback "myIoT"
Junji Imaoka
Archtect meetup sharing_territory_20190801
Ikou Sanuki
JSX の現在と未来 - Oct 26 2013
Kazuho Oku
AWS Black Belt Online Seminar 2018 Amazon Sumerian
Amazon Web Services Japan
Alexa-hostedスキルを使って 最速でオウム返しスキルを作る
虎の穴 開発室
「電車でGO!!」アーケード大型3画面筐体で実在の街並みを表現するUE4開発事例
エピック・ゲームズ・ジャパン Epic Games Japan
大きな組織にスクラムの輪を広げていくために
Tomonori Fukuta
if-up 2019 | A2. クラウドにつながり始めたハードウェア
SORACOM,INC
1
of
157
Top clipped slide
【15-A-1】ドラゴンクエストXを支える失敗事例
Feb. 21, 2019
•
0 likes
9 likes
×
Be the first to like this
Show More
•
8,212 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Download Now
Download to read offline
Report
Technology
Developers Summit 2019【15-A-1】青山様の講演資料です。
Developers Summit
Follow
Developers Summit
Advertisement
Advertisement
Advertisement
Recommended
Game Creators Conference 2019 Koichi Miura
Koichi Miura
12.1K views
•
143 slides
強化学習を利用した自律型GameAIの取り組み ~高速自動プレイによるステージ設計支援~ #denatechcon
DeNA
7.5K views
•
70 slides
Regional Scrum Gathering Tokyo 2023 Keiji Kikuchi Remote Mobbing
Keiji Kikuchi
28 views
•
94 slides
誰でもできるGoogleアシスタント開発
Namito Satoyama
3.9K views
•
73 slides
ああ、素晴らしきTDD ~アプリとエンジニアの心に安寧を~
Saiki Iijima
8.2K views
•
102 slides
[ギルドワークス社イベント]〜DXを実現するためにユーザ企業とSI企業が今すぐとるべき3つのステップ〜(ボーナス版)
Shigeki Morizane
993 views
•
94 slides
More Related Content
Similar to 【15-A-1】ドラゴンクエストXを支える失敗事例
(11)
TerraSky Power Night Dreamforce'17 Feedback "myIoT"
Junji Imaoka
•
1.7K views
Archtect meetup sharing_territory_20190801
Ikou Sanuki
•
589 views
JSX の現在と未来 - Oct 26 2013
Kazuho Oku
•
8.2K views
AWS Black Belt Online Seminar 2018 Amazon Sumerian
Amazon Web Services Japan
•
4.7K views
Alexa-hostedスキルを使って 最速でオウム返しスキルを作る
虎の穴 開発室
•
132 views
「電車でGO!!」アーケード大型3画面筐体で実在の街並みを表現するUE4開発事例
エピック・ゲームズ・ジャパン Epic Games Japan
•
12.3K views
大きな組織にスクラムの輪を広げていくために
Tomonori Fukuta
•
4.1K views
if-up 2019 | A2. クラウドにつながり始めたハードウェア
SORACOM,INC
•
1.1K views
Gdc igdaj2019 satoi
IGDA JAPAN
•
3.4K views
DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)
Toshiharu Sugiyama
•
15.1K views
20180613 AWS Black Belt Online Seminar AWS Cloud9 入門
Amazon Web Services Japan
•
11K views
More from Developers Summit
(20)
【18-A-2】ゲーミフィケーション・エバンジェリストが見る「あなたの技術力が“ワクワクするサービス”に変わる未来」
Developers Summit
•
1.4K views
【C-2・小林様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~
Developers Summit
•
807 views
【C-2・醍醐様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~
Developers Summit
•
348 views
【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる
Developers Summit
•
881 views
【B-6】Androidスマホの生体認証の脆弱性、調べてみたらよくある話だった。
Developers Summit
•
1K views
【13-B-6】Hondaの生産技術屋さんがソフトウェア開発でアジャイルを初導入し組織変革に挑戦
Developers Summit
•
2.4K views
【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール
Developers Summit
•
1.7K views
【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール
Developers Summit
•
1.2K views
【14-E-3】セキュリティ・テストの自動化によるDevSecOpsの実現 (デモ有)
Developers Summit
•
955 views
【15-D-2】デンソーのMaaS開発~アジャイル開発で顧客との協調・チームビルディング・実装概要~
Developers Summit
•
18K views
【14-C-8】みんなの暮らしを支えるAmazon S3の裏側、お伝えします
Developers Summit
•
1.3K views
【14-C-7】コンピュータビジョンを支える深層学習技術の新潮流
Developers Summit
•
2.6K views
【15-B-7】無意味なアラートからの脱却 ~ Datadogを使ってモダンなモニタリングを始めよう ~
Developers Summit
•
3.1K views
【15-A-5】ゲーミフィケーションエバンジェリストが説く、アプリ開発で見落としがちな「おもてなし」とは~面白さを伝える × 面白く魅せる~
Developers Summit
•
1.6K views
【B-2】福岡発Node.jsで支える大規模システム!〜「誰ガ為のアルケミスト」と歩んだ三年〜
Developers Summit
•
1K views
【B-5】モダンな開発を実現するツールチェーンのご紹介
Developers Summit
•
719 views
【C-2】メモリも、僕のキャパシティも溢れっぱなし。。2年目エンジニアが実現した機械学習
Developers Summit
•
545 views
【A-2】とあるマーケティング部隊とデータエンジニアのデータドリブンへの道
Developers Summit
•
678 views
【B-2】AI時代におけるエンジニアの生存戦略
Developers Summit
•
878 views
【B-2】AI時代のエンジニア生存戦略
Developers Summit
•
693 views
Advertisement
Recently uploaded
(20)
通信プロトコルについて
iPride Co., Ltd.
•
6 views
【2023年5月】平成生まれのためのUNIX&IT歴史講座
法林浩之
•
16 views
統計学の攻略_推測統計学の考え方.pdf
akipii Oga
•
209 views
【DL輪読会】大量API・ツールの扱いに特化したLLM
Deep Learning JP
•
53 views
ネットワークパケットブローカー市場.pdf
HinaMiyazu
•
7 views
20230523_IoTLT_vol99_kitazaki_v1.pdf
Ayachika Kitazaki
•
110 views
HTTPの仕組みについて
iPride Co., Ltd.
•
8 views
オレオレになりがちなテスト計画を見直した話
terahide
•
36 views
TestSIP (1).pdf
DeependraSingh712859
•
2 views
JSTQB_テストマネジメントとレビュープロセス.pdf
akipii Oga
•
175 views
ChatGPT触ってみた
infinite_loop
•
56 views
Omnis
DaisukeFujita10
•
20 views
ヘッドレス化したbaserCMS5とその機能
Ryuji Egashira
•
10 views
Windows ChatGPT Bing AI.pptx
Atomu Hidaka
•
6 views
CDLEハッカソン2022参加報告.pdf
SHOIWA1
•
9 views
Forguncy製品概要.pptx
フォーガンシー
•
58 views
【DL輪読会】DINOv2: Learning Robust Visual Features without Supervision
Deep Learning JP
•
34 views
Oracle Cloud Infrastructure:2023年5月度サービス・アップデート
オラクルエンジニア通信
•
31 views
JSONEncoderで詰まった話
とん とんぼ
•
102 views
【DL輪読会】Poisoning Language Models During Instruction Tuning Instruction Tuning...
Deep Learning JP
•
73 views
【15-A-1】ドラゴンクエストXを支える失敗事例
ドラゴンクエストXを支える失敗事例 株式会社スクウェア・エニックス 青山 公士 ドラゴンクエストXを支える失敗事例 ©
2019 SQUARE ENIX CO., LTD. All Rights Reserved.
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 目次 自己紹介 本セッションについて ドラゴンクエストXとは 開発ポリシー 失敗事例(3つ) まとめ
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 目次 自己紹介 本セッションについて ドラゴンクエストXとは 開発ポリシー 失敗事例(3つ) まとめ
株式会社スクウェア・エニックス 第6ビジネス・ディビジョン アオ ヤマ コウ
ジ 青山 公士 ドラゴンクエストXを支える失敗事例 © 2019 SQUARE ENIX CO., LTD. All Rights Reserved. 自己紹介
テン 「ドラゴンクエストXを支える技術 -大規模オンラインRPGの舞台裏」 著者 ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 自己紹介
テン 「ドラゴンクエストXを支える技術 -大規模オンラインRPGの舞台裏」 著者 ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 自己紹介 今回はこの流れで お声がけいただきました
テン 「ドラゴンクエストX オンライン」 プロデューサー 責任者 ドラゴンクエストXを支える失敗事例 ©
2019 SQUARE ENIX CO., LTD. All Rights Reserved. 自己紹介
テン 「ドラゴンクエストX オンライン」 プロデューサー 責任者 ドラゴンクエストXを支える失敗事例 ©
2019 SQUARE ENIX CO., LTD. All Rights Reserved. 自己紹介 こっちが本業
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 自己紹介 遡ると… 「ドラゴンクエストX」テクニカルディレクター 「PlayOnline」ディレクター、プログラマー (他ゲーム会社)ディレクター、メインプログラマー 一つ前の本業
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 目次 自己紹介 本セッションについて ドラゴンクエストXとは 開発ポリシー 失敗事例(3つ) まとめ
本題に入る前に 本セッションを活かして欲しい部分 についてご説明します ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 本セッションについて
「ドラゴンクエストX オンライン」は オンラインゲームです (後ほどもう少し詳細に解説します) ドラゴンクエストXを支える失敗事例 ©
2019 SQUARE ENIX CO., LTD. All Rights Reserved. 本セッションについて
オンラインゲーム ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 本セッションについて オンラインサービス
オンラインサービスは リリース後の運営・運用が本番! と言っても過言ではありません ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 本セッションについて
開発・検証 運営・運用 ドラゴンクエストXを支える失敗事例 ©
2019 SQUARE ENIX CO., LTD. All Rights Reserved. 本セッションについて リリース フィードバック
開発・検証 運営・運用 ドラゴンクエストXを支える失敗事例 ©
2019 SQUARE ENIX CO., LTD. All Rights Reserved. 本セッションについて リリース フィードバック リリースは 完了ではなく
開発・検証 運営・運用 ドラゴンクエストXを支える失敗事例 ©
2019 SQUARE ENIX CO., LTD. All Rights Reserved. 本セッションについて リリース フィードバック お客さま対応の 始まりです
開発・検証 運営・運用 ドラゴンクエストXを支える失敗事例 ©
2019 SQUARE ENIX CO., LTD. All Rights Reserved. 本セッションについて リリース フィードバック その際 良い設計&実装なら 対応しやすいです
良い設計&実装 ・要望への対応が柔軟 ・不具合が出づらい ・不具合が出ても修正しやすい (仕様が実現できる前提でのプラスアルファ) ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 本セッションについて
開発・検証 運営・運用 ドラゴンクエストXを支える失敗事例 ©
2019 SQUARE ENIX CO., LTD. All Rights Reserved. 本セッションについて リリース フィードバック そのために重要になるのが 運営・運用経験です
こういう改修要望が来た! →柔軟な対応を可能に こういう不具合が出た! →同様の不具合が出ないように or 早期発見&修正できるように ドラゴンクエストXを支える失敗事例 ©
2019 SQUARE ENIX CO., LTD. All Rights Reserved. 本セッションについて
ドラゴンクエストXでは これまで多くの事例に対応し その経験に支えられて 開発・運営をしています ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 本セッションについて
多くの事例を経験している人が 開発することが望ましいですが ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 本セッションについて
現実的には難しいので 他者の事例を共有する ことも重要と考えます ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 本セッションについて
開発・検証 運営・運用 ドラゴンクエストXを支える失敗事例 ©
2019 SQUARE ENIX CO., LTD. All Rights Reserved. 本セッションについて リリース フィードバック 本セッションでは 運営・運用中に発生した 失敗事例を中心に ご紹介しますので
皆さんの経験値の一部に なれば幸いです ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 本セッションについて
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 目次 自己紹介 本セッションについて ドラゴンクエストXとは 開発ポリシー 失敗事例(3つ) まとめ
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. ドラゴンクエストXとは 「ドラゴンクエストX オンライン」は オンラインゲームです 現時点で約6年半運営しています
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. ドラゴンクエストXとは より専門的には MMORPG に分類されます
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. ドラゴンクエストXとは より専門的には MMORPG に分類されます ロール プレイング ゲーム Role Playing Game というゲームジャンル
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. ドラゴンクエストXとは より専門的には MMORPG に分類されます 大規模多人数参加型オンラインゲーム Massively Multiplayer Online Game
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. ドラゴンクエストXとは MMO MO (参考) ゲームサーバ ゲームクライアント ゲームクライアントゲームクライアント ゲームクライアント ゲームクライアント ゲームクライアントゲームクライアントゲームクライアント ゲームクライアント ゲームクライアントゲームクライアントゲームクライアント (ホスト)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. ドラゴンクエストXとは ゲームサーバ ゲームクライアント ゲームクライアントゲームクライアントゲームクライアント ゲームクライアント ゲームクライアントゲームクライアントゲームクライアント ゲームDB 見た目上の本体 真の本体 世界のデータ
本節では当セッションに関連する MMORPGのアーキテクチャのみ 紹介しました ドラゴンクエストXの特徴は 著書を参考にしてください ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. ドラゴンクエストXとは
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 目次 自己紹介 本セッションについて ドラゴンクエストXとは 開発ポリシー 失敗事例(4つ) まとめ
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. ドラゴンクエストXでは開発初期から 運営・運用が重要という想定があります 開発ポリシー
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 運営 運用 開発ポリシー 本セッションにおける 運営と運用は
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 運営=仕掛け(攻め) ※機能拡張・期間限定イベント等 運用=保守(守り) ※不具合修正・障害対応など等 開発ポリシー
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 運営=仕掛け(攻め) ※機能拡張・期間限定イベント等 →柔軟性が重要 運用=保守(守り) ※不具合修正・障害対応など等 →継続性が重要 開発ポリシー
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 開発ポリシー例 「一箇所に集約すべし」 (例)配列ループ char buf[256]; for ( int i = 0; i < 256 ; i++ ) … 開発ポリシー 同じ意味はdefineして使う
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 目次 自己紹介 本セッションについて ドラゴンクエストXとは 開発ポリシー 失敗事例(3つ) まとめ
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. これから失敗事例を3つ共有します 失敗事例
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 失敗事例 実際の告知内容 不具合の内容 原因と対応 得られた教訓
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 失敗事例その1 失敗事例(1/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 不具合告知内容 「キラージャグリング」「ゴッドジャグリン グ」の効果音が鳴り続いたり、ノイズが発生 することがある。 失敗事例(1/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 「キラージャグリング」 「ゴッドジャグリング」 は戦闘中の攻撃スキルで 複数回ダメージを与えます 失敗事例(1/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. ある更新から突然 演出完了後も時々 効果音が止まらずに 鳴り続けるようになった 不具合です 失敗事例(1/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 不具合の技術的な背景 失敗事例(1/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. ゲームサーバ ゲームクライアント ゲームクライアントゲームクライアントゲームクライアント ゲームクライアント ゲームクライアントゲームクライアントゲームクライアント ゲームDB 見た目上の本体 真の本体 世界のデータ 失敗事例(1/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 失敗事例(1/3) エフェクト
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. エフェクトは 視覚効果を演出します 失敗事例(1/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. ドラゴンクエストXでは 表示形状、速度、加速度等 各種パラメータが設定された データに基づいて動きます 失敗事例(1/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 効果音の発音も エフェクトデータで 制御できます 失敗事例(1/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 戦闘スキルの効果音設定 失敗事例(1/3) アクション音 発音 ヒット音 発音 (剣を振る音) (敵に当たる音) デザイナー作成のデータで指定された タイミングでC++処理が実施されます
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 不具合が発生したエフェクトの効果音設定 失敗事例(1/3) アクション音 発音 効果音 停止 ヒット音 発音 (アクション音が継続型のため停止が必要)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 不具合の直接的な原因 失敗事例(1/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 不具合告知内容(再掲) 「キラージャグリング」「ゴッドジャグリン グ」の効果音が鳴り続いたり、ノイズが発生 することがある。 失敗事例(1/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 失敗事例(1/3) アクション音 発音 効果音 停止 ヒット音 発音 効果音 停止 ミス音 発音 (実際にはこの形でした)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 失敗事例(1/3) アクション音 発音 効果音 停止 ヒット音 発音 効果音 停止 ミス音 発音 (データの変更はありませんでしたが ※あるある)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 失敗事例(1/3) アクション音 発音 効果音 停止 ヒット音 発音 効果音 停止 ミス音 発音 ミス時の効果音停止が C++プログラムで無効化 されていました
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. なぜ? 失敗事例(1/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 問題の更新より前の 内部検証で発覚した ある別の戦闘スキルの 不具合修正によるエンバグ でした 失敗事例(1/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 失敗事例(1/3) アクション音 発音 効果音 停止 ヒット音 発音 効果音 停止 ミス音 発音 別の戦闘スキルのエフェクトの効果音設定
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 失敗事例(1/3) アクション音 発音 効果音 停止 ヒット音 発音 効果音 停止 ミス音 発音 別の戦闘スキルのエフェクトの効果音設定 ミス時に効果音を停止すると 不具合になることが 内部検証で発覚し
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 開発ポリシーを鑑みて • 他にも同様の問題があるかも知れないから システムで対応しよう! • 意味的にもミス時は効果音を止めないべき じゃね? という判断になり 失敗事例(1/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 「ミス時の効果音停止をC++で無効化」 したのが今回の不具合の原因です 失敗事例(1/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 発覚後の対応 失敗事例(1/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 失敗事例(1/3) アクション音 発音 効果音 停止 ヒット音 発音 効果音 停止 ミス音 発音 内部検証で不具合が指摘されたエフェクトデータ
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 失敗事例(1/3) アクション音 発音 効果音 停止 ヒット音 発音 効果音 停止 ミス音 発音 内部検証で不具合が指摘されたエフェクトデータ 専用処理に変更しました
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. • 他にも同様の問題があるかも知れないから システムで対応しよう! → 個別対応へ • 意味的にもミス時は効果音を止めないべき じゃね? → 間違い 失敗事例(1/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 得られた教訓 失敗事例(1/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. • システム改修はBTSチケットに影響範囲を 明記し全影響範囲を再検証すべし • 影響範囲は極力狭くすべし 失敗事例(1/3) 教訓
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 失敗事例その2 失敗事例(2/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 不具合告知内容 6月10日(土)6:00の更新以降「邪神の宮殿」 にて、『同盟の仲間を自動で探す』を選択し ても、パーティが組まれない場合がある。 失敗事例(2/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 「邪神の宮殿」は 8人が協力して 強い敵と戦う コンテンツです 失敗事例(2/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 『同盟の仲間を自動で探す』 というオートマッチング機能 があり 失敗事例(2/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 参加希望者8人で 自動的に同盟を組みます 失敗事例(2/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 参加希望者が多数いても 同盟が成立しない というのが本不具合です。 失敗事例(2/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 不具合の技術的な背景 失敗事例(2/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 邪神の宮殿の 戦闘エリアは 複数あり 失敗事例(2/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 失敗事例(2/3) 例えば「封剣の門・三獄」には
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. このような参加条件が 設定されています。 失敗事例(2/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 失敗事例(2/3) ドラゴンクエストXの世界には 「戦士」「魔法使い」など複数の 職業があり転職が可能です
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 失敗事例(2/3) 今回は「占い師」に転職して 挑戦することを意味します
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 不具合告知内容(再掲) 6月10日(土)6:00の更新以降「邪神の宮殿」 にて、『同盟の仲間を自動で探す』を選択し ても、パーティが組まれない場合がある。 失敗事例(2/3) 毎月10日と25日の朝6時(JST)に 条件が自動更新されます
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 不具合告知内容(再掲) 6月10日(土)6:00の更新以降「邪神の宮殿」 にて、『同盟の仲間を自動で探す』を選択し ても、パーティが組まれない場合がある。 失敗事例(2/3) この日の更新から条件不成立になりました
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 不具合の直接的な原因 失敗事例(2/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. • 条件はプランナー作成のデータで設定されて います • 問題になりそうなデータはありませんでした 失敗事例(2/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 失敗事例(2/3) しかしゲームサーバにこんなソースがっ! if ( 6月10日更新分 && 封剣の門・三獄 ) { 条件べた書き※データと異なる }
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. ゲームサーバ ゲームクライアント ゲームクライアントゲームクライアントゲームクライアント ゲームクライアント ゲームクライアントゲームクライアントゲームクライアント ゲームDB 一次チェック (操作性向上) 最終チェック (チート対策) 失敗事例(2/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. ゲームサーバ ゲームクライアント ゲームクライアントゲームクライアントゲームクライアント ゲームクライアント ゲームクライアントゲームクライアントゲームクライアント ゲームDB データで設定 された条件 プログラムで設定 された条件 失敗事例(2/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. ゲームサーバ ゲームクライアント ゲームクライアントゲームクライアントゲームクライアント ゲームクライアント ゲームクライアントゲームクライアントゲームクライアント ゲームDB データで設定 された条件 プログラムで設定 された条件 失敗事例(2/3) 全部不成立!
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 不具合告知内容(再掲) 6月10日(土)6:00の更新以降「邪神の宮殿」 にて、『同盟の仲間を自動で探す』を選択し ても、パーティが組まれない場合がある。 失敗事例(2/3) 獄による
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. なぜこのソースが? 失敗事例(2/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 遡ることちょうど1年… 失敗事例(2/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 邪神の宮殿 マッチング条件 データフォーマット ver. X 邪神の宮殿 マッチング条件 データフォーマット ver. Y データフォーマットを変更しました 失敗事例(2/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 邪神の宮殿 マッチング条件 データフォーマット ver. X 邪神の宮殿 マッチング条件 データフォーマット ver. Y 運用中のオンラインサービスでは シームレスな移行が重要ですが 失敗事例(2/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 邪神の宮殿 マッチング条件 データフォーマット ver. X 邪神の宮殿 マッチング条件 データフォーマット ver. Y 移行のリリースタイミングが微妙なため および全体への影響を避けるため 失敗事例(2/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 邪神の宮殿 マッチング条件 データフォーマット ver. X 邪神の宮殿 マッチング条件 データフォーマット ver. Y (1年前の)6月分の条件は暫定的に ソースにべた書きすることにしました 失敗事例(2/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. その暫定べた書きソースを消し忘れて 1年後に不具合発生というオチでした 失敗事例(2/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 得られた教訓 失敗事例(2/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. • 暫定対応は本対応完了までを BTSチケットで管理すべし 失敗事例(2/3) 教訓
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 失敗事例その3 失敗事例(3/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 不具合告知内容 釣りにて、「オウムガイ」のビッグサイズや キングサイズを釣ったのに、釣り老師や魚交 換員から、ビッグサイズはノーマルサイズ、 キングサイズはビッグサイズとして扱われる ことがある。 失敗事例(3/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. ドラゴンクエストXでは 釣りができます 失敗事例(3/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 魚には個々に大きさ(cm)があり それに応じてサイズが キング/ビッグ/ノーマル に分類されます 失敗事例(3/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 「オウムガイ」も釣れます ※釣れる魚(?)は現時点で123種類 失敗事例(3/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 魚に分類されないものも釣れますが 本セッションでは便宜上 釣れるものを「魚」と呼びます 失敗事例(3/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 失敗事例(3/3) 魚を釣った後 「釣り老師」 と話すと
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 失敗事例(3/3) そのサイズに対応した 報酬がもらえます
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 失敗事例(3/3) 本件はその際 ビッグサイズの魚なのに ノーマルサイズと判定される という不具合です
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 不具合の技術的な背景 失敗事例(3/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 大きさとサイズの分類は 魚ごとに決められています 失敗事例(3/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 「オウムガイ」 1023mm以上でビッグサイズ 1022mm以下でノーマルサイズ 失敗事例(3/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. ドラゴンクエストXの釣り実装は C++とLuaが併用されています 失敗事例(3/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. C++ではmm単位の情報をintで扱い Luaではmおよびmmをdoubleで扱います 失敗事例(3/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 不具合の原因 失敗事例(3/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. C++ではmm単位の情報をintで扱い Luaではmおよびmmをdoubleで扱います 失敗事例(3/3) 浮動小数点の誤差が気になる
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 「オウムガイ」 1023mm以上でビッグサイズ 1022mm以下でノーマルサイズ doubleで1022-1023近辺の/1000*1000を検証 失敗事例(3/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 1018 -> 1018 (+0) 1018.0000000000000 1019 -> 1018 (-1) 1018.9999999999999 1020 -> 1020 (+0) 1020.0000000000000 1021 -> 1020 (-1) 1020.9999999999999 1022 -> 1022 (+0) 1022.0000000000000 1023 -> 1022 (-1) 1022.9999999999999 1024 -> 1024 (+0) 1024.0000000000000 1025 -> 1025 (+0) 1025.0000000000000 1026 -> 1026 (+0) 1026.0000000000000 失敗事例(3/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 1018 -> 1018 (+0) 1018.0000000000000 1019 -> 1018 (-1) 1018.9999999999999 1020 -> 1020 (+0) 1020.0000000000000 1021 -> 1020 (-1) 1020.9999999999999 1022 -> 1022 (+0) 1022.0000000000000 1023 -> 1022 (-1) 1022.9999999999999 1024 -> 1024 (+0) 1024.0000000000000 1025 -> 1025 (+0) 1025.0000000000000 1026 -> 1026 (+0) 1026.0000000000000 失敗事例(3/3) 浮動小数点の丸め処理の 統一規定は無さそうなため 環境で結果が変わる可能性 がありそうです (今回の件とは無関係です)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 担当プログラマーの名誉のために フォローしておきますが 誤差補正処理はありました 失敗事例(3/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. f_Result = math.floor((f_FishScale + 0.0004) * 1000) / 1000 失敗事例(3/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. f_Result = math.floor((f_FishScale + 0.0004) * 1000) / 1000 失敗事例(3/3) 単位はmで1023/1000の 1.022999…が渡されます
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. f_Result = math.floor((f_FishScale + 0.0004) * 1000) / 1000 失敗事例(3/3) 1.022999…→1.023399… (良い感じ!)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. f_Result = math.floor((f_FishScale + 0.0004) * 1000) / 1000 失敗事例(3/3) 1.0233999…→1023.399…
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. f_Result = math.floor((f_FishScale + 0.0004) * 1000) / 1000 失敗事例(3/3) 1023.399… →1023 (できた!!)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. f_Result = math.floor((f_FishScale + 0.0004) * 1000) / 1000 失敗事例(3/3) 1023→1.0229999…
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 傷口に塩を塗る 結果になっちゃいましたが これは仕方がないと思います 失敗事例(3/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. でもなぜ急に 問題になったのでしょう (釣りの実績は十分ありました) 失敗事例(3/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. ビッグサイズ 失敗事例(3/3) サイズ分類決定 魚生成 大きさ決定 保存 1023mm
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. ビッグサイズ 失敗事例(3/3) サイズ分類決定 魚生成 大きさ決定 保存 1023 1022 浮動小数点誤差の影響
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. ビッグサイズ 失敗事例(3/3) サイズ分類決定 魚生成 大きさ決定 保存 1023 1022 ビッグ & 1022 再計算負荷軽減のため 両方の情報を保存 (不整合あり)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. ゲームサーバ ゲームクライアント ゲームクライアントゲームクライアントゲームクライアント ゲームクライアント ゲームクライアントゲームクライアントゲームクライアント ゲームDB オウムガイ (ビッグ&1022) 失敗事例(3/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. あるとき(別の)不具合が発生し サイズ分類の再計算が必要になり 失敗事例(3/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 釣り老師に話したタイミングで 大きさ(mm)からサイズ分類を 再度求めることになりました 失敗事例(3/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. オウムガイ ビッグサイズ&1022mm オウムガイ ノーマルサイズ&1022mm 失敗事例(3/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 不具合告知内容(再掲) 釣りにて、「オウムガイ」のビッグサイズや キングサイズを釣ったのに、釣り老師や魚交 換員から、ビッグサイズはノーマルサイズ、 キングサイズはビッグサイズとして扱われる ことがある。 失敗事例(3/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 発覚後の対応 失敗事例(3/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. サイズ分類も大きさの数値も 信用できない状態に なりましたので 失敗事例(3/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 再計算をしないように戻した後 ログとゲームDBの情報から 個別対応しました ※行動ログ超大事 失敗事例(3/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 得られた教訓 失敗事例(3/3)
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. • 表面化していない不具合は 有る前提で対応すべし 失敗事例(3/3) 教訓
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 失敗事例の考察 失敗事例
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. これらの失敗事例を鑑み 柔軟性と継続性に加えて 開発ポリシーに追加すべきは 失敗事例考察
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 「リリース後の改修は要注意」 失敗事例考察
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. リリース後の改修は… • 影響範囲を考察 • BTSチケットに登録 • 確実にチケットクローズまで 失敗事例考察
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. ドラゴンクエストX開発チームは 運営中に出た問題に対して 「どうすれば事前に防げたか」 を検討し パターン別にまとめています 失敗事例考察
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. その中で最も多いパターンは 失敗事例考察
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. リリース後の改修は… • 影響範囲を考察 • BTSチケットに登録 • 確実にチケットクローズまで 失敗事例考察
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. リリース後の改修は… • 影響範囲を考察 • BTSチケットに登録 • 確実にチケットクローズ 失敗事例考察 開発担当者が軽く考える案件が 問題になりやすいようです
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. 目次 自己紹介 本セッションについて ドラゴンクエストXとは 開発ポリシー 失敗事例(3つ) まとめ
• システム改修はBTSチケットに影響範囲を 明記し全影響範囲を再検証すべし • 影響範囲は極力狭くすべし ドラゴンクエストXを支える失敗事例
© 2019 SQUARE ENIX CO., LTD. All Rights Reserved. まとめ 教訓再掲
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. • 暫定対応は本対応完了までを BTSチケットで管理すべし まとめ 教訓再掲
ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. • 表面化していない不具合は 有る前提で対応すべし まとめ 教訓再掲
これらの失敗事例が 皆さんの経験値の一部に なれば幸いです ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. まとめ
当セッションの内容は以上ですが 「ドラゴンクエストXを支える技術」に その他の事例を多数 載せていますので 併せて参考にしてください ドラゴンクエストXを支える失敗事例 © 2019
SQUARE ENIX CO., LTD. All Rights Reserved. まとめ
Advertisement