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

「Roblox」の開発環境とその効率化 ~DAU9700万人超の巨大プラットフォームの開発 事始め~

「Roblox」の開発環境とその効率化 ~DAU9700万人超の巨大プラットフォームの開発 事始め~

※本スライドは CEDEC2025における講演のスライドです

Robloxは、月間3.5億人、1日あたり8500万人以上が利用する世界最大級のオンラインゲームプラットフォームです。本セッションでは、まずその特徴と魅力を、開発者視点とビジネス視点の両面から紹介します。

続いて、開発ツールであるRoblox Studioの、オンラインゲーム開発環境の特徴、生成AI機能、アセット活用、リソース再利用法、最適化ツールなど、効率的な開発を支える機能を紹介します。

後半では、開発効率をさらに高めるための応用的な開発環境の構築手法を紹介します。VSCodeやCursorといったエディタの活用、Open Cloud APIを使った自動化やデータ管理、便利なプラグインやライブラリの活用法などを通じて、実践的な効率化のアプローチをお伝えします。

Avatar for Keita Tanji

Keita Tanji

August 07, 2025
Tweet

Other Decks in Technology

Transcript

  1. 自己紹介 • 2010年より株式会社スクウェア・エニックスで FFの開発に携 わる、FF14、FF16などを開発 
 • 2022年末よりRobloxの開発をスタート 
 •

    2023年独立、Robloxの教育事業も実施 
 • Roblox開発スタジオ NeXtremeStudio 設立
 • Vimが好き
 丹治 慶太
 (たんじ けいた)
  2. Roblox開発実績 • たまごっちパラダイス 
 ◦ 360万プレイ 
 ◦ 株式会社 EbuActionより依頼

    
 • Find & Sell
 ◦ 540万プレイ 
 ◦ 株式会社メタバースクリエイターズより依頼 
 • ゲームクリエイタータイクーン 
 ◦ 110万プレイ 
 ◦ スタジオオリジナル作品 
 • コンテストやハッカソンで作品入賞 

  3. Robloxプラットフォームの特徴 • ローグラフィック x マルチプラットフォーム 
 • 基本無料 + 課金要素


    • コミュニティ駆動の頻繁なアップデート 
 • 低年齢層ユーザーが多い 
 • 没入型ソーシャルプラットフォーム 

  4. Roblox vs UEFN Robloxの良さ • 開発環境のハードルの低さ 
 • 開発の自由度
 •

    モバイルデバイスでのプレイ 
 UEFNの良さ ・解析機能が豊富
 ・課金手段の自由度
 ・ローグラフィックゆえの自由な表現
 ・ユーザー数
 ・開発者コミュニティが成熟
 • UEによる発展性
 • Fortniteベースのゲーム基盤 
 • Nintendo Switchでのプレイ
 ・リッチなグラフィック表現
 ・Disneyなどの巨大IPの参画
 ・新パラダイム言語Verse
 よく比較される両者を主に開発視点で比較
  5. サーバー・クライアント 
 一体型プロジェクト 
 • 共通のDataModelツリーで構成 
 • サーバーにはツリー全体が存在 


    • クライアントには複製対象のみ展開 
 • 用途別のコンテナがある 
 • 用途別のScriptがある

  6. すべてがDataModel
 ツリーの要素 
 • DataModelツリーに全要素 
 • 全要素が「 Instance」
 •

    全要素が配置場所自由 
 • UIも、Soundも、Scriptも
 • 統一的な管理・アクセスを実現 

  7. クラウドへのデータ保存 メリット • プロジェクト環境の同期・復元が簡単 • ローカルストレージを圧迫しない • 自動的なバックアップになる デメリット •

    ファイルシステムアクセスできない • Scriptの別エディタ編集などができない • Gitなどのバージョン管理システムが使えない → 後述「効率化:外部エディタ活用」で解決可能 • プロジェクトをサーバーに一括保存 
 • 定期的な自動保存とバージョン保持 
 • アセットもサーバーに登録・保存 

  8. スクリプト言語「 Luau」 • Lua5.1ベースのLua拡張言語
 • 型付け機能を搭載 
 • パフォーマンスも大幅に改善 


    • 拡張構文で Luaより書きやすく 
 • 型により保守性や補完解釈が向上 

  9. Package機能 Unityの PreFab と似た機能 例:大量の花をPackageに • モデル変更を一括で共有 
 • Part、UI、Scriptなど諸々が対応

    
 • PackageLinkが子どもにつくだけ 
 • クラウドに保存されバージョン管理 
 • プロジェクトをまたいだ共有可能 
 • 変更箇所の AI要約などの機能も 

  10. CommandBarによる Script処理 • オフラインで Scriptによるデータ編集が可能 
 • 実行中にも使えるので差し込み処理も可能 
 •

    選択対象に対する処理実行なども可能 
 例:サフィックス番号付与 面倒な手作業を Scriptで一括処理 
 CommandBarはスタジオ最下端にある
  11. プラグイン活用 代表的なもの AutoScaleLite UIのスケール変換 Building Tools by F3X 配置物の調整 Archimedes

    パーツの補間 Moon Animator 2(有料) アニメーション /カットシーン編集 • Studioで簡単に導入可能 
 • 多数のプラグインが公開 
 • 無料~有料 

  12. プラグインを自作 • プラグインは同様に Luau実装にて自作 / 公開まで可能 
 • 頻繁に使う反復作業などはプラグインにすると効率的 


    • 小さい明確な機能となり AIでも制作がしやすい 
 デザイナーがAIにより制作したプラグイン「UITransform」
  13. • ショートカットキーのカスタマイズ 
 - 任意キー設定可能
 - パッケージ操作などよく使う操作を割当
 
 • リボンパネルのカスタマイズ

    
 - カスタムパネルが作成可能
 - よく使う操作やプラグインなどを並べて専用メニュー化
 
 • エクスプローラフィルター 
 - 全てがツリーにあるため数が多くフィルタは重要
 - ワイルドカードや and, or 検索が可能
 - プロパティ、クラス、タグなどの一致も可能
 
 • ベータ機能の有効化
 - ベータ機能を項目ごとに任意有効化が可能
 - 便利になる機能が多いので使って損なし
 その他の細かな大事ポイント
  14. 「アシスタント」活用 Studio内製のAIアシスタント できること • 質問に回答
 • オブジェクトの追加・編集
 • Scriptの追加・編集
 •

    3Dモデルの検索・挿入
 • アセット生成
 DataModelや選択状態などを理解 したサポートが強力
  15. ライブラリのパッケージ管理 • 外部エディタ環境と組み合わせて使用
 • コマンド1つで一括導入
 • 依存関係の自動的に解決
 • バージョン固定化
 •

    tomlファイルで一括管理
 ライブラリはパッケージマネージャー「 Wally」
 によるパッケージ管理が便利 

  16. 推しパケ(おすすめライブラリ) ProfileStore プレイヤーセーブデータの安全効率的管理 Replica サーバー・クライアント間のデータ同期 Promise 非同期処理をチェインしたり、最終的な処理をまとめて行う FastSignal イベントパラメータの参照渡しと速度アップ Janitor

    / Trove / Maid 効率的なリソース管理とクリーンアップ RbxUtil全般 様々なユーティリティ機能 ZonePlus 効率的な空間レンジの管理と検知 Fusion 状態に合わせた振る舞い管理や UI構築
  17. ライブラリ活用のコツ • 車輪の再発明を避けて効率化 
 ◦ 欲しい機能が浮かんだら探してみる
 ◦ 不便や無駄を感じたら探してみる
 ◦ 定番・人気のものは理解・利用してみる


    
 • 依存しすぎないことも大事 
 ◦ 全ての「やりたい」を実現できるとは限らない
 ◦ ないなら自作のほうが早い・使いやすいの割り切りも必要
 ◦ ライブラリコレクターになっても使い切れない

  18. 基本:共通処理のモジュール化 • 重複コードの排除 
 • 再利用性の向上 
 • データの定義・共有にも活用 


    課題:
 Scriptを自由に配置・実行できる手軽さから 
 同様の処理が多くのところに散乱しがち 
 ModuleScriptで処理を共通化
  19. オブジェクト指向的クラス実装 課題:
 オブジェクトごとに振る舞いや 
 パラメータの管理をしたい
 • Luau自体にクラスの機能はない 
 • プロトタイプ宣言的クラス実装が可能

    
 • メタテーブルを利用して継承なども可能 
 オブジェクト指向プログラミングに基づく 
 クラス実装とインスタンス化が有効 

  20. Tagによるオブジェクト管理 • Tagはオブジェクトの種類ごと管理に最適 
 • パスや名前に依存せず一括管理 
 • 対象TagのInstance追加/削除フック 


    • キャッシュが効き取得も高速 
 課題:
 クラス実装を適用する
 オブジェクトの管理機構がない 
 TagとCollectionServiceによる
 オブジェクト管理が最適 

  21. コンポーネント指向実装 課題:
 単純なオブジェクト指向や継承には拡張の課題あり
 現在のゲーム開発ではコンポーネント指向が主流 機能別クラス実装 x タグ管理で 
 コンポーネント指向の仕組み化 


    ・RbxUtil/Component
 ・Matter
 共通のバトル機能クラスで処理 Enemyクラスは不要に • 小さい単位で変更・拡張しやすい 
 • 柔軟に機能を組み合わせた振る舞いを実現 
 • 再利用性が高い 
 • Component系ライブラリの活用も可能 

  22. Type定義・TypeCheck 課題:
 ・コーディングで補完が効かない
 ・誤った関数やメンバを使ってエラーが起きる
 Luauの以下の機能を活用 
 ・Type定義
 ・Type注釈
 ・TypeCheck
 •

    自作クラス含めコードの補完が効くように 
 • 事前にエラーを検出 
 • 可読性・保守性が向上 
 独自クラスの型定義と型注釈
 型定義と型注釈により補完が効く
 TypeCheckによりエラー検出

  23. Open Cloud APIとは Robloxリソースに REST APIでアクセス可能なクラウドサービス 
 
 データの操作や自動化ツール、ゲームイベント処理など様々な用途 代表的なAPI

    • DataStore 操作
 ◦ プレイヤー/ゲームデータの取得・更新・削除 
 • MemoryStore操作
 ◦ ゲーム中の動的な設定変更など 
 • Messaging Service
 ◦ ゲーム内へイベント通知など 
 • place-instance 操作
 ◦ Scriptの編集(今後 Objectも対応予定) 
 • Luau Execution
 ◦ サーバーを立ててスクリプト実行 
 • Place Publishing
 ◦ プレースの公開や再起動 

  24. API活用!クラウドゲームデータ管理 実装フロー ➢ Googleスプレッドシートでデータ管理
 ➢ Google Apps Scriptでデータ処理
 ➢ OpenCloudAPIでModuleScript更新


    ➢ ゲーム内にデータ反映
 instanceAPIでScriptの編集が可能
 表形式データ ⇒ データ定義 Script化
 を実装して表形式データ管理を実現 する

  25. 外部エディタ活用のメリット メリット • 外部AIエージェント活用
 • Gitバージョン管理 / Diff
 • 自由な拡張エディタ環境


    • パッケージマネージャー管理
 • コードのバックアップ化
 デメリット • Studioとのウィンドウ切替 
 • デバッガーはStudioで

  26. エディタ拡張機能と選定 • Rojo / Argon
 - エディタ→Studioの同期、インスタンス情報も同期可能
 - Rojo :

    シンプル、老舗で情報も多い
 - Argon:逆方向同期などの高機能(利用中)
 
 • LuauLSP / RobloxLSP
 - インテリセンス、構文チェックが効くように
 - LuauLSP:堅牢なTypeCheck、Luau型定義必要、今後主流
 - RobloxLSP:自動的な型解釈など導入しやすい、メンテ終了(利用中)
 - ※クラス実装時 self 解決の手間がLuauLSPでは発生
 
 
 • Selene
 - Lua静的解析
 
 • StyLua
 - Luaフォーマッタ
 
 • (Vim)
 - 思考の速度でコーディング
 

  27. 対応手法 • Module単位のコピペ
 - ModuleScript単位で必要な機能の導入
 - 内容更新の反映が手動
 - 依存を少なくした単体機能化が重要
 


    • パッケージで共有
 - プロジェクト間で更新含め共有可能
 - 細かいバージョン分けた管理は難しい
 
 • システム層レイヤー分離 
 - システム層でのプロジェクト分離化
 - システム機能を組み合わせたフレームワーク管理化
 - アプリとの依存の適切な切り分けが必要
 

  28. 実例:システムレイヤー層管理 Nexsys管理方法 • 外部エディタ上で別プロジェクト・リポジトリ化
 • 同期設定でNexapp / Nexsys フォルダで同期
 •

    プロジェクト状況に応じてブランチ管理
 • 必要に応じてお互いに機能をマージ
 よく使う機能を まとめて管理 することで 
 管理コスト下げつつ共有しやすく 

  29. “今ˮ開発で使われるコーディング AI • Github Copilot
 • Cursor
 コード補助 +
 自律処理型

    
 自律タスク処理 
 特化型
 • Claude Code
 • Gemini CLI
 ・エディタに統合しサポートがメイン
 ・俯瞰した推測を含むコード補完が強力 
 ・自律タスクは限定的な活用が主
 ・主にCLI上でタスクを依頼
 ・コーディングサポート用途ではない
 ・テスト、PR作成などまでも行える 

  30. Roblox StudioとMCP接続することで 
 外部AIがStudioの操作を行える 応用的活用: Roblox Studio MCP連携 すでに簡単なゲーム(Obby等)の制作を依頼可能
 クオリティや管理などの面で実用的にはまだまだ課題が多い

    
 できること • プロジェクトの解析・把握
 • インスタンスの生成・破棄
 • プロパティ操作
 • スクリプトの実装
 • アセットの検索・挿入

  31. 外部AI活用のˮ現在のˮ課題 • DataModelの理解が難しい 
 - 外部同期したファイル以外の情報把握が難しい
 - 配置物やUIなどのモノに合わせた実装が難しい
 - MCPである程度把握させることは可能だが実利用には厳しい


    
 • ゲーム全体の実装にはまだ力不足
 - ゲーム実装にもDataModelのスムーズな解釈が必要
 - 全体の設計・実装を任せるには不安なコードも多い
 
 • Robloxのゲームデザイン・実装は多岐にわたる
 - 現時点ではAIは既存の正解モデルと同じことをするのが得意
 - 新たなパラダイムを自動的に解決させるのは難しい

  32. AI活用の指針 • まず使ってみること 
 ◦ 進化すさまじくすでにかなり賢い
 ◦ 定型的処理や局所サポートならすでに必須レベル
 ◦ うまくはまる活用があれば積極的に利用すべし


    
 • 一方で無理に使おうとはしない 
 ◦ まだまだ課題は多く自分で解決したほうが良い場面多々
 ◦ 現在の活用ナレッジも一過性のものになりえる
 ◦ 特にRobloxは拡張/メンテナンス性も大事ゆえ自力の把握も大事