SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【デブサミ2021夏】セッションレポート(PR)

ゲームで開発スキルを向上――「TwilioQuest 3」日本語プレビュー版の裏側に迫る【デブサミ2021夏】

【C-6】ゲームで開発スキルを向上させる「TwilioQuest 3」の日本語化とその裏側

  • このエントリーをはてなブックマークに追加

 開発者のオンボーディングをゲーミフィケーションで楽しくサポートする「TwilioQuest 3」。2020年のデブサミで紹介、話題となった同ツールの日本語プレビュー版がついに登場した。なぜ”プレビュー版”なのかといった裏事情から、日本語化を進める中での苦労話、今後のロードマップについて、Twilio Japanのデベロッパーエバンジェリスト、池原大然氏が講演で紹介した。

  • このエントリーをはてなブックマークに追加
Twilio Japan合同会社 Worldwide Developer Relations デベロッパーエバンジェリスト Twilio JP-UG 池原大然氏
Twilio Japan合同会社 Worldwide Developer Relations デベロッパーエバンジェリスト Twilio JP-UG 池原大然氏

新規ユーザー登録が前年対比300%増、TwilioQuestが人気学習コンテンツに

 電話やSMS、ビデオ、メールなどのコミュニケーション手段をクラウドで提供するAPIサービス「Twilio」。2013年に国内でサービスを提供開始した頃はニッチなコア向けサービスとしてトップランナーを独走していた同社だが、今では類似サービスが登場。新たな競合がひしめく中で、いかにTwilioを選んでもらい、使い続けてもらうかが喫緊の課題となった。

 そうした局面を打開するため、開発リレーションを担当する部門が編み出したのが、Twilioの使い方やプログラミングの方法などを楽しく学べる「TwilioQuest」だ。昔懐かしい8ビット/16ビット時代のRPGを模したゲームで、プレイヤーはマップを進みながら、次々と現れるプログラミング問題などのミッションをこなし、完走を目指す。

 ミッションクリアでゲットできる経験値やアイテムは、自分のキャラクターのカスタマイズなどに使うことができる。2019年に最新版「TwilioQuest 3」がリリースされ、そして2021年7月に待望の日本語プレビュー版がリリースされた。

TwilioQuestの画面
TwilioQuestの画面

 アーキテクチャはシンプルで、クライアントコンピューターでランチャーをダウンロード、起動すると、アプリがFirebaseへ最新バージョンがあるかをチェックして実行する。プラットフォームはElectronを、UIフレームワークはReactを、ゲームフレームワークはPhaserを、そしてマップデザインツールはTiledを使用しており、ほぼオープンソースで開発しているのも特徴だ。

 TwilioQuestの日本語版がリリースされた背景には、昨年のコロナ禍がある。2020年におけるTwilioQuestページのグローバルのWebトラフィックは、前年対比で600%増加。新規ユーザー登録も300%増となった。コロナ禍で対面のアクティビティが制限され、自宅でもスキルアップできるオンラインコンテンツが注目されたことが理由だろうと、Twilio Japanのデベロッパーエバンジェリスト、池原大然氏は分析する。

 池原氏たちは早速、2020年8月に第1回「TwilioQuest 24時間チャレンジ」を、2021年2月に第2回「TwilioQuest – 2021新春チャレンジ」を開催。第2回には、参加者の獲得経験値合計が第1回と比較して300%増え、参加者からも「面白かった」「開発経験ゼロの初心者には少し難しかったが、自分のペースでプレーできて楽しかった」などうれしいコメントが多く寄せられた。

 そうしたコメントの中で池原氏たちが注目したのは、「日本語化を希望する」という声だ。当時はUIもコンテンツもオリジナルの英語のままで、イベント参加者にはGoogle翻訳やRippleを使って問題文を読んでほしいと案内を出していたと池原氏。だが、日本語の方がスムーズに内容を理解でき、プレーしやすいのは間違いない。

 そこで、池原氏はTwilioQuestチームとのミーティングで、以前から要望していた多言語対応の件について質問した。すると、v3.2で別のプライオリティ案件があるため、その実装が終わってからの対応になるため、2021年後半になると返答があった。同社では現在、外部コントリビューターが新機能や新規コンテンツを追加しやすくするためのエクステンション機能の実装を進めている。

 たしかに、エクステンション機能の方がビジネスの観点で優先度は高い。しかし、池原氏としては一刻も早く日本版をリリースしたいという思いがあった。であれば、先行プレビューという形で日本語版を作るのはどうだろうか。池原氏の提案を聞いたチームは即答した。

 「いいよ! 日本語版開発用のブランチを作成しておくよ。あとは頑張って!」。

 つまりは、ローカルの責任範囲で自由にやっていいということだ。あまりにもすんなり提案が通ったことに拍子抜けした池原氏。チームの柔軟性に感謝しつつ、言ってみるものだなとミーティング後に思ったと笑う。

ローカリゼーション前提の設計ではなかったために、手作業の地獄を味わう

 こうして2021年4月後半、日本語化プロジェクトが立ち上がった。そして、池原氏を待ち受けていたのは地味につらい道のりだった。

 ゲームのソースコードを見て、池原氏はがくぜんとした。ミッションはobjective.json(チュートリアルの設定)、description.md(チュートリアルの概要)、walkthrough.md(チュートリアル本体)、validator.js(解答の検証ロジック)、*.pug(Cedricとの会話テキスト)などで構成されているのだが、ミッション名など翻訳が必要な文字列が各ファイルに直接書き込まれていることが分かったのだ。要するに、ローカリゼーション前提で設計されていなかった。

 池原氏は、文字列のエクスポート、翻訳やレビュー、ソースコードへの埋め込みという3ステップで作業を進めた。

 まずは、ファイルから文字列をエクスポートする。ファイルそのままを翻訳に出すことも考えたが、中のロジックが第三者にすべて見られることは避けたい。

 「エクスポーターを作ればよかったのですが、例えば.jsファイルの文字列フォーマットが共通化されていないなど、作成するにも少し時間が必要でした。さらに翻訳に関わるリードタイムを考えたとき、今回はスピードを優先することにして、手作業で書き出すことにしました。ソースコードをすべて見ながら文字列を抜き出すので、かなり心の折れる作業でした」(池原氏)

 続いて、文字列を翻訳する。ここでは翻訳会社を利用し、戻ってきた翻訳物を画面表示に適した形に成形。日本向け製品では仕様が異なる部分の表記などを修正するなどで整えた。

 最後は、ソースコードに文字列を埋め込む作業だ。自動化もできなかったため、「魂を削りながら」手作業で埋め込む池原氏。

 プロジェクトを立ち上げてから約1カ月半。日本語プレビュー版が公開された。まだ4つのミッションしか翻訳されていないが、すでにプレーした人たちからはおおむね好評と池原氏は言う。

 もちろん、今後はまだ翻訳されていないミッションも随時追加し、コンテンツを拡充していく予定と池原氏。だが、今の“力業”は効率が悪く、何より池原氏の精神と体力を削り過ぎる。そこで同氏は、コンテンツ強化に向けて「エクスポートツールの構築」「.mdファイルをそのまま翻訳に出す」「国際化ライブラリの導入」の3つの取り組みを開始した。

コンテンツ強化に向けた3つの取り組み
コンテンツ強化に向けた3つの取り組み

 エクスポートツールについて、現在は.jsonの値、.jsや.pugなどの文字列を自動で抜き出して、その精度を目視で確認しながら微調整する作業を行っている。「現時点で90%程度の精度」と、幸先はいい。.mdファイルについては、そのまま翻訳に出せないか翻訳会社と目下相談中。そして、国際化ライブラリについてはTwilioQuestチームと進め方について議論しているという。「ライブラリのi18nextをもとにゲーム画面やコンテンツ部分の必要な箇所を国際化できないか、検証を始めています」(池原氏)

 課題は、各ミッションのフォルダ構造をそのままにローカライズできないかという点だ。「検証してみましたが、おそらく構造を変えなければなりません。なので、少し時間がかかるかもしれません。まずは取り急ぎ、日本語のほか、フランス語やポルトガル語、ドイツ語などについて少しずつ検証を進めている状況です」(池原氏)

 今回の事例は、他のアプリケーションのローカリゼーションでも共通する課題だ。日本向けに開発したサービスをグローバル展開することになり、多言語対応したいとなったとき、何かしらの参考になれば幸いと池原氏は言う。

 「TwilioQuestのローカリゼーションは、自分ができることを製品開発チームやビジネス側に提案した結果、うまくいった事例。提案し続けることの大切さを実感しました」と、池原氏は振り返る。

 「今後もコンテンツを追加していく予定です。ぜひ一度遊んでみてください」(池原氏)

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/14693 2021/11/12 12:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング