ロブロックスの開発で重要な概念。クライアントとサーバについて説明します。

ねづこ
もっけ、クライアントとサーバって何ですか?



もっけ
サービスを利用する人(クライアント)と、サービスを提供する人(サーバ)のことだよ。
レストランをイメージしてみよう。お客さんはクライアントで、お店はサーバだと思ってね。
お客さん(クライアント)はレストランでご飯を食べたい。
ご飯を食べるためには、たくさんのサービス(席の案内、注文、調理、配膳、レジ、片付け)を提供する人(サーバ)が必要で、お客さんがご飯を食べられるように沢山の役割りを担ってるんだ。



ねづこ
お客さんは1人でだけじゃなくて、いっぱい来るから、お店は大変だね!



もっけ
そうだね!
お客さん(クライアント)からの多くの注文を受けて、それに応えられるようにするのがお店(サーバ)の役割りなんだ。
ロブロックスにおいても、クライアントとサーバで役割が分かれているから、見てみよう!
スクリプトファイルのクライアントとサーバ
- LocalScriptは、クライアント上でのみ実行できるスクリプトを表します。
- Scriptは、サーバー上でのみ実行できるスクリプトを表します。
- ModuleScriptは、サーバー スクリプトとクライアント スクリプトの両方からrequire()できる再利用可能なスクリプトを表します 。
クライアント関連ファイルの格納先
クライアントのファイルであるモデルやLocalScriptは、クライアントに複製されます。また、クライアントがサーバに接続すると、クライアント毎にプレイヤーが利用するPlayerオブジェクトを作ります。
サーバはPlayerオブジェクトにクライアントに必要なオブジェクトをコピーします。どのファイルがコピーされるかを表にまとめました。
LocalScriptは、クライアント上でのみ実行できるスクリプトを表します。
| 格納場所 | 移動先 | 内容 |
|---|---|---|
| StarterPack | Player.Backpack | プレイヤーのバックバックに格納するToolを置く場所。 |
| StarterGui | Player.PlayerGui | プレイヤーのローカルGUIを管理する場所。プレイヤーがリスポーンすると消える。 |
| StarterPlayerScripts | Player.PlayerScripts | クライアント用のスクリプトを管理する場所。 サーバからのアクセス不可。 |
| StarterCharacterScripts | Player.Character | ゲーム起動時にクライアントにコピーされるスクリプト。プレイヤーがリスポーンすると消える。 |
| ReplicatedFirst | | ゲーム起動時に真っ先にクライアントにコピーされる場所。ローディング画面などに使われる。 |
サーバ関連ファイルの格納先
- ServerScriptService
サーバ側で実行する、ScriptとModuleScriptを配置する場所。
※この場所に配置されたファイルは、クライアントに複製されないため、安全に使用できます。 - ServerStorage
サーバで使用することを目的にしたモデルなどのオブジェクト置き場。必要な時に読み込みできれば良いものを置く。例えば、ツールやマップなど。
クライアントは起動時にモデルなどの必要データを読み込むため、常時の読み込みが不要なデータがあれば、ゲームの起動が軽く早くなる。




コメント