Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Robloxでの開発半年間 参入から運用まで
Search
gree_tech
PRO
October 13, 2023
Technology
0
1.3k
Robloxでの開発半年間 参入から運用まで
GREE Tech Conference 2023で発表された資料です。
https://techcon.gree.jp/2023/session/TrackC-4
gree_tech
PRO
October 13, 2023
Tweet
Share
More Decks by gree_tech
See All by gree_tech
REALITY株式会社における開発生産性向上の取り組み: 失敗と成功から学んだこと
gree_tech
PRO
2
130
『ヘブンバーンズレッド』におけるフィールドギミックの裏側
gree_tech
PRO
2
91
セキュリティインシデント対応の体制・運用の試行錯誤 / greetechcon2024-session-a1
gree_tech
PRO
1
96
『アナザーエデン 時空を超える猫』国内海外同時運営実現への道のり ~別々で開発されたアプリを安定して同時リリースするまでの取り組み~
gree_tech
PRO
1
78
『アサルトリリィ Last Bullet』におけるクラウドストリーミング技術を用いたブラウザゲーム化の紹介
gree_tech
PRO
1
89
UnityによるPCアプリの新しい選択肢。「PC版 Google Play Games」への対応について
gree_tech
PRO
1
110
実機ビルドのエラーによる検証ブロッカーを0に!『ヘブンバーンズレッド』のスモークテスト自動化の取り組み
gree_tech
PRO
1
110
"ゲームQA業界の技術向上を目指す! 会社を超えた研究会の取り組み"
gree_tech
PRO
1
140
Jamstack でリニューアルするグリーグループのメディア
gree_tech
PRO
2
300
Other Decks in Technology
See All in Technology
これまでの計測・開発・デプロイ方法全部見せます! / Findy ISUCON 2024-11-14
tohutohu
3
370
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
370
iOSチームとAndroidチームでブランチ運用が違ったので整理してます
sansantech
PRO
0
130
【Pycon mini 東海 2024】Google Colaboratoryで試すVLM
kazuhitotakahashi
2
500
ドメインの本質を掴む / Get the essence of the domain
sinsoku
2
150
TypeScriptの次なる大進化なるか!? 条件型を返り値とする関数の型推論
uhyo
2
1.6k
DMARC 対応の話 - MIXI CTO オフィスアワー #04
bbqallstars
1
160
AWS Lambdaと歩んだ“サーバーレス”と今後 #lambda_10years
yoshidashingo
1
170
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.8k
The Role of Developer Relations in AI Product Success.
giftojabu1
0
120
テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話
ysknsid25
7
2.6k
開発生産性を上げながらビジネスも30倍成長させてきたチームの姿
kamina_zzz
2
1.7k
Featured
See All Featured
Teambox: Starting and Learning
jrom
133
8.8k
Statistics for Hackers
jakevdp
796
220k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Testing 201, or: Great Expectations
jmmastey
38
7.1k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
109
49k
Imperfection Machines: The Place of Print at Facebook
scottboms
265
13k
The Cult of Friendly URLs
andyhume
78
6k
What's new in Ruby 2.0
geeforr
343
31k
10 Git Anti Patterns You Should be Aware of
lemiorhan
654
59k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
Transcript
Robloxでの開発半年間 参入から運営まで REALITY株式会社 ソフトウェアエンジニア 内田 素貴
アジェンダ • 自己紹介 • Robloxとは ◦ Robloxの紹介 ◦ Robloxのエクスペリエンス開発 ◦
エクスペリエンス公開までのフロー • ゲーム事業部での取り組み ◦ SUPER SF SOCCER ◦ Wizard’s Legacy • どうしてRoblox開発を行ったのか? • まとめ 2
自己紹介 名前 内田 素貴 所属 REALITY株式会社 ゲーム事業部 経歴 • 2013年新卒としてグリー株式会社に入社
• REALITYには前身のWright Flyer Live Entertainment設立時から参加 • スタジオの基盤構築およびフェイシャル対応 • Platformで低遅延モード等開発 • ゲーム事業部にてREALITY釣り部・Roblox開発 3
Robloxとは • Robloxの紹介 • Robloxのエクスペリエンス開発 • エクスペリエンス公開 4
Robloxの紹介 Robloxはユーザーがそれぞれ独自の体験を作成できるツールとプラットフォームを提 供している 参加している誰もが手軽に作れて誰もが遊べる環境になっている ※エクスペリエンスとはゲームなどのユーザー体験空間のことを指している 5
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
Robloxの紹介 2022年末IR資料によるユーザー詳細 7 出典:https://s27.q4cdn.com/984876518/files/doc_financials/2022/ar/roblox_2023-proxy-and-2022-annual-report_web-ready.pdf
UGCとは User Generated Contentsの略称 ユーザー自身が作成したコンテンツ(アセットやエクスペリエンス)のこと Robloxはユーザーがアセットやエクスペリエンス作り、別のユーザーがそれを購入した り遊んだりする場所となっている UGCプラットフォームとしては今年の3月ごろUnreal Editor for
Fortnite (UEFN)が パブリックベータになったことが話題になった 8
Robloxの紹介 開発環境としてはパソコンのみ 遊べる環境としてはパソコン、Mac、iOS、Android、Amazon デバイス、Xbox コン ソール、Oculus Rift、HTC Viveからアクセス可能 9
Robloxとは • Robloxの紹介 • Robloxのエクスペリエンス開発 • エクスペリエンス公開 10
Roblox Studioを用いた開発 • 開発はRoblox Studioを使用する • Robloxが提供しているツール • Roblox Studio1つで開発環境として完結している
11
Roblox Studioを用いた開発 • デフォルトの画面構成 ◦ アセットの配置。クライアント・サーバーコード実装等がこれ1つで可能 ◦ チーム開発に対応しているため同時に複数人で同じ Placeに対して編集作業を行うことができ、リ アルタイムでそれぞれの編集が反映されていく
12
Roblox Studioでの配置場所 • WorkSpace ◦ 3D空間にあたる。このフォルダ以下に配置物等おいていく • ServerScriptService ◦ サーバーとして動くスクリプトはこちらに配置する
• StarterPlayer ◦ クライアントでのみ動くフォルダ。ユーザー操作に関するものや UI操作 等に関するアセットやスクリプトが配置される • ReplicatedStorage ◦ クライアント・サーバーどちらからもアクセスできるフォルダ。共通で使い たいロジックやアセット等を配置する • ServerStorage ◦ サーバーでのみアクセスできるストレージ。サーバーからのみアクセス したいアセットやスクリプト等を配置する • その他(ネットワーク、マテリアル、サウンド等もある) 13
Roblox Studioでのコーディング Robloxでのスクリプティング 言語としてはLuaを使用する 実行環境に合わせてファイルを定義する必要がある • LocalScript ◦ 名前の通りローカルでのみ実行されるスクリプト ◦
基本StarterPlayerに配置される ◦ ユーザーの入力やボタン操作等で使用される • Script ◦ 基本的にはサーバーコードの実行として使用される ◦ 基本的にはServerScriptServiceに配置されるが、用途によってはWorkspaceやServerStorageにも配置される ◦ 応用としてRunContextによって実行環境をローカル等で行うことができる • ModuleScript ◦ 使いまわしたいロジックの格納スクリプト。責務の分離やluaでいうprototypeの定義場所として使用される ◦ 基本LocalScriptやScriptどちらでも使用することができ、requireすることで使用される ◦ requireでは同一インスタンスを見ているので、Managerのような使い方もされる ◦ ReplicatedStorageやServerStorageに配置される ENとしては基本このスクリプトとフォルダの組み合わせを把握してロジックを実装していくことになる 14
アセットの利用① • マーケットプレイスにあるUGCを利用する ◦ ユーザー同士が公開できるためアセット量が豊富にある ◦ 利用の際はどこかで聞いたことあるような音・画像が紛れている可能性があるので注意 15
アセットの利用② • 独自で作ってアップロードしたものを使用する • いくつか制約がある ◦ オーディオはアップロード上限が 1月にアップロードできる数が決まっている ◦ テクスチャはアップロード後最大
1024x1024になる ◦ etc… 16
バッジ • エクスペリエンス内で目標を達成したときにユーザーが獲得できる • ユーザーのプレイ指針として使用するために便利 • 登録 ◦ バッジの登録ページで画像等を登録することで AssetIdが発行され登録される
• 実装 ◦ BadgeServiceが用意されている ◦ AwardBadgeでバッジのAssetIdを指定することでユーザーにバッジを付与できる 17
ローカライズ • 自動翻訳含めて提供されている • テキストに表示される際リストに吸い上げられて自動翻訳が行われる ◦ 初めて使用する言語等だとラグがある • csvで文言を入れたり、自動翻訳が意図しない表現になっている等があった場合は Roblox開発者用のページで翻訳結果を書き換えることができる
18
データストア • ユーザーデータの格納やマスターデータの入稿等に用いられる • 基本無料。開発時・運用時で使用に際して別途費用を払うことがない • 基本Robloxでの売り上げはレベニューシェアなため、そこに費用として含まれてい ると思われる • 1分間にRead/Writeといったそれぞれでアクセスできる回数に上限があるため使
用の際には注意が必要 19
マネタイズの種類 • エクスペリエンス内アイテムの販売 ◦ Developer Products ▪ エクスペリエンス内のアイテムや通貨などの製品 ◦ Passes
▪ 永続的に獲得経験値2倍等の入手することで永続的に効果を発揮する製品等にしようできる • プレミアムユーザーの滞在 • 有料のプライベートサーバー提供 ◦ 自分や招待したユーザーしか入ることのできないサーバーを提供する • UGCアセットの販売 ◦ アバター衣装等 • その他 ◦ Roblox StudioのPluginを作成して販売 ◦ 今年の中頃に入ってゲーム内広告の機能も公開されている ◦ アクセス費用 ▪ 有料アプリと同じ考え 20
マネタイズについて(収益) • 基本的にRoblox内ではRobuxという通貨を用いて購入等が行われる ◦ サーバーの保守等Robloxの運用費用が省かれた状態で開発者の収入 Robuxが入る ◦ 獲得したRobuxはDeveloper Exchangeによってその時のレートに合わせて現金化することが可 能になっている
21
マネタイズについて(開発) • エクスペリエンス内アイテムの販売 ◦ 「MarketplaceService」を使用することでRobuxの消費購入部分は基本的に Robloxに任せら れ、その後の商品付与等を記載するのみで実現できるため開発しやすい形になっている 22
Robloxとは • Robloxの紹介 • Robloxのエクスペリエンス開発 • エクスペリエンス公開 23
公開フロー 24 Roblox Studioで Experienceを作成 Placeの中身を作っていく Publish To Roblox でRoblox上に配布
公開フロー 作ってから公開までのフローが簡易で変更を加えてから公開するまでがとても簡単に行うことが できる 開発中も作ってから本番環境(スマホ実機等)で確認するというサイクルがとても早い 25 発行されたURL経由でエクスペリエンスにアクセスできる
公開後サポート • ユーザー広告 ◦ UserAd ▪ バナー広告 ▪ 指定サイズの画像と Robuxを支払うことでRobloxのバナーに表示される
▪ 表示される頻度は入札システムで決定される 26
公開後サポート • ユーザー広告 ◦ Sponsor ▪ スポンサー枠へのエクスペリエンス表示 ▪ 表示する年齢とデバイス等指定を細かくできる ▪
Robuxを支払うことで表示されて表示される頻度は入札システムで決定される 27
公開後サポート • Dashboard ◦ Robloxのクリエイターページに Dashboardがあり公開後のアクティブユーザー等を見ることがで る ◦ ENが追加実装することなく入っている機能 ◦
項目 ▪ REAL-TIME • パフォーマンス • エラーレポート ▪ ANALYTICS • ユーザーアナリティクス • マネタイズ 28
ゲーム事業部で の取り組み • SUPER SF SOCCER • Wizard’s Legacy 29
SUPER SF SOCCER 3vs3での対戦サッカー 3分間により多くゴールできた方の勝ち 30
SUPER SF SOCCER 開発期間 約2ヶ月 各職種(兼務含) PM 1人 EN 2人
Art 2人 31
目的 • 初めてのRoblox開発として実装フローや開発サイクルを経験する • マネタイズの実装把握や機能検証をする 32
振り返り • 開発として ◦ テスト機能により複数人での動作を一人再現して動作確認することができた ◦ PC、タブレット、スマホの簡易的なエミュレート環境があり各環境を Studio上でもある程度確認でき た ◦
各職種との連携方法や RobloxStudioとしての特性を把握することができた ◦ マネタイズ周りの実装方式を把握することができた ◦ 複数人が入り混じるエクスペリエンスの開発として、新規実装しなくとも基本的にプレイヤーは同期 されたりAPIが豊富にあるためカジュアルな体験が作りやすい 33
振り返り • エクスペリエンスとして ◦ 公開手順が簡単 ◦ ユーザー体験としてわかりやすいものを短期で作って出すことができた ◦ 公開ボタンを押してから検索で引っ掛かるようになるまで 2~3日は様子見が必要
◦ エクスペリエンスが多い分人が複数人いてから体験ができるような GvGを根本においてしまうと人 が必要人数集まりきらず提供したい体験を提供しきれないということが発生する ◦ ソロや1vs1でも何かすることがあることが望ましい 34
ゲーム事業部で の取り組み • SUPER SF SOCCER • Wizard’s Legacy 35
Wizard’s Legacy 魔法や剣・弓を用いてPvPやPvEを行う クエストをこなしつつレベルをあげていき、新たなスキルを解放したりステータス強化等 を行いワールドを散策していく 36
Wizard’s Legacy 37 敵撃破 ⑤経験値獲得(小) レベルアップ ボス撃破 ⑤経験値獲得(大) ③ゴールド獲得 ⑥魔法ガチャ
③ゴールド獲得 プレイヤー撃破 クエスト 報酬(クエスト) 報酬(敵) 報酬(PvP) 難 易 度 成長 クエスト > 報酬獲得 > 成長が基本的な流れ。プレイヤーと武器/魔法が1対多で並列に成長、武器/魔法が追加更新される。 ⑧アイテムドロップ ⑨ステータスアップ ⑦スキル経験値獲得 武器・魔法強化 収集品(時間湧き) 討伐ポイント獲得 ランキング ⑤経験値x2 ③賞金x2 ③賞金購入 ⑥魔法購入 マネタイズ ⑦マスタリーーx2 ⑧ドロップ率x2 ⑨ステリセ 永続 消費 購入物のギフト機能
Wizard’s Legacy 開発期間 約4ヶ月 各職種(兼務含) PM 2人 EN 4人 Art
4人 38
目的 • 収益化を目的としてRoblox内でのヒットタイトルをベンチマークとして運用も考慮し た作品を作る • よりエクスペリエンス性の高い作品を作ることで開発知見を貯める • 同様の体験を作れるように制作エンジン化 39
振り返り • 開発として ◦ バトル要素があるエクスペリエンスを作る際の基盤等ベースとなるエンジン作成をすることができた ◦ 開発用のエクスペリエンスと公開用のエクスペリエンスを分けておくことで、開発者用本番環境で動 作確認をしつつ問題なかったら公開用に持っていくといったサイクルはうまく行った ◦ Robloxとして独特な挙動を新たにいくつか踏んだためこの辺りはまだ注意が必要
▪ オブジェクトの当たり判定をとる Touchedをリッスンした際サーバーとクライアントで挙動面が 変わり、負荷も注意が必要になった等 ◦ チーム開発での作業衝突がよく発生したため、複数人が絡む開発の際の環境はもう少し検討した 方が良い ▪ 編集途中のスクリプトが syncされてしまって他の人の環境でエラーを出してしまう等 40
振り返り • エクスペリエンスとして ◦ 体験としては今作はユーザーデータも使っているので運用も視野入れた作品を提供できた ◦ RobloxのDashboardとしては簡易なパフォーマンスやアナリティクスもついているため運用する 上での足がかりもあり便利 ◦ エクスペリエンスに開発者が入る際ログインユーザーの情報に開発者としてわかるアイコンがつく
ため、エクスペリエンス上で直接話を聞くこと等もできたため体験をユーザーと作っていくというのが わかりやすい環境 41
どうしてRoblox開発を行ったのか? 42
どうしてRoblox開発を行ったのか? ゲーム事業部はメタバースプラットフォームのコンテンツ開発スタジオとして、ヒットタイト ルを作って運営することを目的にしている ROBLOXはプラットフォームとして売上もユーザー規模も大きく、アバターやゲーム内課 金などのREALITYと同様のマネタイズに関わる機能が提供されている ROBLOXでヒットタイトルを作ることで、グローバルでもヒットするコンテンツが作れるよう になり、ゲーム事業部としてメタバースプラットフォームとして本当に必要な機能を見極 める 43
まとめ RobloxはUGCプラットフォームとしてRobloxStudioのみで開発環境として完結してい るためエクスペリエンスを作って出すがとてもしやすい またシェアが広いため届ける先のユーザーも多く存在している ただしユーザーが簡易に作れる分エクスペリエンスが溢れかえっているためどうやって 作った体験をユーザーの目に届けるか?が鍵となっている 44
45