Slide 1

Slide 1 text

Robloxでの開発半年間 参入から運営まで REALITY株式会社 ソフトウェアエンジニア 内田 素貴

Slide 2

Slide 2 text

アジェンダ ● 自己紹介 ● Robloxとは ○ Robloxの紹介 ○ Robloxのエクスペリエンス開発 ○ エクスペリエンス公開までのフロー ● ゲーム事業部での取り組み ○ SUPER SF SOCCER ○ Wizard’s Legacy ● どうしてRoblox開発を行ったのか? ● まとめ 2

Slide 3

Slide 3 text

自己紹介 名前 内田 素貴 所属 REALITY株式会社 ゲーム事業部 経歴 ● 2013年新卒としてグリー株式会社に入社 ● REALITYには前身のWright Flyer Live Entertainment設立時から参加 ● スタジオの基盤構築およびフェイシャル対応 ● Platformで低遅延モード等開発 ● ゲーム事業部にてREALITY釣り部・Roblox開発 3

Slide 4

Slide 4 text

Robloxとは ● Robloxの紹介 ● Robloxのエクスペリエンス開発 ● エクスペリエンス公開 4

Slide 5

Slide 5 text

Robloxの紹介 Robloxはユーザーがそれぞれ独自の体験を作成できるツールとプラットフォームを提 供している 参加している誰もが手軽に作れて誰もが遊べる環境になっている ※エクスペリエンスとはゲームなどのユーザー体験空間のことを指している 5

Slide 6

Slide 6 text

Robloxの紹介 2023年6月30日時点までの3ヶ月間で6,550万のデイリーアクティブユーザーと560 万のアクティブなエクスペリエンスが存在している DAUのうち約44%が13歳未満で、約56%13歳以上を閉めている(不明が約1%) 巨大なUGCプラットフォーム 6 出典:https://s27.q4cdn.com/984876518/files/doc_financials/2023/q2/Q2-23-Supplemental-Materials-FINAL.pdf

Slide 7

Slide 7 text

Robloxの紹介 2022年末IR資料によるユーザー詳細 7 出典:https://s27.q4cdn.com/984876518/files/doc_financials/2022/ar/roblox_2023-proxy-and-2022-annual-report_web-ready.pdf

Slide 8

Slide 8 text

UGCとは User Generated Contentsの略称 ユーザー自身が作成したコンテンツ(アセットやエクスペリエンス)のこと Robloxはユーザーがアセットやエクスペリエンス作り、別のユーザーがそれを購入した り遊んだりする場所となっている UGCプラットフォームとしては今年の3月ごろUnreal Editor for Fortnite (UEFN)が パブリックベータになったことが話題になった 8

Slide 9

Slide 9 text

Robloxの紹介 開発環境としてはパソコンのみ 遊べる環境としてはパソコン、Mac、iOS、Android、Amazon デバイス、Xbox コン ソール、Oculus Rift、HTC Viveからアクセス可能 9

Slide 10

Slide 10 text

Robloxとは ● Robloxの紹介 ● Robloxのエクスペリエンス開発 ● エクスペリエンス公開 10

Slide 11

Slide 11 text

Roblox Studioを用いた開発 ● 開発はRoblox Studioを使用する ● Robloxが提供しているツール ● Roblox Studio1つで開発環境として完結している 11

Slide 12

Slide 12 text

Roblox Studioを用いた開発 ● デフォルトの画面構成 ○ アセットの配置。クライアント・サーバーコード実装等がこれ1つで可能 ○ チーム開発に対応しているため同時に複数人で同じ Placeに対して編集作業を行うことができ、リ アルタイムでそれぞれの編集が反映されていく 12

Slide 13

Slide 13 text

Roblox Studioでの配置場所 ● WorkSpace ○ 3D空間にあたる。このフォルダ以下に配置物等おいていく ● ServerScriptService ○ サーバーとして動くスクリプトはこちらに配置する ● StarterPlayer ○ クライアントでのみ動くフォルダ。ユーザー操作に関するものや UI操作 等に関するアセットやスクリプトが配置される ● ReplicatedStorage ○ クライアント・サーバーどちらからもアクセスできるフォルダ。共通で使い たいロジックやアセット等を配置する ● ServerStorage ○ サーバーでのみアクセスできるストレージ。サーバーからのみアクセス したいアセットやスクリプト等を配置する ● その他(ネットワーク、マテリアル、サウンド等もある) 13

Slide 14

Slide 14 text

Roblox Studioでのコーディング Robloxでのスクリプティング 言語としてはLuaを使用する 実行環境に合わせてファイルを定義する必要がある ● LocalScript ○ 名前の通りローカルでのみ実行されるスクリプト ○ 基本StarterPlayerに配置される ○ ユーザーの入力やボタン操作等で使用される ● Script ○ 基本的にはサーバーコードの実行として使用される ○ 基本的にはServerScriptServiceに配置されるが、用途によってはWorkspaceやServerStorageにも配置される ○ 応用としてRunContextによって実行環境をローカル等で行うことができる ● ModuleScript ○ 使いまわしたいロジックの格納スクリプト。責務の分離やluaでいうprototypeの定義場所として使用される ○ 基本LocalScriptやScriptどちらでも使用することができ、requireすることで使用される ○ requireでは同一インスタンスを見ているので、Managerのような使い方もされる ○ ReplicatedStorageやServerStorageに配置される ENとしては基本このスクリプトとフォルダの組み合わせを把握してロジックを実装していくことになる 14

Slide 15

Slide 15 text

アセットの利用① ● マーケットプレイスにあるUGCを利用する ○ ユーザー同士が公開できるためアセット量が豊富にある ○ 利用の際はどこかで聞いたことあるような音・画像が紛れている可能性があるので注意 15

Slide 16

Slide 16 text

アセットの利用② ● 独自で作ってアップロードしたものを使用する ● いくつか制約がある ○ オーディオはアップロード上限が 1月にアップロードできる数が決まっている ○ テクスチャはアップロード後最大 1024x1024になる ○ etc… 16

Slide 17

Slide 17 text

バッジ ● エクスペリエンス内で目標を達成したときにユーザーが獲得できる ● ユーザーのプレイ指針として使用するために便利 ● 登録 ○ バッジの登録ページで画像等を登録することで AssetIdが発行され登録される ● 実装 ○ BadgeServiceが用意されている ○ AwardBadgeでバッジのAssetIdを指定することでユーザーにバッジを付与できる 17

Slide 18

Slide 18 text

ローカライズ ● 自動翻訳含めて提供されている ● テキストに表示される際リストに吸い上げられて自動翻訳が行われる ○ 初めて使用する言語等だとラグがある ● csvで文言を入れたり、自動翻訳が意図しない表現になっている等があった場合は Roblox開発者用のページで翻訳結果を書き換えることができる 18

Slide 19

Slide 19 text

データストア ● ユーザーデータの格納やマスターデータの入稿等に用いられる ● 基本無料。開発時・運用時で使用に際して別途費用を払うことがない ● 基本Robloxでの売り上げはレベニューシェアなため、そこに費用として含まれてい ると思われる ● 1分間にRead/Writeといったそれぞれでアクセスできる回数に上限があるため使 用の際には注意が必要 19

Slide 20

Slide 20 text

マネタイズの種類 ● エクスペリエンス内アイテムの販売 ○ Developer Products ■ エクスペリエンス内のアイテムや通貨などの製品 ○ Passes ■ 永続的に獲得経験値2倍等の入手することで永続的に効果を発揮する製品等にしようできる ● プレミアムユーザーの滞在 ● 有料のプライベートサーバー提供 ○ 自分や招待したユーザーしか入ることのできないサーバーを提供する ● UGCアセットの販売 ○ アバター衣装等 ● その他 ○ Roblox StudioのPluginを作成して販売 ○ 今年の中頃に入ってゲーム内広告の機能も公開されている ○ アクセス費用 ■ 有料アプリと同じ考え 20

Slide 21

Slide 21 text

マネタイズについて(収益) ● 基本的にRoblox内ではRobuxという通貨を用いて購入等が行われる ○ サーバーの保守等Robloxの運用費用が省かれた状態で開発者の収入 Robuxが入る ○ 獲得したRobuxはDeveloper Exchangeによってその時のレートに合わせて現金化することが可 能になっている 21

Slide 22

Slide 22 text

マネタイズについて(開発) ● エクスペリエンス内アイテムの販売 ○ 「MarketplaceService」を使用することでRobuxの消費購入部分は基本的に Robloxに任せら れ、その後の商品付与等を記載するのみで実現できるため開発しやすい形になっている 22

Slide 23

Slide 23 text

Robloxとは ● Robloxの紹介 ● Robloxのエクスペリエンス開発 ● エクスペリエンス公開 23

Slide 24

Slide 24 text

公開フロー 24 Roblox Studioで Experienceを作成 Placeの中身を作っていく Publish To Roblox でRoblox上に配布

Slide 25

Slide 25 text

公開フロー 作ってから公開までのフローが簡易で変更を加えてから公開するまでがとても簡単に行うことが できる 開発中も作ってから本番環境(スマホ実機等)で確認するというサイクルがとても早い 25 発行されたURL経由でエクスペリエンスにアクセスできる

Slide 26

Slide 26 text

公開後サポート ● ユーザー広告 ○ UserAd ■ バナー広告 ■ 指定サイズの画像と Robuxを支払うことでRobloxのバナーに表示される ■ 表示される頻度は入札システムで決定される 26

Slide 27

Slide 27 text

公開後サポート ● ユーザー広告 ○ Sponsor ■ スポンサー枠へのエクスペリエンス表示 ■ 表示する年齢とデバイス等指定を細かくできる ■ Robuxを支払うことで表示されて表示される頻度は入札システムで決定される 27

Slide 28

Slide 28 text

公開後サポート ● Dashboard ○ Robloxのクリエイターページに Dashboardがあり公開後のアクティブユーザー等を見ることがで る ○ ENが追加実装することなく入っている機能 ○ 項目 ■ REAL-TIME ● パフォーマンス ● エラーレポート ■ ANALYTICS ● ユーザーアナリティクス ● マネタイズ 28

Slide 29

Slide 29 text

ゲーム事業部で の取り組み ● SUPER SF SOCCER ● Wizard’s Legacy 29

Slide 30

Slide 30 text

SUPER SF SOCCER 3vs3での対戦サッカー 3分間により多くゴールできた方の勝ち 30

Slide 31

Slide 31 text

SUPER SF SOCCER 開発期間 約2ヶ月 各職種(兼務含) PM 1人 EN 2人 Art 2人 31

Slide 32

Slide 32 text

目的 ● 初めてのRoblox開発として実装フローや開発サイクルを経験する ● マネタイズの実装把握や機能検証をする 32

Slide 33

Slide 33 text

振り返り ● 開発として ○ テスト機能により複数人での動作を一人再現して動作確認することができた ○ PC、タブレット、スマホの簡易的なエミュレート環境があり各環境を Studio上でもある程度確認でき た ○ 各職種との連携方法や RobloxStudioとしての特性を把握することができた ○ マネタイズ周りの実装方式を把握することができた ○ 複数人が入り混じるエクスペリエンスの開発として、新規実装しなくとも基本的にプレイヤーは同期 されたりAPIが豊富にあるためカジュアルな体験が作りやすい 33

Slide 34

Slide 34 text

振り返り ● エクスペリエンスとして ○ 公開手順が簡単 ○ ユーザー体験としてわかりやすいものを短期で作って出すことができた ○ 公開ボタンを押してから検索で引っ掛かるようになるまで 2~3日は様子見が必要 ○ エクスペリエンスが多い分人が複数人いてから体験ができるような GvGを根本においてしまうと人 が必要人数集まりきらず提供したい体験を提供しきれないということが発生する ○ ソロや1vs1でも何かすることがあることが望ましい 34

Slide 35

Slide 35 text

ゲーム事業部で の取り組み ● SUPER SF SOCCER ● Wizard’s Legacy 35

Slide 36

Slide 36 text

Wizard’s Legacy 魔法や剣・弓を用いてPvPやPvEを行う クエストをこなしつつレベルをあげていき、新たなスキルを解放したりステータス強化等 を行いワールドを散策していく 36

Slide 37

Slide 37 text

Wizard’s Legacy 37 敵撃破
 ⑤経験値獲得(小)
 レベルアップ
 ボス撃破
 ⑤経験値獲得(大)
 ③ゴールド獲得
 ⑥魔法ガチャ
 ③ゴールド獲得
 プレイヤー撃破
 クエスト
 報酬(クエスト)
 報酬(敵)
 報酬(PvP)
 難
 易
 度
 成長
 クエスト > 報酬獲得 > 成長が基本的な流れ。プレイヤーと武器/魔法が1対多で並列に成長、武器/魔法が追加更新される。
 ⑧アイテムドロップ
 ⑨ステータスアップ
 ⑦スキル経験値獲得 
 武器・魔法強化
 収集品(時間湧き)
 討伐ポイント獲得
 ランキング
 ⑤経験値x2 
 ③賞金x2
 ③賞金購入 
 ⑥魔法購入 
 マネタイズ
 ⑦マスタリーーx2 
 ⑧ドロップ率x2 
 ⑨ステリセ
 永続
 消費
 購入物のギフト機能 


Slide 38

Slide 38 text

Wizard’s Legacy 開発期間 約4ヶ月 各職種(兼務含) PM 2人 EN 4人 Art 4人 38

Slide 39

Slide 39 text

目的 ● 収益化を目的としてRoblox内でのヒットタイトルをベンチマークとして運用も考慮し た作品を作る ● よりエクスペリエンス性の高い作品を作ることで開発知見を貯める ● 同様の体験を作れるように制作エンジン化 39

Slide 40

Slide 40 text

振り返り ● 開発として ○ バトル要素があるエクスペリエンスを作る際の基盤等ベースとなるエンジン作成をすることができた ○ 開発用のエクスペリエンスと公開用のエクスペリエンスを分けておくことで、開発者用本番環境で動 作確認をしつつ問題なかったら公開用に持っていくといったサイクルはうまく行った ○ Robloxとして独特な挙動を新たにいくつか踏んだためこの辺りはまだ注意が必要 ■ オブジェクトの当たり判定をとる Touchedをリッスンした際サーバーとクライアントで挙動面が 変わり、負荷も注意が必要になった等 ○ チーム開発での作業衝突がよく発生したため、複数人が絡む開発の際の環境はもう少し検討した 方が良い ■ 編集途中のスクリプトが syncされてしまって他の人の環境でエラーを出してしまう等 40

Slide 41

Slide 41 text

振り返り ● エクスペリエンスとして ○ 体験としては今作はユーザーデータも使っているので運用も視野入れた作品を提供できた ○ RobloxのDashboardとしては簡易なパフォーマンスやアナリティクスもついているため運用する 上での足がかりもあり便利 ○ エクスペリエンスに開発者が入る際ログインユーザーの情報に開発者としてわかるアイコンがつく ため、エクスペリエンス上で直接話を聞くこと等もできたため体験をユーザーと作っていくというのが わかりやすい環境 41

Slide 42

Slide 42 text

どうしてRoblox開発を行ったのか? 42

Slide 43

Slide 43 text

どうしてRoblox開発を行ったのか? ゲーム事業部はメタバースプラットフォームのコンテンツ開発スタジオとして、ヒットタイト ルを作って運営することを目的にしている ROBLOXはプラットフォームとして売上もユーザー規模も大きく、アバターやゲーム内課 金などのREALITYと同様のマネタイズに関わる機能が提供されている ROBLOXでヒットタイトルを作ることで、グローバルでもヒットするコンテンツが作れるよう になり、ゲーム事業部としてメタバースプラットフォームとして本当に必要な機能を見極 める 43

Slide 44

Slide 44 text

まとめ RobloxはUGCプラットフォームとしてRobloxStudioのみで開発環境として完結してい るためエクスペリエンスを作って出すがとてもしやすい またシェアが広いため届ける先のユーザーも多く存在している ただしユーザーが簡易に作れる分エクスペリエンスが溢れかえっているためどうやって 作った体験をユーザーの目に届けるか?が鍵となっている 44

Slide 45

Slide 45 text

45