はじめに
今年の8月末にライブサービスでの問題が発生し、数日間に渡り多くのプレイヤーに影響がありました。これによりログインが不安定となり、一部のプレイヤーにおいては進行状況が失われたように表示さる、デイリークエストも完了できないといった不具合が確認されていました。
これらは私たちが届けたい体験とは真逆のものです。どんなソフトウェア開発でも、不可避的なエラーは起こり得るものですが、エラーが発生した際はその影響を最小限に抑える強固な開発、品質保証、アップデートの配信プロセスを確立したいと考えています。
問題が解消したのちチームでは、原因の共有と理解、今後同様の問題を予防するための対策について話し合いました。こちらの記事はその要約となります。
インシデントの概要
今回発生したライブサービス問題の概要:
8月26日深夜(米太平洋夏時間)コミュニティチームより他チームへ、プレイヤーがゲームにログインできない、また一部Androidではアカウント履歴に関わらず初期状態でゲームが起動する旨の報告がありました。0:10までにバックエンドチームが当社のクラウドサービスにおけるこの異常な動作を確認しました。
ログインの障害とアカウント情報取得の問題への対策としてデータベースのコンフィグレーションを調整しました。1時間以内にログインできるようになったとプレイヤーの皆さんからお知らせいただきましたが、アカウントが初期状態になってしまう問題は継続していました。またそれらに加えて、デイリークエストを完了できないという報告が寄せられ始めました。
つまり対応すべき問題が3つ発生していたことになります。
- ログインの不安定さ
- アカウント履歴が喪失したように見える状態
- デイリークエストの完了不可
調査と解消
ログインとアカウント情報問題
クラウドプラットフォームチームは各種モニタリングツールにより、ログイン過程に必須の2つのサービスが時間内に応答していなかったことを発見しました。データ通信の要請時に、データを受信するサービスが特定の秒数以内に反応しない場合、送信側は接続を終了し、次のサービスの遅延を報告します。
その結果、プレイヤーの一部はログインできず、また他のプレイヤーはアカウントの進捗データに正しくアクセスできない事態となりました。
これに対する解決策は他のバックエンドサービスに悪影響が出ないよう互換性があるもので、またそれ以上の影響が及ばないよう、テストは迅速かつ慎重に行う必要がありました。
エンジニアチームはこういった懸念事項を念頭に事態解消に取り組み、クラウドプラットフォームチームと協力し、ログインと進捗問題両方を解決する修正案を開発、テスト、評価するに至りました。
デイリークエストの完了
デイリークエストの各報告の調査を進めたところ、誤ったクエストシステムが原因であることが判明しました。
ご存じの方も多いかと思いますが、私たちは現在Skyのクエストの見直しを行なっており、こちらには新たなクエストシステムの開発も含まれています。私たちは社内テストに加えて、品質管理チームが重要なテストを実施できるよう、ライブ版において安全に新しいシステムを暫定的に有効にするコンフィギュレーションも使用しています。このシステムは品質管理チームのみが利用できるものであり、テストが完了後は該当のコンフィギュレーションは削除され、新しいクエストシステムは完全に無効化されます。
しかしながら、この新たなクエストシステムがバージョン0.26.5のアップデートとともに誤ってライブゲームの公開環境に実装されていたことが判明しました。これにより新システムと従来のシステムがどちらも有効になっていましたが、従来のシステムではアップデートで追加された新たなデイリークエストを正常に処理できませんでした。つまり新システムを使用することが想定された新たなクエストを完了すると、従来のシステム上ではエラー表示がされていました。
Skyが機能するプラットフォームとサービスの独特な相互作用により、その時点で新システムを無効にすることは更なる問題を発生させる可能性があることが判明しました。そこでデイリークエストの完了に関する問題を解消するため、新システムに対する修正を試験、導入し、従来のクエストシステムを無効化しました。
全ての修正が確認されたのは2024年8月29日0:15で、最初の報告から72時間後でした。
それぞれ、ログインできない問題は約1時間、アカウント履歴の取得に関するタイムアウトが約37時間、そしてデイリークエストの完了時のエラーが約72時間継続したことになります。
今後について
将来的に同様の問題を防ぐために、私たちは以下の取り組みを実施してまいります。
- ライブ版配信準備チェックリストの改善:新たなチェックリストでは、Skyのようなライブサービスゲームのニーズにより特化し、新機能の明確化と追加チェック項目をさらに強調するものにしました。
- 新機能サインオフプロセス:新機能の開発においては、ライブサービスに影響が及んだ場合に対応できる、より強固なロールバック計画が組み込まれます。チームを跨いで追加の検証ステップを実施し、機能の準備と品質基準のより厳格な精査を保証します。
成功を祝うのは簡単です。逆に失敗を認めそこから教訓を得るのは時に難しいこともありますが、私たちはそれをとても重要な過程だと考えています。この記事の目的は、当該の問題に対し皆さんが感じられていたであろう懸念を払拭し、またお礼を申し上げることです。問題解決に取り組む間お待ちいただき、多くのフィードバックをお寄せくださり、誠にありがとうございました。
今回の調査結果の共有により、私たちにとってSkyでの皆さんの時間をよりポジティブなものにすることが重要であり、またプレイヤー体験の質の向上のために取り組んでいることが伝わりましたら幸いです。
私たちは皆さまからのフィードバックをいつでもお待ちしております。ぜひ公式Discordサーバー (discord.gg/thatskygame)に参加してあなたのご意見をお聞かせください!