Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Robloxでの開発半年間 参入から運用まで

Robloxでの開発半年間 参入から運用まで

GREE Tech Conference 2023で発表された資料です。
https://techcon.gree.jp/2023/session/TrackC-4

gree_tech
PRO

October 13, 2023
Tweet

More Decks by gree_tech

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  6. 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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  28. 公開後サポート
    ● Dashboard
    ○ Robloxのクリエイターページに Dashboardがあり公開後のアクティブユーザー等を見ることがで

    ○ ENが追加実装することなく入っている機能
    ○ 項目
    ■ REAL-TIME
    ● パフォーマンス
    ● エラーレポート
    ■ ANALYTICS
    ● ユーザーアナリティクス
    ● マネタイズ
    28

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  33. 振り返り
    ● 開発として
    ○ テスト機能により複数人での動作を一人再現して動作確認することができた
    ○ PC、タブレット、スマホの簡易的なエミュレート環境があり各環境を Studio上でもある程度確認でき

    ○ 各職種との連携方法や RobloxStudioとしての特性を把握することができた
    ○ マネタイズ周りの実装方式を把握することができた
    ○ 複数人が入り混じるエクスペリエンスの開発として、新規実装しなくとも基本的にプレイヤーは同期
    されたりAPIが豊富にあるためカジュアルな体験が作りやすい
    33

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  37. Wizard’s Legacy
    37
    敵撃破

    ⑤経験値獲得(小)

    レベルアップ

    ボス撃破

    ⑤経験値獲得(大)

    ③ゴールド獲得
 ⑥魔法ガチャ

    ③ゴールド獲得

    プレイヤー撃破

    クエスト
 報酬(クエスト)

    報酬(敵)

    報酬(PvP)

    難

    易

    度

    成長

    クエスト > 報酬獲得 > 成長が基本的な流れ。プレイヤーと武器/魔法が1対多で並列に成長、武器/魔法が追加更新される。

    ⑧アイテムドロップ
 ⑨ステータスアップ

    ⑦スキル経験値獲得
    
 武器・魔法強化

    収集品(時間湧き)

    討伐ポイント獲得

    ランキング

    ⑤経験値x2 

    ③賞金x2

    ③賞金購入 

    ⑥魔法購入 

    マネタイズ

    ⑦マスタリーーx2 

    ⑧ドロップ率x2 

    ⑨ステリセ

    永続

    消費

    購入物のギフト機能 


    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  45. 45

    View Slide