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

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

gree_tech
October 13, 2023

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

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

gree_tech

October 13, 2023
Tweet

More Decks by gree_tech

Other Decks in Technology

Transcript

  1. アジェンダ • 自己紹介 • Robloxとは ◦ Robloxの紹介 ◦ Robloxのエクスペリエンス開発 ◦

    エクスペリエンス公開までのフロー • ゲーム事業部での取り組み ◦ SUPER SF SOCCER ◦ Wizard’s Legacy • どうしてRoblox開発を行ったのか? • まとめ 2
  2. 自己紹介 名前 内田 素貴 所属 REALITY株式会社 ゲーム事業部 経歴 • 2013年新卒としてグリー株式会社に入社

    • REALITYには前身のWright Flyer Live Entertainment設立時から参加 • スタジオの基盤構築およびフェイシャル対応 • Platformで低遅延モード等開発 • ゲーム事業部にてREALITY釣り部・Roblox開発 3
  3. Roblox Studioでの配置場所 • WorkSpace ◦ 3D空間にあたる。このフォルダ以下に配置物等おいていく • ServerScriptService ◦ サーバーとして動くスクリプトはこちらに配置する

    • StarterPlayer ◦ クライアントでのみ動くフォルダ。ユーザー操作に関するものや UI操作 等に関するアセットやスクリプトが配置される • ReplicatedStorage ◦ クライアント・サーバーどちらからもアクセスできるフォルダ。共通で使い たいロジックやアセット等を配置する • ServerStorage ◦ サーバーでのみアクセスできるストレージ。サーバーからのみアクセス したいアセットやスクリプト等を配置する • その他(ネットワーク、マテリアル、サウンド等もある) 13
  4. Roblox Studioでのコーディング Robloxでのスクリプティング 言語としてはLuaを使用する 実行環境に合わせてファイルを定義する必要がある • LocalScript ◦ 名前の通りローカルでのみ実行されるスクリプト ◦

    基本StarterPlayerに配置される ◦ ユーザーの入力やボタン操作等で使用される • Script ◦ 基本的にはサーバーコードの実行として使用される ◦ 基本的にはServerScriptServiceに配置されるが、用途によってはWorkspaceやServerStorageにも配置される ◦ 応用としてRunContextによって実行環境をローカル等で行うことができる • ModuleScript ◦ 使いまわしたいロジックの格納スクリプト。責務の分離やluaでいうprototypeの定義場所として使用される ◦ 基本LocalScriptやScriptどちらでも使用することができ、requireすることで使用される ◦ requireでは同一インスタンスを見ているので、Managerのような使い方もされる ◦ ReplicatedStorageやServerStorageに配置される ENとしては基本このスクリプトとフォルダの組み合わせを把握してロジックを実装していくことになる 14
  5. マネタイズの種類 • エクスペリエンス内アイテムの販売 ◦ Developer Products ▪ エクスペリエンス内のアイテムや通貨などの製品 ◦ Passes

    ▪ 永続的に獲得経験値2倍等の入手することで永続的に効果を発揮する製品等にしようできる • プレミアムユーザーの滞在 • 有料のプライベートサーバー提供 ◦ 自分や招待したユーザーしか入ることのできないサーバーを提供する • UGCアセットの販売 ◦ アバター衣装等 • その他 ◦ Roblox StudioのPluginを作成して販売 ◦ 今年の中頃に入ってゲーム内広告の機能も公開されている ◦ アクセス費用 ▪ 有料アプリと同じ考え 20
  6. 振り返り • 開発として ◦ テスト機能により複数人での動作を一人再現して動作確認することができた ◦ PC、タブレット、スマホの簡易的なエミュレート環境があり各環境を Studio上でもある程度確認でき た ◦

    各職種との連携方法や RobloxStudioとしての特性を把握することができた ◦ マネタイズ周りの実装方式を把握することができた ◦ 複数人が入り混じるエクスペリエンスの開発として、新規実装しなくとも基本的にプレイヤーは同期 されたりAPIが豊富にあるためカジュアルな体験が作りやすい 33
  7. 振り返り • エクスペリエンスとして ◦ 公開手順が簡単 ◦ ユーザー体験としてわかりやすいものを短期で作って出すことができた ◦ 公開ボタンを押してから検索で引っ掛かるようになるまで 2~3日は様子見が必要

    ◦ エクスペリエンスが多い分人が複数人いてから体験ができるような GvGを根本においてしまうと人 が必要人数集まりきらず提供したい体験を提供しきれないということが発生する ◦ ソロや1vs1でも何かすることがあることが望ましい 34
  8. Wizard’s Legacy 37 敵撃破
 ⑤経験値獲得(小)
 レベルアップ
 ボス撃破
 ⑤経験値獲得(大)
 ③ゴールド獲得
 ⑥魔法ガチャ


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

  9. 振り返り • 開発として ◦ バトル要素があるエクスペリエンスを作る際の基盤等ベースとなるエンジン作成をすることができた ◦ 開発用のエクスペリエンスと公開用のエクスペリエンスを分けておくことで、開発者用本番環境で動 作確認をしつつ問題なかったら公開用に持っていくといったサイクルはうまく行った ◦ Robloxとして独特な挙動を新たにいくつか踏んだためこの辺りはまだ注意が必要

    ▪ オブジェクトの当たり判定をとる Touchedをリッスンした際サーバーとクライアントで挙動面が 変わり、負荷も注意が必要になった等 ◦ チーム開発での作業衝突がよく発生したため、複数人が絡む開発の際の環境はもう少し検討した 方が良い ▪ 編集途中のスクリプトが syncされてしまって他の人の環境でエラーを出してしまう等 40
  10. 45