1
/
5

エンジニア発のアイデア満載!シノアリス(SINoALICE)新機能開発の裏側

ポケラボが運営するスマートフォンゲーム「SINoALICE -シノアリス-」では、多くのユーザー様からご要望いただいていた"観戦機能"を、9月25日にリリースしました。
今回は"観戦機能"のご紹介をしつつ、ポケラボで働く魅力や改善していきたいことについて、担当エンジニアの一人である野口に話を聞いてみました。

―― 今回リリースした"観戦機能"はどんな機能ですか?

「SINoALICE -シノアリス-」では"コロシアム"と呼ばれる、最大15人VS15人のギルド同士の戦いを毎日行っています。このコロシアムを後から見返したり、また他のギルド同士のコロシアムをみんなで観戦/応援したりできるようにしたのが"観戦機能"です。

―― "観戦機能"を導入することになった背景を教えてください

コロシアムは「SINoALICE -シノアリス-」で最も重要なコンテンツで、実際に多くのユーザー様に熱量高く楽しんでいただいており、この度そんなコロシアムで世界1位のギルドを決める「WORLD GRAN COLOSSEUM(通称WGC)」を開催することとなりました。そこで実際にWGCに出場する方々はもちろんのこと、出場されない方々にも一緒になってWGCを楽しんでもらえるよう様々な検討を重ねた結果、世界一を決める激戦をみんなで観戦・応援のできる仕組みを導入しよう、となりました。


―― "観戦機能"を通して実現したいのはどんなことですか?

本機能では普段は見ることのできない上位陣のコロシアムを観戦・応援できるようになり、出場者もまたその声援を見たり観戦者と交流したりできます。これらはギルド内やフレンドといった限られたユーザー同士でしか基本交流できなかったこれまでの「SINoALICE -シノアリス-」にはないゲーム体験ではないかと思います。まるでW杯の試合を見に行ったような、もしくはアーティストのライブに参加しているような、そんな「同じひとつのものを好きな人たちみんなで楽しんでいる」という一体感を感じられるコンテンツになったのではないでしょうか。

―― それを実現するために、具体的に行ったことを教えてください

まず、実際に行ったコロシアムを保存できる"コロシアムの記録"という機能を実装しました。

これはコロシアムでとても良い試合ができたときや勉強になった試合、また記念試合などを後から振り返ることができるようにしたもので、WGCに先駆けてユーザー様によりコロシアムを楽しんでもらえたらと思い、作ったものになります。
工夫点としては、「今からの試合を保存したい」というユースケースより「さっきの試合がとても良かったから保存したい」というユースケースの方が便利だと判断し、試合後に「今の試合を保存する」ができるUXにしたことです。
この"コロシアムの記録"にはGoogle社の「Cloud Firestore」を活用しており、コロシアム中に発生したあらゆるデータのやり取りを試合ごとにFirestoreに格納し、それを後から呼び出すことによって実現しています。そしてそのデータを一定期間後に削除する機構と、それをユーザーごとに保存する機構をサーバーエンジニアと協力して実現することで、ドライブレコーダーのように「過去起きたこと」を保存できる形にしました。

また再生画面にも、エンジニアやデザイナーからアイデアを提案し、実現に至ったものが多くあります。
例えば、任意の時間に飛ぶことのできるシークバーには、コロシアムで起きたイベントごとにチャプターアイコンが表示され、どの時間帯にどんなことが起きたのかをわかりやすくしています。これは実装担当者だったデザイナーと一緒に出したアイデアになります。
また、シークバーで時間移動を行った際、どうしてもコロシアムの再読み込みが必要になり、ユーザー様に"待ち"が発生してしまいます。
そのためレンダーテクスチャとブラー効果を使い、シークバー操作直前の画面を一時的にキャプチャーしてその裏でコロシアムの再読み込みを行うようにしました。
これにより待ち時間は同じでも、一度別の画面を挟んでしまうより体感的にはスムーズに感じられ、ユーザビリティの向上に繋がったと思います。

そして目玉機能である"リアルタイム観戦"では、ここまでお話しした"コロシアムの記録"の仕組みを応用して、Firestoreに蓄積するデータをクライアントがその都度拾い再生するように拡張しました。
これはFirestoreの機能であるListen関数を使い、常にその情報が格納される場所(ドキュメント)を監視し続け、送られてきた情報を従来のコロシアムの機構に流し込むことによって、擬似的にクライアントではあたかも今コロシアムを行なっているかのように見せるというものです。
これにより、実際のリアルタイム観戦では大会の公平性を期すため3分間の遅延を設けていますが、システム的には理論上はほぼ遅延なく再生を行うことが可能となりました。


さいごに、今回一新したチャット機能です。今回リアルタイム観戦に導入した出場者/観戦者みんなで会話できる新チャットシステムは一見従来のチャットと同じように見えますが、WGCの目的に即した形でかつ大勢の人が発言をしても快適に閲覧できるように、内部の制御はイチから再構築しています。例えば、出場者の発言は独自のデザインにして注目されやすくしたり、チャットの表示領域を段階的に切り替えられるようにしたりする等、"リアルタイム観戦"としてより楽しめるように工夫しました。また、膨大な発言が一気に流れてきても画面ずれが起こらず、かつメモリを圧迫しないよう様々な工夫を凝らしました。

これらの数々の工夫は現場のデザイナーやエンジニア発起のものも多く、メンバー全員が「WGCを出場者・観戦者みんなが一体になって楽しめるものにしよう」という軸をぶらさずに進められたことが実現の大きな要因になっていると思います。

―― ポケラボの開発環境で、ゲームエンジニアとして魅力に感じることはありますか?

ゲームエンジニアという立場から、ゲームの面白さや楽しさに対して様々な工夫やアイデアを凝らすことができる、というのがポケラボの良いところだと感じています。
今回の"観戦機能"も実際にゲーム内で観戦や応援を実現できた背景には、エンジニアのメンバーによる技術調査や検証もそうですし、「どうすればより楽しんでもらえるか」を軸にUI/UXのかなり多くの部分をエンジニアからも提案してきました。
他にも「SINoALICE -シノアリス-」では新クエストや新アドベンチャーパートなどの新機能を季節イベントごとに実装することが多いのですが、これらもエンジニアから「こういう表現もできますよ」みたいな形で自ら提案できる風土があり、実際にリリースされている機能の中にもいろいろとエンジニア発信の工夫が凝らされています。
このように、ただ仕様通りにものづくりをするだけではなく、ゲームの面白さの昇華にまでチャレンジできるのがポケラボの良さだと思います。

―― さいごに、より良くしていきたいことを教えてください

個人的には施策のブレストやアイデアを発信する雰囲気がもっと活発になってほしいなと思っています。ゲーム開発の業務はやることがたくさんあるので、やはりどうしても目先の業務があるとなかなかそういった機会を設けるのが難しくなり、参加者があまり集わないこともあります。ですので、ぜひもっと多くの「アイデアを自分から発信していける人」が増えて、よりたくさんの人たちでゲームを面白くしていけるような環境を目指したいです。

今回の"観戦機能"の開発を含め、ポケラボの開発現場ではエンジニア発の提案からゲーム内で実現されていることが多くあります。実際に社内で働くエンジニアにとって魅力的なポイントでもあり、これからさらに活性化していきたいポイントになっているようです。

そんなポケラボでは引き続きエンジニアを募集中!
新しい仲間を迎えて、職掌問わず提案/チャレンジすることを推奨する環境を、さらに活性化していきたいと考えています。
ゲームエンジニアとして、作品/IPファンの期待を超えるものづくりに、ぜひ一緒にチャレンジしていきませんか?

※現在はnoteをメインに更新しております https://note.com/pokelabo

株式会社ポケラボ's job postings

Weekly ranking

Show other rankings