雑誌 Software Design 2023年11月号:インタビュー「歴史ある『リヴリーアイランド』がスマホアプリで再出発」井上真悟・髙藤佑馬【前編】
この記事は「Software Design 2023年11月号」に掲載された記事を許諾を受けて転載しています。
Web3の新時代を拓く ココネのエンジニアリング力を探る
世界に愛されるデジタルワールドでトップレベルの実績
第5回 歴史ある「リヴリーアイランド」がスマホアプリで再出発
2003年に誕生した「リヴリーアイランド」はパソコンのブラウザ用ペット育成サービスとしてスタートした。2020年10月にココネが権利を取得し、2021年7月にスマホアプリとして再出発。世界観はそのままに新環境へ移行し、さらにリヴリーアイランドらしい楽しさを拡張した。リリースの経緯などをココネ リヴリープロジェクト 井上真悟氏と同 髙藤佑馬氏に聞く。
━━自己紹介をお願いします。
井上真悟(以下、井上) ココネ リヴリープロジェクト 井上真悟です。2003年にブラウザ版リヴリーアイランドの立ち上げに携わりました。2018年よりココネのいくつかのプロダクトでクライアント開発を担当後、リヴリープロジェクトの立ち上げ当初よりクライアント開発を担当しています。推しリヴリーはトビネです。
髙藤佑馬(以下、髙藤) 同じくリヴリープロジェクト 髙藤佑馬です。前職で業務用通信対戦ゲームのサーバ開発、ソーシャルゲームの開発や運用を担当したことがあります。ココネでは、ポケコロやポケコロツインのサーバ開発や運用、またハロースイートデイズとリヴリーアイランドのサービス立ち上げやサーバの開発・運用を担当しました。推しリヴリーはピグミーです。
リヴリーの魅力を最大限引き出すように改良を重ねた
━━「リヴリーアイランド」について簡単に教えてください。
井上 リヴリーと呼ばれる不思議な生き物を育成するアプリです。当初はブラウザで提供され、2019年にいったん終了。のちにココネが権利を取得し、2021年7月からスマホアプリで再出発することになりました。ココネとしては着せ替えアプリで培ったノウハウや資産を活かし、根強い人気があるリヴリーアイランドを育てていきたいという意向がありました。
髙藤 お客様はリヴリーが住むアイランドで、自分の分身であるホムを通じてリヴリーを飼育します。エサ(虫)の色でリヴリーの色が変化したり、リヴリーが排出する宝石を集めてアイテムと交換したりします。お気に入りのリヴリーを育み、友だちと見せ合うなどのコミュニケーションを楽しめるアプリです。
井上 過去には携帯電話向けコンテンツやニンテンドーDSのソフトとして提供されたこともあります。20年近くの歴史があるため、再始動したときには「子どものときに親のパソコンで遊んだ。懐かしい」と歓迎する声もいただきました。
━━スマホアプリへの移植はどのように?
井上 ソースコードも含めてすべて譲渡されたので、動作確認のために社内で疑似的に稼働させたことはありますが、基本的にすべて一から作り直しです。もとがブラウザのFlash(ActionScript)なので、再利用しようがないのです。なお、スマホ版ではクライアントをUnityで開発しており、言語はC#です。
髙藤 なにしろ当時は早くお客様にお届けしたいという想いがありました。
井上 それで工数を減らすために、リヴリーアイランドに転用できそうなココネの既存プロジェクトをクローンして、必要なものを追加して載せていくような形で開発を進めました。
髙藤 しかし、最初の社内試遊会で「リヴリーの魅力を活かしきれていない。もっとお客様がリヴリーを身近に楽しんでいただけるようにしなければ」という意見が出たため、断腸の思いで開発期間を3ヵ月延長し、機能追加など改良を重ねました。
井上 当初画面に表示できるのはホム1体とリヴリー1匹だけでしたが、リヴリーを最大3匹表示できるようにしたり、リヴリーのお世話で起こる変化やガチャの演出を見直したりするなど、納得いくまで細かく調整を繰り返していきました。
━━サーバ側はどんな準備がありましたか?
髙藤 当初はGoogle Cloudで稼働させていましたが、最終的にリヴリーアイランドはAWSで稼働させることにしました。多くは似た機能を持つAWSサービスで置き換えましたが、KPIなどの集計はBigQueryを使うため、データ移動などの調整が少し必要でした(図1)。
井上 どのクラウドベンダーを使うかは、ココネの技術的な戦略や技術トレンドなどを総合的に考慮した結果です。どこかに固定してしまうと社内の技術ノウハウが偏ることにもなりますし、タイミングにより判断が難しいところです。
髙藤 なおサーバ側ではGo言語を使い、データベースはMongoDB、キャッシュにRedisを使っています。またサーバに携わるのは、アプリごとのサーバ担当者のほかに、全社横断的にインフラを見ているチームがいます。
想定以上の負荷に急きょEC2インスタンスを変更
━━リリース後の反響はいかがでしたか?
井上 ありがたいことに、想定を上回るお客様にダウンロードしていただきました。リリース1ヵ月後の2021年8月に30万、2022年2月に100万、現在では全世界で500万ダウンロードを突破しました。知名度や歴史があるから伸びると想像していましたが、これだけ多くのお客様に受け入れていただいたことにチームみんなが驚きました。
髙藤 サーバ側ではリリース前に負荷を想定してテストするのですが、事前の想定を上回るお客様のご利用があり、急きょ負荷対策を行うこととなりました。
井上 待ち焦がれてくれたお客様がたくさんいてくださって、感謝しかありません。負荷が深刻だったのはデータベースでしたね。
髙藤 リリース当時はAWSのEC2でMongoDBを稼働させるという構成でした。なにしろリリース初日から想定以上の負荷でしたので、まずはすぐに対応できることとして、EC2のインスタンスを強力なものに変更しました。MongoDBはマスター/スレーブ構成になっていましたので、片方ずつインスタンスをスケールアップすることで、サービスを停止することなく乗り切ることができました。まずはお客様から見たときの負荷の解消を目的にスケールアップを試みて、そのあとで重いQueryのチューニングを行う形で対応しました。
━━すぐにスケールアップできるのはクラウドのいいところですね。
髙藤 サービスを止めることなく乗り切れたのはよかったですが、エンジニアとしては少し恥ずかしい気もします(汗)。負荷が想定以上に高かったことでKPIの集計準備に手が回らず、評価ができない期間が一時期ありました。お客様にご迷惑をおかけすることはなかったものの……。
井上 結構やばかったですね(汗)。
続きは後編で
※リヴリー本編とは別軸(メタ的)に、裏話や想いについて語っておりますのでご注意ください。
【関連記事】
・雑誌 Software Design 2023年8月号:インタビュー 「人気の着せかえアプリ『ポケコロ』誕生秘話」 趙龍植・洪銀美【前編】
・サーバエンジニア必見!GoとKotlinでつくる新規web3サービスのサーバ技術とは?『cocone TECH TALK Vol.6』イベントレポート
・開発本部長に聞くココネエンジニアの「攻め」と「守り」