Nintendo Switch Onlineに加入すると、オンライン対戦などの、さまざまな機能が利用できるようになりますが、そのひとつに「セーブデータお預かりサービス」というものがあります。Nintendo Switchのゲームのセーブデータは、ゲーム機本体に保存されるため、Nintendo Switchが修理できないほどに壊れてしまったり、仮に紛失するようなことがあった場合はセーブデータの復旧が不可能でした。しかし、このサービスに加入していれば、クラウドを通じてセーブデータを受け取り、新しいゲーム機で続きを遊べるようになります。
また、たとえばNintendo Switchと、後から発売されたNintendo Switch Liteの2台をお持ちの場合、どちらからでもゲームの続きを遊べるようになっています。だからこそ、このネットワークサービスは24時間365日稼働させる必要があります。世界中のお客様がアクセスしてきますので、メンテナンスなしで動かし続けたいシステムなんですね。
基本的にこのようなシステムは、数百万人からのアクセスに耐えられるように作りますが、利用者の増え方によっては、負荷に耐えきれなくなることもあります。そのときはシステムを改修する必要があるのですが、その作業が大規模になってしまうと長時間サーバーが止まってしまい、セーブデータのバックアップにアクセスできなくなったお客様にご迷惑をおかけすることになります。
そもそも「セーブデータお預かりサービス」では、データベースにさまざまな情報が記録され、常時書き換えられています。このサービスには、確実にバックアップをするためにセーブデータの管理をする機能と、たくさんのお客様がアクセスできるように、複数のデータベースを管理する機能が必要でした。そのような複数の機能を、ひとつのシステムに任せることは、一般的なサーバーシステムとしては当たり前な方法なのですが、私はそれを疑うことにしました。というのも、もともと複雑なシステムに、データベースの管理まで任せてしまうと、もっと複雑になり、改修や拡張をするのが難しくなってしまうのです。
そこで複雑だったものをシンプルに作ることにしました。つまり、いろんな機能をひとつのシステムに任せるのではなく、一つのシステムは一つの機能に専念するようにしたのです。その結果、データベースの管理がシンプルになり、サービスの規模拡大や機能追加が無理なく行えるようになったんですね。
私はもともと複雑なものをどうやってシンプルにするか、ということを考えることが好きでしたので、この「セーブデータお預かりサービス」の仕事には前向きに取り組むことができました。そもそも任天堂は、“ゲームばかり作っている”とイメージする方も多いかもしれませんが、このようなサービスも積極的に自社で開発していることを知っていただきたいと思います。
※AWS Summit 2019 Osakaで、吉野が「セーブデータお預かりサービス」についての講演を行いました。
その際に使用した講演の資料(PDF)はこちらからご覧いただけます。https://pages.awscloud.com/rs/112-TZM-766/images/D-06.pdf(AWS Summit 2019公式サイト内)