プロフェッショナル開発スタジオの場合、サードパーティツールを設定し、自動化に投資することで、開発ワークフRoblox(ロブロックス)ーの多くのメリットがあります。Roblox のクラウド最初のアプローチには多くの利点がありますが、開発ワークフローの特定の部分をクラウドの外に移動すると、チーム全体で変更を追跡し、コードをレ
同期プロブレム
Roblox とのエクスポートツール使用は、同期 問題です:
- Roblox スクリプトをディスクに .luau ファイルとして存在するように、自分のツールを使用して作業できるようにしたいです。
- 編集が完了した後、Roblox プロジェクトにファイルを戻す必要があります。
- 誰かが間に変更した場合、それらの変更を処理する必要があります。
For the whole solution to feel seamless and automatic, you need to a) listen for changes to files and b) incorporate these changes back into Studio. それは、Rojo がこの問題を解決する方法です。
Roblox のクラウド最優先アプローチではなく、Rojo は「ファイルシステム最初のアプローチ」を可能にします。すべてのスクリプトファイルをプロジェクト内の Luau ファイルにエクストラクトします。その後、サーバーを実行します。Rojo プラグインは、Studio とのシンクロを目的として、サーバーに接続します。
Foreman で Rojo をインストールする
手動で Rojo バイナリをダウンロードして実行できますが、このアプローチは、異なる Rojo バージョンを使用してチームの異なる開発者にリスクを与えます。より良いソリューションは、Foreman などのツールマネージャーを使用することで、インストールとアップグレードプロセスをマシン間で一貫性あるようにする
プロジェクト内のパッケージではなく、基本開発環境を管理するため、Foreman は nvm よりも npm に似ていますが、比較は完璧ではありません。単純な foreman.toml ファイルは次のように見えます:
[tools]
rojo = { github = "rojo-rbx/rojo", version = "7.4.1" }
wally = { github = "UpliftGames/wally", version = "0.3.2" }
次に、foreman install を使用して、これらのツールをインストールします。グローバル foreman.toml ファイルに加えて、Foreman はプロジェクトごとに foreman.toml のファイルをサポートしているため、異なるバージョンの Rojo、Wally またはその他のツールを簡単に使用し、全体のチー
ツールが新しいバージョンをリリースすると、.toml ファイルにバージョン番号を明示的にバンプし、Foreman を使用してアップグレード、新しいバージョンをテストし、問題が発生する場合は、. tom にダウングレードします。コマンドとインストール方法については、.tom を参照してください。
Rojo の実行
Foreman で Rojo をインストールした後、実際にインストールしたのは Rojo サーバーです。次のステップは、Roblox Studio の Roblox プラグインをインストールすることです:
rojo plugin install
次に、新しいエクスペリエンスのプロジェクト構造を生成し、次のように構築します:
rojo init my-new-experiencecd my-new-experiencerojo build -o my-new-experience.rbxl
あるいは、既存のエクスペリエンスを ポートする こともできます。どちらにせよ、プロジェクトを持った後、Rojo サーバーを開始します:
rojo serve
In Roblox Studio、.rbxl ファイルを開き、Rojo プラグインを開始し、現在実行中のサーバーに接続し、変更をプレイヤーのテキストエディタに開始し、その後、変更を自動的に Studio に同期することができます。
Rojo プロジェクトには、ファイルに対する特定の名前付けの要件、多くの設定オプション、およびいくつかの制限があります。すべては Rojo ドキュメント に記載されています。
パッケージマネージャー
Roblox には包括された API がありますが、コミュニティソフトウェアパックを一貫して、再プロダクティブな方法で使用したい場合は、パッケージマネージャーが必要です。 Wally は人気のオプションです。あなたは Foreman を介してインストールできます。
エクスペリエンスの Rojo ディレクトリ内で、wally init を実行します。その後、wally.toml に必要なパッケージを追加します。ファイルは以下のように表示される場合があります:
[package]
name = "my-home-directory/my-new-experience"
version = "0.1.0"
registry = "https://github.com/UpliftGames/wally-index"
realm = "shared"
[dependencies]
react = "jsdotlua/react@17.1.0"
react-roblox = "jsdotlua/react-roblox@17.1.0"
cryo = "phalanxia/cryo@1.0.3"
次に、wally install を実行します。Wally は、Packages ディレクトリを作成し、指定され
{
"name": "my-new-experience",
"tree": {
"$className": "DataModel",
"ReplicatedStorage": {
"Shared": {
"$path": "src/shared"
},
"Packages": {
"$path": "Packages"
}
},
...
}
}
その後、スクリプト内のパッケージを要求することができます ModuleScript と同じように:
local Players = game:GetService("Players")local ReplicatedStorage = game:GetService("ReplicatedStorage")local React = require(ReplicatedStorage.Packages.react)local ReactRoblox = require(ReplicatedStorage.Packages["react-roblox"])local handle = Instance.new("ScreenGui", Players.LocalPlayer.PlayerGui)local root = ReactRoblox.createRoot(handle)local helloFrame = React.createElement("TextLabel", {Text = "Hello World!",Size = UDim2.new(0, 200, 0, 200),Position = UDim2.new(0.5, 0, 0.5, 0),AnchorPoint = Vector2.new(0.5, 0.5),BackgroundColor3 = Color3.fromRGB(248, 217, 109),Font = Enum.Font.LuckiestGuy,TextSize = 24})root:render(helloFrame)
ほとんどの他のソフトウェアプロジェクトと同様に、目的は、貢献者がリポジトリをクローンし、Foreman をインストールし、いくつかのコマンドを実行し、チームの残りのメンバーと同じ開発環境を持つことです。
バージョン管理
コンピュータにプレーンなテキストファイルのセットを持つと、さまざまな機能がアンロックされますが、主なのは バージョンコントロール です。スクリプトと設定ファイルを Git または Mercurial</
Visual Studio Code には最大のエクステンションエコシステムがありますが、Sublime Text、Notepad++、および0> Vim0>はすべて人気の選択肢です。どのエディタを選択しても、Studio スクリプトエディタの機能に対応するエクステンションが必要になります。
次のものを追加することも検討してください:
- コモンアイテムをキャッチし、コードスタイルを強制する linter のように selene
- コードフォーマットタイプライターのように StyLua
- オートコンプリート、タイプチェックなどに使用される言語サーバーのような Luau 言語サーバー
アセット
このページのツールは、スクリプトに最も適用されます;3D アーティストはすでに Blender や Maya などの外部ツールを使用し、ソースファイルをバージョンコントロールに保存し、Studio にインポートします。スタジオアセットを持っている後、パックを使用することをお勧めします。
Roblox のパッケージは、このページのツールと同じ多くのプリンシパルに従って実装されます:中央に保存されたバージョン履歴を持つセントラライズされたリポジトリ:すべてのコピーを同期して保持するための完璧な方法を提供する、アセットのバージョン管理庫。For more 情報 on how they can improve your workflow, see パッケージ .
すべて取り消す
サードパーティツールが Roblox Studio に同期されるので、このワークフローの任意の部分でロックインを使用する必要はありません。これにより、このワークフローの任意の部分でロックインを使用することなく、エクスペリエンスを編集できます。第三者ツールを使用することで、エクスペリエンスを編集することが特に魅力的になります。